Shell-Script
根據我們從遠端伺服器獲得的結果創建一個 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 語句?
正如您在評論中提到的要檢查遠端目錄中目前日期的文件,您可以通過以下方式執行此操作:
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.