-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathkopiere_datei_rekursiv.linbofunc
34 lines (31 loc) · 3.56 KB
/
kopiere_datei_rekursiv.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
kopiere_datei_rekursiv() {
######################################################
# Diese Funktion kopiert eine Datei aus /var/linbo/HARDWAREKLASSE/.. zunächst in den Cache,
# wenn die Übertragung geklappt hat, wird sie in die
# Betriebssystempartition kopiert.
# Aufruf: kopiere_datei_rekursiv QUELLE ZIEL
# wobei
# QUELLE: Dateiname mit Pfad unterhalb /var/linbo
# ZIEL: Kompletter Pfad auf dem Client, aber OHNE FÜHRENDEN SCHRÄGSTRICH!
#
# Bsp: Die Datei etc/postsync.gruppe.rc.local soll nach /etc/rc.local auf dem Client.
# kopiere_datei_rekursiv beliebiges/verzeichnis/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 -RL "$myserverip::linbo/$myfile" "/cache/postsync"
fi
# Ist Datei im lokalen Cache vorhanden,
# kopiere sie in den Ordner $mytarget
# auf der Betriebssystempartition.
if [ -s "/cache/postsync/$myfile" ]; then
echo "Kopiere $myfile nach /mnt/$mytarget ..."
mkdir -p "/mnt/$(dirname $mytarget)"
rsync -L "/cache/postsync/$myfile" "/mnt/$mytarget"
fi
}