我在hostname.com/files
有一台服务器。每当文件上传时我都想下载它。
我在考虑创建一个不断检查files
目录的脚本。它将检查服务器上文件的时间戳并根据它下载它们。
是否可以使用bash脚本检查文件时间戳?有更好的方法吗?
我可以每1小时下载一次服务器中的所有文件。因此,使用cron工作会更好吗?
答案 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
确保它不会进入父目录,从而有效地抓取整个服务器的内容。
与往常一样,更多细节将在rsync
或wget
的手册页中。