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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Bash脚本检查ftp上的实际日期文件相关的知识,希望对你有一定的参考价值。

我有简单的脚本:

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服务器并向我发送电子邮件?

答案

我认为这里有三个可能的问题。第一个是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

以上是关于Bash脚本检查ftp上的实际日期文件的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本:检查ftp日志存储服务器上的日志是否正常上传

如何使用 bash 脚本检查 AIX 中文件的最后修改日期?

用于在没有 -R 的 FTP 服务器上列出递归目录的 Bash 脚本

在 bash 脚本中进行 FTP 上传

CPP 检查不在本地机器上

如何在 Bash 脚本中将 (FTP) 文件上传到服务器?