winniwinter
Semiprofi
Thread Starter
- Mitglied seit
- 16.04.2006
- Beiträge
- 1.807
Hi,
ich habe zwar OSX installiert, aber ich denke ich bin hier besser aufgehoben. Ich habe ein bash script, dass ausgeführt werden soll, wenn sich in einem bestimmten Ordner etwas ändert.
Konkret geht es um meinen Musikordner. Wenn dort neue Dateien dazukommen, soll das script starten und mittels rsync die Daten auf meinen Server laden.
Nun habe ich das Problem, dass rsync nie alle Files kopiert, da es glaube ich zu schnell ist. Bedeutet, das erste Lied wird importiert, Script startet, bis dahin sind vlt 4 Lieder importiert, Script wird beendet..
Ein einfaches sleep x, habe ich zwar schon eingebaut aber das ist mir zu ungenau.
Ich hätte gern, dass vor dem rsync befehl in einer while-schleife die ordner größe geprüft wird. verändert sie sich nicht mehr, sind alle dateien kopiert und nun soll rsync starten
so sieht bisher mein script aus:
spontan habe ich da den Befehl du gefunden.
wäre du -sm evtl das richtige?
---------- Beitrag hinzugefügt um 09:06 ---------- Vorheriger Beitrag war um 06:47 ----------
Habe mal gebastelt. Bin ein totaler bash DAU. Wenn es was besseres gibt, gebt mir bescheid. Werde es heute abend mal testen
ich habe zwar OSX installiert, aber ich denke ich bin hier besser aufgehoben. Ich habe ein bash script, dass ausgeführt werden soll, wenn sich in einem bestimmten Ordner etwas ändert.
Konkret geht es um meinen Musikordner. Wenn dort neue Dateien dazukommen, soll das script starten und mittels rsync die Daten auf meinen Server laden.
Nun habe ich das Problem, dass rsync nie alle Files kopiert, da es glaube ich zu schnell ist. Bedeutet, das erste Lied wird importiert, Script startet, bis dahin sind vlt 4 Lieder importiert, Script wird beendet..
Ein einfaches sleep x, habe ich zwar schon eingebaut aber das ist mir zu ungenau.
Ich hätte gern, dass vor dem rsync befehl in einer while-schleife die ordner größe geprüft wird. verändert sie sich nicht mehr, sind alle dateien kopiert und nun soll rsync starten
so sieht bisher mein script aus:
#!/bin/sh
PROG=$0
SRC="'.../Music/iTunes/iTunes Media/Music'"
DST="/Volumes/Musik/itunes/"
CMD="eval rsync -av --progress --delete $SRC $DST"
if [ ! -r $SRC ]; then
/usr/bin/logger -t $PROG "Source $SRC not readable - Cannot start the sync process"
exit;
fi
if [ ! -w $DST ]; then
/usr/bin/logger -t $PROG "Destination $DST not writeable - Cannot start the sync process"
exit;
fi
/usr/bin/logger -t $PROG "Start rsync"
sleep 20;
$CMD
/usr/bin/logger -t $PROG "End rsync"
exit 0
spontan habe ich da den Befehl du gefunden.
wäre du -sm evtl das richtige?
---------- Beitrag hinzugefügt um 09:06 ---------- Vorheriger Beitrag war um 06:47 ----------
Code:
x="0"
y="1"
cd /PATH/TO/CHECK/SIZE
while [ "$x" != "$y" ]
do
x=$(du -sk)
y=$(du -sk)
done
$CMD
Habe mal gebastelt. Bin ein totaler bash DAU. Wenn es was besseres gibt, gebt mir bescheid. Werde es heute abend mal testen
Zuletzt bearbeitet: