원격 서버에서 파일 가용성을 확인해야 하며 파일 가용성에 따라 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.