根据从远程服务器获得的结果创建 IF 条件

根据从远程服务器获得的结果创建 IF 条件

我需要检查远程服务器中的文件可用性,并根据文件可用性我需要制定 if 条件。

我已在 shell 脚本中尝试了以下命令来列出今天生成的远程目录中的文件。

FILE=`ssh ${USER}@${HOST} '( cd /home/oracle/SABARISH/logs/sftp && ls -l --time-style=+%D | grep $(date +%D) | grep -v '^d' | awk "'{print $NF}'")' `


echo ${FILE}

上述命令不会产生任何输出。我如何解决它。

一旦它产生输出,如果文件存在,我如何从中生成 if 语句?

答案1

正如您在评论中提到的,您想要检查远程目录中当前日期的文件,您可以通过以下方式执行此操作:

FILE=$(ssh -q "$USER"@"$HOST" 'find /home/oracle/SABARISH/logs/sftp -type f -daystart -mtime -1 | wc -l')

if test "$FILE" -eq 0; then
        exit
else
        # do your SFTP stuff here
fi

man find

-daystart
    Measure times (for -amin, -atime, -cmin, -ctime, -mmin, and -mtime) from the beginning of today rather than from 24 hours ago. This option only affects tests which appear later on the command line.

相关内容