Envie um email se os arquivos especificados não existirem

0

Eu tenho que fazer algo como:

Em uma pasta / x todos os dias 10Pm e no dia seguinte 3 AM, 2 arquivos são colocados. Eu tenho que escrever um script que irá verificar a pasta / xe confirmar se os arquivos estão lá ou não e enviar e-mails em conformidade todos os dias.

formatos de arquivo:

  • ValuationIR**02092013**_0326 (padrão FileName: ValuationIR<date>_<time>.csv )
  • SnapshotIR**02082013**_2238 (padrão FileName: SnapshotIR<date>_<time>.csv )
por Swagatika 11.02.2013 / 12:52

1 resposta

1

Se você simplesmente precisar verificar se os dois arquivos existem e enviar um e-mail se eles não existirem, algo assim deve funcionar bem:

test -f file1 -a -f file2 || ( echo "Either file1 or file2 doesn't exist" | sendmail ... )

A parantesia não é estritamente necessária, mas estou incluindo-as para maior clareza. Você também pode usar funções bash para tornar isso um pouco mais legível e facilmente expansível, mas que não será independente de shell (embora a maioria das shells tenham maneiras de fazer a mesma coisa).

send_mail() {
    echo "message text" | sendmail ...
}
test -f file1 -a -f file2 || send_mail

Isso pode ser expandido ainda mais, se necessário, mas o acima deve ajudar você a começar.

Quando o próprio script funciona como planejado, você pode adicioná-lo ao seu crontab de usuário para executá-lo todas as noites em um horário especificado.

    
por 11.02.2013 / 13:04