linux下Vps自动备份web和mysql数据库的脚本
发布时间:2020-12-12 08:14:04 所属栏目:MsSql教程 来源:网络整理
导读:用Vps什么事都要自己费心,备份也是。像Linode里的备份服务是要收费的,一个月是5美元。与其花这5美元,不如自己丰衣足食。为服务安装上了Dropbox,设定为每天4:00-6:00 开启同步服务。在之前运行两个脚本,自动备份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天运行等。应该是需要设定要备份周期,或者结合起来使用。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |