File Watcher e enviar e-mail

0

Eu gostaria de criar um script que detecte um novo arquivo em pastas diferentes, como:

  • /home/pedro/XX/file1_082018.zip
  • /home/pedro/XX/file2_082018.zip

em que XX indica um nome de país de posição não fixa (E.G. Brasil, Argentina, Chile, ...)

Uma vez que o novo arquivo foi detectado, eu gostaria de copiar este arquivo em outro lugar:

cp /home/pedro/BR/file1_082018.zip /home2/pedro/BR/file1_082018.zip

E se a cópia para a nova pasta estiver completa, envie uma mensagem para informar. Novo arquivo / arquivo1_082018.zip está disponível.

    
por Pedro Lopes 04.10.2018 / 19:22

1 resposta

0

De acordo com cp man , você pode verificar o código de retorno do cp .

EXIT STATUS
    The cp utility exits 0 on success, and >0 if an error occurs.

O código de saída da última operação é salvo na variável especial $? , por exemplo:

cp -v /home/pedro/BR/file1_082018.zip /home2/pedro/BR/file1_082018.zip
echo $? >> exit_status.log

Em seguida, verifique o valor de $?

for i in $(cat countries.txt); do      #countries.txt is a file contain directories names

cp -v /home/pedro/${i}/file1_082018.zip /home2/pedro/${i}/file1_082018.zip
echo $? >> exit_status.log

if [ $? -ne 0 ]
  then
    echo "there was an error in copying the data" 
 exit
  else
mail -s "Success!" [email protected]
  fi

concluído

    
por 04.10.2018 / 20:12