リモートサーバーから得られた結果に基づいてIF条件を生成する

リモートサーバーから得られた結果に基づいてIF条件を生成する

リモートサーバーでファイルの可用性を確認し、ファイルの可用性に応じて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.

おすすめ記事