linux备份web脚本,linux下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天运行等。应该是需要设定要备份周期,或者结合起来使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值