원격 서버에서 얻은 결과를 기반으로 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.

관련 정보