ich bin recht unerfahren mit Scripte schreiben, aber ich möchte mich halt weiterbilden.
Daher hab ich mir jetzt ein Backupscript gebastelt und wollte fragen ob man dies ggf. etwas besser gestallten kann.
Funktionieren tut dieses Script, aber es gibt bestimmt auch eine elegantere Lösung.
Danke schon mal im vorraus.
Datafreak
Code: Select all
#!/bin/bash
host="HOST"
user="USER"
pass="PASS"
ftpdir="autobackup"
dirlist="list.txt"
delday="5"
datum=$(date +%G%m%d)
mkdir /tmp/backup-${datum}/
tar cfvz /tmp/backup-${datum}/home-${datum}.tar.gz /home
tar cfvz /tmp/backup-${datum}/vhosts-${datum}.tar.gz /srv/www/vhosts
tar cfvz /tmp/backup-${datum}/mysql_dir-${datum}.tar.gz /var/lib/mysql
ncftpput -u $user -p $pass $host /$ftpdir /tmp/backup-${datum}/*
rm -R /tmp/backup-${datum}/
ncftpls -u $user -p $pass ftp://$host/$ftpdir/ >> $dirlist
while read test; do
case $test in
.)
;;
..)
;;
*)
zeile=$(echo $test | awk -v FS="." '{print $1}')
tagx=$(echo $zeile | awk -v FS="-" '{print $2}')
heute=$(date +%Y%m%d)
tage=$((($(date +%s --date $heute)-$(date +%s --date $tagx))/86400))
if (($tage>=$delday)); then
loeschen="$loeschen $test"
else
echo "$test uebersprungen"
fi
;;
esac
done<$dirlist
rm $dirlist
ftp -in <<EOF
open $host
user $user $pass
bin
hash
cd $ftpdir
mdelete $loeschen
quit
EOF