Shell-Script

根據我們從遠端伺服器獲得的結果創建一個 IF 條件

  • June 18, 2016

我需要檢查遠端伺服器中的文件可用性,並根據文件可用性我需要創建一個 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 語句?

正如您在評論中提到的要檢查遠端目錄中目前日期的文件,您可以通過以下方式執行此操作:

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.

引用自:https://unix.stackexchange.com/questions/290338