Ich habe ein einfaches Bash-Skript geschrieben, um bestimmte Dateien täglich auf einem Backup-Mount zu sichern und die letzten 3 Tage der Backups aufzubewahren. Es ist offensichtlich zu einfach, da ich gelegentlich merkwürdiges Verhalten bekomme, das dadurch erklärt werden könnte, dass der erste MV ausgeführt wird, bevor der RM abgeschlossen ist.
Hier ist das Skript:
#!/bin/bash
mount /mnt/backups
while [ ! -d /mnt/backups/dailyBackup-0 ]
do
echo "Backup mount not present, sleeping..."
sleep 30
done
rm -r /mnt/backups/dailyBackup-2
mv /mnt/backups/dailyBackup-1 /mnt/backups/dailyBackup-2
mv /mnt/backups/dailyBackup-0 /mnt/backups/dailyBackup-1
dirname="/mnt/backups/dailyBackup-0"
mkdir $dirname
cd /
rsync -qr --stats root etc var $dirname
umount /mnt/backups
Obwohl dies die meiste Zeit in Ordnung ist, habe ich manchmal Folgendes: Es sieht so aus, als würde dailyBackup-1 verschoben, bevor dailyBackup-2 vollständig gelöscht wurde. Wenn dies der Fall ist, wie kann dies am besten verhindert werden?
/mnt/backups/dailyBackup-0:
total 0
drwxrwxrwx 1 root root 0 2010-12-07 03:27 var
drwxrwxrwx 1 root root 0 2010-12-07 02:39 root
drwxrwxrwx 1 root root 0 2010-12-07 02:38 etc
/mnt/backups/dailyBackup-1:
total 0
drwxrwxrwx 1 root root 0 2010-12-06 03:26 var
drwxrwxrwx 1 root root 0 2010-12-06 02:32 root
drwxrwxrwx 1 root root 0 2010-12-06 02:32 etc
/mnt/backups/dailyBackup-2:
total 0
drwxrwxrwx 1 root root 0 2010-12-07 02:36 var
drwxrwxrwx 1 root root 0 2010-12-05 03:21 dailyBackup-1
Versuchen Sie dies zu ändern
wie
Daher wird jeder Befehl nur ausgeführt, wenn der vorherige erfolgreich abgeschlossen wurde (oder mit anderen Worten mit dem Status 0 beendet wurde).
quelle
Werden die Dateien auf einem anderen Server über nfs mount abgerufen? Wenn NFS mit weichen Halterungen eingerichtet ist, kann nicht garantiert werden, dass die Vorgänge abgeschlossen sind.
quelle