Bash脚本检查ftp上的实际日期文件

时间:2018-06-04 10:49:01

标签: bash ftp lftp

我有简单的脚本:

lftp user@server -e "cd dir && ls -ltr ;exit" > list.txt

if files=$(cat list.txt | grep "`date | awk '{print $2" "$3}'`") ; then
     echo "$files" | mailx -s "File exists"  name@name.com
else
    echo "$files" | mailx -s "File not exists" name@name.com
end if

问题是因为这个grep日期来自文件不能正常工作,有时候正在工作。

如果有实际日期文件存在并向我发送电子邮件,有人可以告诉我检查ftp服务器的更好方法吗?

1 个答案:

答案 0 :(得分:0)

我认为这里有三个可能的问题。第一个是date | awk '{print $2" "$3}'在日期末尾包含一个逗号。第二个是,lsdate填充了天数,但awk将剥离填充。第三个是ifbash的终结符是fi而不是end if

尝试

if files=$(grep "`date '+%b %e'`" list.txt); then
     echo "$files" | mailx -s "File exists"  name@name.com
else
    echo "$files" | mailx -s "File not exists" name@name.com
fi

%e中的date假设ls返回一个以空格填充的日期编号。如果您的系统使用零填充日期编号,请尝试%d