1 备份的意义
为什么要自动备份网站文件和数据库且还要自动上传到云盘?都说数据无价!这么做的主要原因是云厂商可能会把我们的账号封禁,连同这个账号下的全部VPS直接销毁!还有VPS所在机房、数据中心火灾等灾难也可能导致我们的服务器上的数据消失在灿烂的焰火中。
刚好,我有个稍稍有点悲伤的故事你稍稍了解一下,具体点的吐槽发布在论坛里,点此访问。我其中一个网站用的是甲骨文云(Oracle cloud)付费账户的VPS。尽管是付费用户,我依旧用的他们家可免费使用的服务器,确实是那个网站已经足够使用。
甲骨文封禁账号早有耳闻,这个事情发生属实意料之中。却没想到这么粗暴,直接封号删机,连数据转移的机会都不给。还好,网站内容不多,我直接从谷歌的缓存页面将内容恢复了过来。
lnmp备份网站文件和数据库上传到谷歌云盘
温馨提示:各位站长、博主.. 记得做好数据备份。
虽然我们个人不能做到大厂的容灾备份,但起码也算更稳妥了一分!如果还担心谷歌账号被封了咋办?那就再找找办法自动传回到自己的本地硬盘上吧!或者定时从服务器、谷歌云盘上下载备份数据到本地。
2 lnmp自动备份网站上传到云盘的步骤
站长WordPress建站用的是lnmp一键安装包,这个程序中自带了备份脚本。我们只需修改脚本的部分参数,安装gdrive与谷歌云端硬盘授权,并配置好自动上传脚本即可。
3 修改备份脚本参数
修改/root/lnmp2.1/tools/backup.sh 备份脚本的几个参数。清注意:如果升级了lnmp一键安装包,此文件应需要再次修改。
Backup_Home="/home/backup/" # 此为备份文件存放目录
MySQL_Dump="/usr/local/mysql/bin/mysqldump" # mysqldump路径,如果是mariadb,替换/usr/local/mysql为/usr/local/mariadb
######~Set Directory you want to backup~######
Backup_Dir=("/home/wwwroot/vvars.com" "/home/wwwroot/5var.com") # 要备份的目录,目录用双引号括起来,多个目录空格隔开
######~Set MySQL Database you want to backup~######
Backup_Database=("lnmp" "vvars-com") # 要备份的数据库,目录用双引号括起来,多个目录空格隔开
######~Set MySQL UserName and password~######
MYSQL_UserName='root' # MySQL root账号
MYSQL_PassWord='yourrootpassword' # MySQL root密码
######~Enable Ftp Backup~######
Enable_FTP=1 # 是否启用ftp备份。0 启用;1 不启用
# 0: enable; 1: disable
######~Set FTP Information~###### ftp账号信息
FTP_Host='1.2.3.4'
FTP_Username='vvars.com'
FTP_Password='yourftppassword'
FTP_Dir="backup" # ftp服务器上存放备份的目录
#Values Setting END! 默认备份文件保存3天,可以修改backup.sh里的-3day为你指定的天数。
4 挂载onedrive为本地硬盘
可以参考本站之前的文章 通过rclone挂载onedrive每天定时同步VPS数据
5 设置自动上传OneDrive和123pan脚本
1) 编辑lnmp的备份脚本
vim /root/lnmp2.1/tools/backup.sh
在backup.sh基础上增加如下的两句命令即可
rclone copy --ignore-existing /home/backup/ /home/onedrive/www/backup
#备份到onedrive网盘
rclone copy --ignore-existing /home/backup/ /home/123pan/www/backup
#备份到123云盘
保存,其中路径等内容自行修改。
注意:rclone sync是同步,即本地目录有删除文件的话,远程网盘中的文件也会删除。而rclone copy –ignore-existing则是只增不减,各有各的优势,你可以根据自己的需要来选择。
2) 试运行一次网站备份自动上传脚本。
chmod +x /root/lnmp2.1/tools/backup.sh
/bin/bash /root/lnmp2.1/tools/backup.sh
出现Backup website files …,表示脚本执行成功。
6 设置定时备份任务
1)接下来执行
crontab -e
在最后一行添加
0 2 * * 2 /bin/bash /root/lnmp2.1/tools/backup.sh
其中/root/backupload.sh是脚本的完整路径,你可以根据自己的喜好修改。保存成功后,服务器每周二的凌晨2点,系统会自动备份服务器网站文件和数据库并上传到OneDrive和123pan。
2)计划任务添加完毕后,执行此命令重启计划任务服务;
systemctl restart cron
#或 service cron restart
评论 (0)