-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathkopiere_datei.linbofunc
35 lines (31 loc) · 1.59 KB
/
kopiere_datei.linbofunc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
kopiere_datei() {
######################################################
# Diese Funktion kopiert eine Datei aus /var/linbo zunächst in den Cache,
# wenn die Übertragung geklappt hat, wird sie umbenannt, um danach in die
# Betriebssystempartition kopiert zu werden.
# Aufruf: kopiere_datei QUELLE ZIEL
# wobei QUELLE: Dateiname ohne Pfad in /var/linbo
# und ZIEL: Kompletter Pfad, aber OHNE FÜHRENDEN SCHRÄGSTRICH!
# Bsp: Die Datei postsync.gruppe.rc.local soll nach /etc/rc.local auf dem Client.
# kopiere_datei postsync.gruppe.rc.local etc/rc.local
#######################################################
myserverip="$(grep ^linbo_server /tmp/dhcp.log | tail -1 | awk -F\' '{ print $2 }')" # Server-IP ermitteln
myfile=$1 # Erster Parameter nach myfile
mytarget=$2 # Zweiter Parameter nach mytarget
# Wenn Netzwerkverbindung vorhanden ist, lade die Datei in eine temporäre
# Datei in den lokalen Cache herunter.
if ! localmode; then
echo "lade $myfile herunter ..."
rsync -L "$myserverip::linbo/$myfile" "/cache/${myfile}.tmp"
fi
# Wenn temporäre Datei vorhanden ist, benenne sie um.
[ -s "/cache/${myfile}.tmp" ] && mv "/cache/${myfile}.tmp" "/cache/$myfile"
# Ist Datei im lokalen Cache vorhanden,
# kopiere sie in den Ordner $mytarget
# auf der Betriebssystempartition.
if [ -s "/cache/$myfile" ]; then
echo "Kopiere $myfile nach /mnt/$mytarget ..."
mkdir -p "/mnt/$(dirname $mytarget)"
cp "/cache/$myfile" "/mnt/$mytarget"
fi
}