我可以访问FTP服务器,客户端每周上传两次更新的文件。我必须编写一个bash脚本来检查文件(我知道文件的名称)是否在过去24小时内被修改:如果是,那么我需要下载该文件。
我能够正常使用bash脚本从FTP下载文件,但我不知道如何检查FTP中的上次修改时间。
答案 0 :(得分:0)
在大多数情况下,FTP ls
命令链接到服务器ls
命令。所以你应该试试
ls -l <filename>
答案 1 :(得分:0)
使用-z
/--time-cond
选项,最简单的方法可能是curl
:
(HTTP / FTP)请求在给定时间和日期之后修改的文件,或者在此之前修改过的文件。可以是各种日期字符串,或者如果它与任何内部字符串不匹配,则将其视为文件名并尝试从中获取修改日期(mtime)。有关日期表达式的详细信息,请参见curl_getdate(3)手册页。
接受的日期格式在curl_getdate
docs中指定,但只需支持通常的英文 - 自然RFC-822格式,date
util也支持{{1} } / -R
选项。
我们可以使用相对--rfc-2822
字符串计算24小时前截止时间戳的日期/时间:
date
并将该值提供给$ date -R -d '24 hours ago'
Mon, 25 Sep 2017 17:30:49 +0200
:
curl
要将输出直接保存到本地文件(而不是将其输出到stdout),请使用curl 'ftp://server/file' --time-cond "$(date -R -d '24 hour ago')"
选项,要禁止进度输出,请使用--output filename
选项。