我是shell脚本的新手,并一直在寻找如何为我的网站创建备份脚本的示例,但我找不到或至少我理解的东西。
我有一台Synology Diskstation服务器,我想用它(通过其调度程序)自动备份我的网站。
我目前正在通过我的Mac上的Automator与Transmit FTP程序一起完成这项工作,但是这是一个命令行过程,这是我努力的地方。
这是我在脚本中要做的事情:
1)打开不带浏览器的URL(此URL在服务器上创建数据库的mysql转储,以便稍后下载)。示例网址为http://mywebsite.com/dump.php
2)使用FTP从服务器下载所有文件。 (目前Transmit FTP将此处理为同步功能,仅下载远程文件日期比本地文件更新的文件。它还将删除远程服务器上不存在的任何本地文件。)
3)创建步骤2中文件的压缩存档,名为website_CURRENT-DATE
4)将存档从步骤3移至特定文件夹,并删除此特定文件夹中超过120天的任何文件。
现在我不知道如何执行第1步,或者步骤2中的同步(我知道如何使用wget下载整个网站,但这似乎每次运行时都会下载所有内容,即使它没有被改变)。
步骤3和4可能很容易通过搜索找到,但我还没有搜索到,因为我无法通过第1步。
谢谢!
另外,我的网络主机不做这些类型的备份,所以这就是我喜欢自己做的原因。
答案 0 :(得分:0)
按顺序回答每个问题,然后:
有几个选项,其中最常见的选项是wget http://mywebsite.com/dump.php
或curl http://mywebsite.com/dump.php
。
由于您ssh
访问了服务器,因此您可以非常轻松使用rsync
来获取磁盘上文件的快照。 G。 rsync -essh --delete --stats -zav username@mywebsite.com:/path/to/files/ /path/to/local/backup
。
从[{1}}获得快照后,您可以使用rsync
cd /path/to/local/backup; tar cvf /path/to/archives/website-$(date +%Y-%m-%d).tgz *
将删除超过120天的所有备份。