linux下Vps自动备份web和mysql数据库的脚本

这篇文章主要介绍了vps下web与mysql数据库的备份方法,需要的朋友可以参考下
用Vps什么事都要自己费心,备份也是。像Linode里的备份服务是要收费的,一个月是5美元。与其花这5美元,不如自己丰衣足食。为服务安装上了Dropbox,设定为每天4:00-6:00 开启同步服务。在之前运行两个脚本,自动备份web文件夹和mysql数据库。
两个脚本都是备份文件到/root/Dropbox/backup目录里,并自动删除10天前的备份。web备份是每周行一次,删除30天前的备份。

一、备份WEB文件夹

1、备份/home/users/public_html目录
2、修改crontab为每周第一天3:22时运行

22 3 * * 0 root run-parts /etc/cron.weekly

3、复制脚本到/etc/cron.weekly目录
4、修改权限

chmod 0755 /etc/cron.weekly/webbackup.sh

5、脚本如下

#!/bin/sh
filename=`date +%Y%m%d`
backup_dir="/root/Dropbox/backup/web"
#delete all files 10 days ago
find $backup_dir -mtime +30 -name "*" -exec rm -rf {} \;
#each user you want backup
users="baidu sina"
for user in ${users}; do
tar zcvf $backup_dir/$user$filename.tar.gz /home/$user/public_html
done

6、注意filename那句不是单引号,在tab键上方
7、要备份的用户的public_html目录,就把该用户填入users

二、Mysql数据库每日备份

1、为了安全,新建用户backup,用强密码(自动生成即可),全局权限为select,lock tables
2、每日3:00开始执行,修改crontab
3、复制脚本到/etc/cron.daily
4、修改权限
5、脚本内容

#!/bin/sh
dbuser="backup"
dbpassword="youpassword"
datas="db1 db2 db3"
filename=`date +%Y%m%d`
bin_dir="/usr/local/mysql/bin"
backup_dir="/root/Dropbox/backup/mysql"
#delete all files 10 days ago
find $backup_dir -mtime +10 -name "*" -exec rm -rf {} \;
#Do each database backup
for data in ${datas}; do
$bin_dir/mysqldump --opt -u$dbuser -p$dbpassword $data | gzip > $backup_dir/$data$filename.sql.gz
done

6、同上一个第6条
7、要备份的数据库填入datas

三、感受

因为都在美国的原因,备份到dropbox的速度很快,一个10M的文件备份到dropbox,从开启dropbox服务,马上刷新dropbox的网站就可以看到了。
如果流量很紧张的话,也可以设定dropbox为每周运行,或每5天运行等。应该是需要设定要备份周期,或者结合起来使用。
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Vtonf是一款免费的基于web界面的控制面板(符合GPL),它可以管理OpenVz上虚拟专用服务器(VPS)。使用她甚至是那些有很少专业只是的用户也可以很简单地创建和管理OpenVZ上的虚拟机。
本文是根据作者自己多年的维护经验,来和大家分享下网站数据自动备份的一些经验。
火山互联推出的免费VPS...拿来学习下还是不错的.申请过几次Liunx系统的.由于不是很熟悉.几次都没能配置好.下面介绍一下.前几天又申请了一个.
linux下为了安全有时候需要自动备份mysql数据库,下面是具体的实现步骤。
利用rsync自动备份 完全配置,一些细节也做到了,对于比较熟悉rsync的朋友应用,限制了ip相对来说安全增加了。
之前介绍过使用LNMP一键安装包配置Web服务器环境。配置环境虽然简单,但往后维护服务器的工作都是通过SSH,这还是需要学习一定的命令的。