1 votes

bash script déplacer le fichier vers les dossiers en fonction du nom

J'espère que vous pourrez m'aider...

J'ai fait un perl et bash script pour faire une sauvegarde de mes firewalls et tranfers 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

donc cela transfère le fichier dans mon répertoire 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

mes questions sont comment améliorer mon script pour déplacer ces fichiers dynamiquement vers un autre dossier basé sur le nom (dans ce cas sur l'adresse ip).

par exemple : 10.160.23.1_20140606.cfg déplacé vers /deploy/backups/10.160.23.1/

est que la réponse à cette sûrement était sur Google, mais je voulais savoir s'il y avait une solution particulière à cette demande et aussi apprendre à faire :)

Gracias.

1voto

waltinator Points 32821

Il suffit de transformer le nom du fichier en espace de données, puis de le manipuler pour en extraire les informations souhaitées, et enfin d'utiliser ces informations. NOTE : Pour la production, utilisez une correspondance de fichiers plus contraignante que celle de l'option /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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X