
Espero que você possa me ajudar...
Fiz um script perl e bash para fazer backup dos meus firewalls e transferências via tftp
#!/bin/sh
perl /deploy/scripts/backups/10.160.23.1.pl > /dev/null 2>&1
perl /deploy/scripts/backups/10.160.23.2.pl > /dev/null 2>&1
então isso transfere o arquivo para meu diretório tftp /tftpboot/
ls -l /tftpboot/
total 532
-rw-rw-rw- 1 tftp tftp 209977 jun 6 14:01 10.160.23.1_20140606.cfg
-rw-rw-rw- 1 tftp tftp 329548 jun 6 14:02 10.160.23.2_20140606.cfg
minha dúvida é como melhorar meu script para mover esses arquivos dinamicamente para outra pasta com base no nome (neste caso no endereço IP)
por exemplo: 10.160.23.1_20140606.cfg mova para /deploy/backups/10.160.23.1/
é que a resposta para isso com certeza estava no Google, mas queria saber se existia uma solução específica para essa solicitação e também saber como fazer :)
Obrigado!
Responder1
Simplesmente transforme o nome do arquivo em espaço de dados, manipule-o para extrair as informações desejadas e use as informações.OBSERVAÇÃO:Para produção, use uma correspondência de arquivo mais restrita do que/tftpboot/*.cfg
#!/bin/bash
for file in /tftpboot/*.cfg ; do
ipaddr=$( echo "$file" | cut -d/ -f3 | cut -d_ -f1 )
[ -d /deploy/backups/${ipaddr} || mkdir -p /deploy/backups/${ipaddr}
mv --verbose "$file" /deploy/backups/${ipaddr}/
done