Backupdateien des PPC automatisch purgen: Unterschied zwischen den Versionen
Niki (Diskussion | Beiträge) (Die Seite wurde neu angelegt: x) |
Niki (Diskussion | Beiträge) |
||
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | + | <section begin="head"/> | |
+ | Durch die Verwendung von MightySync eröffnen sich nun völlig neue Möglichkeiten. Ich lasse jede Nacht per "Spb Backup" ein komplettes Backup des PPC auf die SD Karte erstellen (der ja oft abstürzt). Die Backupdateien sind komprimiert und verschlüsselt und ich lasse die alten Backupdateien leben. Kann ja sein, dass ich einmal was vorige Woche gelöscht hab, dass ich jetzt noch brauch! | ||
+ | Bis jetzt habe ich die Backupdateien immer manuell in eine Archivverzeichnis am Server verschoben... | ||
+ | <section end="head"/> | ||
+ | |||
+ | doch das erledigt jetzt ein Script. | ||
+ | |||
+ | <source lang="bash"> | ||
+ | #!/bin/bash | ||
+ | |||
+ | # (c) 2006-04-23, Nikolaus Hammler <nobaq@sbox.tugraz.at> | ||
+ | # cron-script to remove old backup entries from synchronized PPC dir | ||
+ | # and move them to archive | ||
+ | |||
+ | src="/home/niki/daten/offline/mobile/Speicherkarte/Backups" mce_src="/home/niki/daten/offline/mobile/Speicherkarte/Backups" | ||
+ | dst="/home/niki/daten/PocketPC_Backup" | ||
+ | |||
+ | if ! test -d "$src" | ||
+ | then | ||
+ | echo "source dir does not exist" | ||
+ | exit 1 | ||
+ | fi | ||
+ | |||
+ | if ! test -d "$dst" | ||
+ | then | ||
+ | echo "dest dir does not exist" | ||
+ | exit 1 | ||
+ | fi | ||
+ | |||
+ | function is_lt_yesterday() | ||
+ | { | ||
+ | #local y=${1:0:4} | ||
+ | #local m=${1:4:2} | ||
+ | #local d=${1:6:2} | ||
+ | #test $y -lt 1004 -o $y -gt 2010 && return 2 | ||
+ | #test $m -lt 1 -o $m -gt 12 && return 3 | ||
+ | #test $d -lt 1 -o $d -gt 31 && return 4 | ||
+ | |||
+ | touch -d 2yesterday /tmp/cmp1 | ||
+ | touch -d $1 /tmp/cmp2 | ||
+ | dir -l /tmp/cmp1 | ||
+ | dir -l /tmp/cmp2 | ||
+ | local ret | ||
+ | |||
+ | test /tmp/cmp2 -ot /tmp/cmp1 | ||
+ | |||
+ | ret=$? | ||
+ | |||
+ | rm -f /tmp/cmp1 | ||
+ | rm -f /tmp/cmp2 | ||
+ | |||
+ | return $ret | ||
+ | } | ||
+ | |||
+ | |||
+ | for file in $src/Backup_*.{exe,txt} | ||
+ | do | ||
+ | f=`basename $file` | ||
+ | d=`dirname $file` | ||
+ | datum=${f:7:8} | ||
+ | is_lt_yesterday $datum | ||
+ | |||
+ | case "$?" | ||
+ | in | ||
+ | 0) | ||
+ | echo "File is too old, move to archive ($file)" | ||
+ | mv -v "$file" "$dst" | ||
+ | ;; | ||
+ | 1) | ||
+ | echo "File is too new, keep ($file)" | ||
+ | ;; | ||
+ | *) | ||
+ | echo "error, code $?" | ||
+ | ;; | ||
+ | esac | ||
+ | done | ||
+ | </source> | ||
+ | |||
+ | Es geht sicher schöner, aber was solls. Das Script wird jeden Tag per cron aufgerufen und verschiebt alle Backupdateien, die älter als 2 Tage sind, in das Archivverzeichnis. Interessant ist das '2yesterday' von touch - ich habe es nirgends in der Dokumentation finden können sondern nur rein zufällig in google-groups. | ||
+ | |||
+ | = Kommentare = | ||
+ | |||
+ | <comments />{{:{{TALKSPACE}}:{{PAGENAME}}}} | ||
+ | |||
+ | [[Kategorie:Weblog]] |
Aktuelle Version vom 2. Mai 2009, 22:14 Uhr
Durch die Verwendung von MightySync eröffnen sich nun völlig neue Möglichkeiten. Ich lasse jede Nacht per "Spb Backup" ein komplettes Backup des PPC auf die SD Karte erstellen (der ja oft abstürzt). Die Backupdateien sind komprimiert und verschlüsselt und ich lasse die alten Backupdateien leben. Kann ja sein, dass ich einmal was vorige Woche gelöscht hab, dass ich jetzt noch brauch! Bis jetzt habe ich die Backupdateien immer manuell in eine Archivverzeichnis am Server verschoben...
doch das erledigt jetzt ein Script.
#!/bin/bash
# (c) 2006-04-23, Nikolaus Hammler <nobaq@sbox.tugraz.at>
# cron-script to remove old backup entries from synchronized PPC dir
# and move them to archive
src="/home/niki/daten/offline/mobile/Speicherkarte/Backups" mce_src="/home/niki/daten/offline/mobile/Speicherkarte/Backups"
dst="/home/niki/daten/PocketPC_Backup"
if ! test -d "$src"
then
echo "source dir does not exist"
exit 1
fi
if ! test -d "$dst"
then
echo "dest dir does not exist"
exit 1
fi
function is_lt_yesterday()
{
#local y=${1:0:4}
#local m=${1:4:2}
#local d=${1:6:2}
#test $y -lt 1004 -o $y -gt 2010 && return 2
#test $m -lt 1 -o $m -gt 12 && return 3
#test $d -lt 1 -o $d -gt 31 && return 4
touch -d 2yesterday /tmp/cmp1
touch -d $1 /tmp/cmp2
dir -l /tmp/cmp1
dir -l /tmp/cmp2
local ret
test /tmp/cmp2 -ot /tmp/cmp1
ret=$?
rm -f /tmp/cmp1
rm -f /tmp/cmp2
return $ret
}
for file in $src/Backup_*.{exe,txt}
do
f=`basename $file`
d=`dirname $file`
datum=${f:7:8}
is_lt_yesterday $datum
case "$?"
in
0)
echo "File is too old, move to archive ($file)"
mv -v "$file" "$dst"
;;
1)
echo "File is too new, keep ($file)"
;;
*)
echo "error, code $?"
;;
esac
done
Es geht sicher schöner, aber was solls. Das Script wird jeden Tag per cron aufgerufen und verschiebt alle Backupdateien, die älter als 2 Tage sind, in das Archivverzeichnis. Interessant ist das '2yesterday' von touch - ich habe es nirgends in der Dokumentation finden können sondern nur rein zufällig in google-groups.
Kommentare
<comments />Diskussion:Backupdateien des PPC automatisch purgen