Faça uma condição IF fora do resultado que recebemos do servidor remoto

1

Eu preciso verificar a disponibilidade dos arquivos no servidor remoto e, com base na disponibilidade dos arquivos, preciso fazer uma condição if.

Eu tentei os comandos abaixo em um script de shell para listar os arquivos no diretório remoto que são gerados hoje.

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}

O comando acima não produz saída. Como faço para corrigir isso?

Uma vez que produz saída, como eu faço uma declaração if se o arquivo existe?

    
por sabarish jackson 17.06.2016 / 08:55

1 resposta

2

Como você mencionou no comentário que deseja verificar no arquivo de data atual, você pode fazer isso da seguinte maneira:

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

de 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.
    
por 17.06.2016 / 11:25