用于网站自动备份的Bash/Shell脚本



我是shell脚本的新手,一直在寻找如何为我的网站创建备份脚本的示例,但我找不到什么,或者至少找不到我能理解的东西。

我有一个Synology Diskstation服务器,我想用它自动(通过它的调度器)备份我的网站。

我目前正在通过Mac上的Automator和Transmit FTP程序来完成这项工作,但让这成为一个命令行过程是我很难做到的。

这就是我在脚本中想要做的:

1) 在没有浏览器的情况下打开一个URL(这个URL在服务器上创建一个数据库的mysql转储,稍后下载)。示例url为http://mywebsite.com/dump.php

2) 使用FTP从服务器下载所有文件。(当前传输FTP将此作为同步功能处理,只下载远程文件日期比本地文件新的文件。它还将删除远程服务器上不存在的任何本地文件)。

3) 从步骤2中创建文件的压缩档案,命名为website_CURRENT-DATE

4) 将归档文件从步骤3移动到特定文件夹,并删除该特定文件夹中超过120天的任何文件。

现在我不知道如何执行步骤1或步骤2中的同步(我知道如何使用wget下载整个网站,但似乎每次运行时它都会下载所有内容,即使它没有更改)。

步骤3和4可能很容易通过搜索找到,但我还没有搜索过,因为我无法通过步骤1。

谢谢!

此外,仅供参考,我的网络主机不做这些类型的备份,所以这就是我喜欢自己做备份的原因。

按顺序回答每个问题,然后:

  1. 几个选项,其中最常见的是wget http://mywebsite.com/dump.phpcurl http://mywebsite.com/dump.php之一。

  2. 由于您有ssh访问服务器的权限,因此可以非常轻松地使用rsync来获取磁盘上文件的快照,例如rsync -essh --delete --stats -zav username@mywebsite.com:/path/to/files/ /path/to/local/backup

  3. 一旦您从rsync获得了快照,您就可以使用cd /path/to/local/backup; tar cvf /path/to/archives/website-$(date +%Y-%m-%d).tgz *制作一个压缩的、有日期的副本

  4. find /path/to/archives -mtime +120 -type f -exec rm -f '{}' ;将删除所有超过120天的备份。

相关内容

  • 没有找到相关文章

最新更新