
リモートサーバーでファイルの可用性を確認し、ファイルの可用性に応じてif条件を作成する必要があります。
今日作成されたリモートディレクトリのファイルを一覧表示するために、シェルスクリプトで次のコマンドを試しました。
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.