Como verificar se todos os arquivos desejados foram baixados no shell script

0

Eu fiz o download dos arquivos do servidor remoto por sftp.now Eu quero verificar se todos os meus arquivos (nodeid dado) foram descarregados ou não.se não baixado, em seguida, dar as mensagens de aviso por sendmail.

file_format :

"$today_date"_MPS_Cust_dump_"$nodeid".list.Z
today_date=date +%Y%m%d
declare -a nodeid=("302" "303" "304" "305" "311" "312" "313" "314" "315" "316" "317" "318" 
  "410" "411" "412" "415" "416" "418" "431" "432" "433" "434" "435" "436" "407" "408" "409" 
  "401" "402" "420" "421" "422" "425" "426" "427" "403" "404" "405" "406"
)
    
por user3548033 07.10.2015 / 10:34

2 respostas

1

Use isto:

today_date="$(date +%Y%m%d)" # use $(...) to assign the output of a command to a variable
declare -a nodeid=(...)

for id in "${nodeid[@]}"; do
  [ -e "${today_date}_MPS_Cust_dump_${id}.list.Z" ] || echo "$id is not downloaded"
done | mail -E -s "Subject" [email protected]
  • O loop for é executado em todos os itens da matriz nodeid .
    • [ -e "..." ] verifica se o arquivo existe com o nome fornecido no diretório atual
    • || echo "..." imprime uma mensagem se o arquivo não existir
  • | mail ... tudo é canalizado para mail , -s define o assunto, -E não enviará um e-mail quando o corpo estiver vazio (todos os arquivos existem) e o último objeto é o endereço.
por 07.10.2015 / 10:47
0

Sugiro que você baixe esses arquivos para uma pasta temporária e mova-os para a pasta desejada quando o download estiver concluído.
Para que você saiba que todos os arquivos da pasta desejada foram completamente baixados.

    
por 07.10.2015 / 10:47