linux下备份、打包、FTP上传的自动化SHELL脚本。按日期分文件夹备份,包括文件、数据等。可以通过ftp备份到远程服务器实现异地备份
#!/bin/bash
dd=`date -d '1 day ago' +%Y-%m-%d`
dm=`date -d '1 week ago' +%Y-%m-%d`
cd /data/backup/files
if [ ! `pwd` = '/data/backup/files' ]; then
echo 'change file faild'
exit 0
fi
if [ `date -d '1 day ago' +%d` = 15 ]; then #every first day of month, backup all files
tar --exclude www/attachments --exclude www/cache -C /var/ -czf weball.tar.gz www
else
tar -N $dm --exclude www/attachments --exclude www/cache -C /var/ -czf web.tar.gz www
fi
#database
mysqldump -ubackup -pxxxxxx --opt --default-character-set=gbk --add-drop-database --database mysite mysql > mysql.sql
tar czf mysql.tar.gz mysql.sql
rm -f mysql.sql
#transfer to remote server
ftp -n -i << EOF
open ftp.domain.com
user username xxxxxxxx
lcd /data/backup/files
cd /
mkdir $dd
cd $dd
mput *
quit
EOF
#delete files
rm -f *