linux下实现VPS web和mysql数据的备份脚本

下面这个是备份网站和数据库的脚本(注意此脚本适用于小数据且对磁盘IO不高的情况下使用)

代码如下:

#!/bin/bash 
#set -x 
time=`date +%Y%m%d` 
#下面是备份MySql 
[ ! -e /backup/sqltmp ] && mkdir -p /backup/sqltmp #创建临时备份mysql目录 
[ ! -e /backup/backsql ] && mkdir -p /backup/backsql #创建mysql备份的存放目录 
cd /backup/sqltmp 
sql=`mysqlshow -u用户名 -p密码 |grep -v + | grep -Ev “Data|information|mysql|test” | awk {‘print $2′}` #查询mysql数据库里出系统数据以外的网站数据库,这里可以根据需要修改 
for sqlname in $sql 
do 
mysqldump -u用户名 -p密码 $sqlname > $sqlname.sql 
done 
tar zcvf backsql.$time.tar.gz *.sql 
rm -rf *.sql 
mv * ../backsql/. 
cd .. 
rm -rf sqltmp 
#下面是备份网站 
[ ! -e /backup/webtmp ] && mkdir -p /backup/webtmp #创建临时备份web文件目录 
[ ! -e /backup/backweb ] && mkdir -p /backup/backweb #创建web文件备份的存放目录 
cd /backup/webtmp 
tar zcvf backweb.$time.tar.gz /home/* 
mv * ../backweb/. 
cd .. 
rm -rf webtmp 

下面这个是上传到通过ftp把备份网站上传到godaddy空间上的脚本: 
代码如下:
#!/bin/bash 
backsql=`cd /backup/backsql;ls -r backsql* | head -1` #因为每天都备份文件取最新的那个 
backweb=`cd /backup/backweb;ls -r backweb* | head -1` 
ftp -n<<EOF 
open ip #这里写godaddy空间的ip 
user ftp用户名 ftp密码 
binary 
cd /back/ #备份文件要存放的ftp上的路径 
lcd /backup/backsql/ #备份mysql文件本地存放路径 
prompt 
mput $backsql 
lcd /backup/backweb/ #备份web文件本地存放路径 
mput $backweb 
close 
bye 
EOF 


然后把这两个脚本做个crontab计划任务就实现每天定时异地备份了,而且省时省力省钱。 
复制代码 代码如下:
[[email protected] ~]# crontab -e 
01 0 * * * /root/backup.sh 
0 5 * * * /root/ftp.sh 


附录:使用免费的Dropbox进行备份参考http://www.jb51.net/article/30283.htm.


你可能感兴趣的:(linux下实现VPS web和mysql数据的备份脚本)