前言
前段时间有介绍了一款免费的服务器虚拟主机《注册流程超简单:免费十年服务器申请并部署wordpress过程》,之前经历过甲骨文的突然无权访问,所有实例的数据都掉了,吃一亏长一智,一定要做好数据备份,而且免费的更加要小心。数据无价呀。
过程
实现过程,利用的是Serv00的Cron Jobs定时任务,制定自动自动打包命令传输到WebDav服务器。这里使用的是《推荐一个永久45G,支持WebDav的海外网盘infiniCloud》一文里提到的WebDav服务器。非常稳定,而且支持挂载到本地《挂载支持WebDav的海外网盘infiniCloud到本地硬盘》,有兴趣的可以看看。
现在回到实现过程汇总:
第一条任务:每个周二的八点执行打包任务 tar -cvzf /home/mailberry/yourdomain-$(date +%F).tar.gz /home/mailberry/domains/yourdomain/public_html/
解析:使用tar打包命令将yourdomain的public_html目录打包成yourdomain-当天日期.tar.gz
第二条任务:每个周二的九点执行上传到WebDav任务 curl -u mailberry:password -T /home/mailberry/yourdomain-$(date +%F).tar.gz -s -w %{http_code} https://higa.teracloud.jp/dav/
解析:这个命令使用curl工具进行HTTP请求,对远程服务器进行身份验证,并将本地文件上传到远程服务器上。下面是命令的解析:
curl
: 使用curl命令行工具。-u "admin:pwd"
: 指定用户名和密码进行身份验证。在这里,admin
是用户名,pwd
是密码。-T /home/mailberry/yourdomain-\$(date +%F).tar.gz
: 指定要上传的本地文件路径。/home/mailberry/yourdomain-\$(date +%F).tar.gz
是一个动态路径,其中$(date +%F)
会被当前日期替换。这个命令会将名为yourdomain-YYYY-MM-DD.tar.gz
的文件上传到远程服务器。-s
: 静默模式,不输出进度信息或错误消息。-w "%{http_code}"
: 指定输出格式为HTTP响应码。这个命令会在curl请求执行完毕后输出HTTP响应码。"https://higa.teracloud.jp/dav/"
: 目标URL,指定了远程服务器的地址和目录。
以下测试过程,可忽略
上图可以看到已经成功上传了
登录WebDav也看到成功了,说明命令是有效的,当然这是测试命令时候使用到,并不需要操作这两个步骤。
以上是测试过程,可忽略
第三条任务:每周二的十点执行删除任务 rm /home/mailberry/yourdomain-$(date +%F).tar.gz
解析:使用了rm删除当天备份的文件,这样做可以省空间容量。
第四条任务:每月的28日,十二点十二分执行删除远程WebDav目录下yourdomain+2天前日期文件 curl -X DELETE -u "mailberry:password" -s -o /dev/null -w "%{http_code}" "https://higa.teracloud.jp/dav/yourdomain-$(date -v -2d +%F).tar.gz"
解析:这个命令使用curl工具向远程服务器发送HTTP DELETE请求,以删除远程服务器上的文件
$(date -v -2d +%F)
表示2天前日期的名称,Serv00使用的是BSD系统,所以要使用这个命令。
这是第二点命令的样板,其它命令就是改对应位置便可以了,不再重复截图
总结
创建了每周二8点备份,九点上传,十点删除,每月的28号清理一次远程目录,避免把远程目录器挤暴了。这种方法非常适合简单图床的备份,因为它用不到数据库。
暂无评论