备份脚本

代码

使用说明

1、将代码中的 2 处 mypassword 改成你自定义的压缩密码(确保数据安全),并保存为 backup.sh 之后,执行 chmod +x backup.sh 赋执行权限。

2、相关命令如下:

参见 –help

加入计划任务

安装crontab

设为开机启动

为了方便我们可以把crontab设置成开机自启 在 /etc/rc.d/rc.local 脚本中加入

设置计划任务

执行 crontab -e 建立任务计划,如下是我的 vps 的任务计划,请参考添加:

每个网站 2 行,第一行备份数据库,第二行备份网站文件。

crontab 参数格式为 {分 时 日 月 周 + 命令行}

所以,拿第 2 行来说,就是 每天的凌晨 3 点,执行后面的命令行,最后的>/dev/null 2>&1 表示屏蔽任何日志信息。

注意事项:脚本需要写绝对路径,比如/root/scripts/backup.sh 并且要有执行权限,可以再次执行 chmod +x 来赋权

同步到其他VPS

使用rsync命令,并加入到crontab中:

更多ssh免密介绍,请看另一篇文章。

如何在 CentOS / RHEL 上设置 SSH 免密码登录

注意事项

1、考虑到脚本适用性,压缩时会包含文件的绝对路径,而解压时也将恢复原来的绝对路径。

比如,解压 zhangge.net_7.zip,所有文件将带上备份前的路径:/home/wwwroot/zhangge.net/

看得懂脚本、又不想带路径压缩的同学,可以自行修改下,让脚本只压缩网站目录。

比如,将脚本第 29 行修改如下即可实现:

注意网站目录名必须和输入的 domain 一致!看不懂脚本的,不建议修改,带了绝对路径也不影响后期手动恢复!

2、备份文件会带有脚本执行者的权限,比如备份脚本是以 root 身份执行,那么这个压缩包解压后的文件的所有者和权限都是 root,那么在恢复网站数据时,必须使用 chmod 恢复权限到当前的 web 使用者,比如 lnmp 一件安装的环境,web 的使用者是 www,那么解压缩备份文件后,记得执行:chown -R www:www /网站路径  恢复所有者权限,否则打开网站可能出现空白页!

发表评论