晓燕9628 发表于 2016-6-10 12:00:28

VPS(网站数据+数据库)自动备份脚本(本地+ftp异地备份)

  http://www.linode.im/559.html#more-559
  
我搞了linode的收费备份,所以一直也没有搞自动备份脚本,今天分享下我的vps自动脚本。关于备份策略,不同的人有不同的需求,有人建议网站数据一周备份一次,数据库每天备份一次。但是最近接触几个朋友,都比较关心数据的重要性,都要求我给他们每天备份网站文件数据和数据库,以下脚本的VPS备份策略是每天备份网站数据+数据库,同时每天ftp异地备份到其他服务器(双保险)。
以下是backupday.sh的内容,仅仅将-ppasswd换成你自己数据库root的passwd即可
#!/bin/bash
basedir=/backup/daily
PATH=/bin:/usr/bin:/sbin:/usr/sbin; export PATH
export LANG=C
wwwd=$basedir/www
sqld=$basedir/sql
for dirs in $wwwd $sqld
do
[ ! -d “$dirs” ] && mkdir -p $dirs
done
/usr/local/mysql/bin/mysqldump -uroot -ppasswd –all-databases > $sqld/mysql.$(date +%Y-%m-%d).tar.bz2
cd /home/
tar -jpc -f $wwwd/www.$(date +%Y-%m-%d).tar.bz2 www
rm -rf $sqld/mysql.$(date +%Y-%m-%d -d “2 days ago”).tar.bz2
rm -rf $wwwq/www.$(date +%Y-%m-%d -d “2 days ago”).tar.bz2

以下是ftp异地备份脚本ftpbackup.sh
#!/bin/bash
host=”106.187.xx.xxx” (换成你的远程主机ip)
id=”ftp” (换成你的远程主机登录ftp用户名)
pw=’ftppasswd’ (换成你的远程主机登录ftp密码)
basedir=”/backup/daily/”
remotedir=”/backup/ftp/”
backupfile=daily.$(date +%Y-%m-%d).tar.bz2
cd $basedir/..
tar -jpc -f $backupfile $(basename $basedir)
ftp -n “$host” > ${basedir}/../ftp.log 2>&1 <<EOF
user $id $pw
binary
cd $remotedir
put $backupfile
bye
EOF
最后vi /etc/crontab 让/backup/backupday.sh /backup/ftpbackup.sh定时执行即可。
页: [1]
查看完整版本: VPS(网站数据+数据库)自动备份脚本(本地+ftp异地备份)