保持文件从远程服务器更新

时间:2013-06-25 01:26:38

标签: linux bash

我在hostname.com/files有一台服务器。每当文件上传时我都想下载它。

我在考虑创建一个不断检查files目录的脚本。它将检查服务器上文件的时间戳并根据它下载它们。

是否可以使用bash脚本检查文件时间戳?有更好的方法吗?

我可以每1小时下载一次服务器中的所有文件。因此,使用cron工作会更好吗?

1 个答案:

答案 0 :(得分:0)

如果您有定期更新文件的时间间隔,是的,cron工作可能是您最好的选择。只需编写一个执行检查的脚本,并按小时间隔运行。

正如@Barmar在上面评论的那样,rsync可能是另一种选择。在crontab中添加这样的内容,您应该设置:

# min hour      day month day-of-week user command
17 *    * * *   user  rsync -av http://hostname.com/ >> rsync.log

将从该位置的服务器获取文件,并在每小时的第17分钟将详细信息附加到rsync.log。但是现在,我似乎不能让rsync从网络服务器获取文件。

使用wget的另一个选项是:

wget -Nrb -np -o wget.log http://hostname.com/

其中-N仅重新下载比本地版本的时间戳更新的文件,-b发送 进程到后台,-r递归到目录,-o指定日志文件。这适用于任意Web服务器。 -np确保它不会进入父目录,从而有效地抓取整个服务器的内容。

与往常一样,更多细节将在rsyncwget的手册页中。