Script archivage mensuel

Script archivage mensuel - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 13-04-2006 à 11:14:30    

Bonjour tout le monde, j'ai encore une petite question à vous poser  :sweat: .
Voila tous les jours je rappatrie des fichiers sur un poste, et je voudrais que tous les mois, les fichiers téléchargés soit copiés automatiquement dans un répertoire ayant pour nom le mois précédent celui en cours.
Je ne sais pas si je suis clair.
Je sais comment créer un dossier, je sais aussi lui donner le nom du mois courant avec la variable date, mais comment lui donner le nom du mois précédent ?
Petite précision, les fichiers téléchargés ont comme format de nom : Année_Mois_Jour.txt
J'avais pensé à prendre le début du nom des fichiers pour créer le repertoire, pour le mois.
Autre précision, je voudrais écrire ce sciprt en shell...sur une Debian.
Merci beaucoup pour vos réponses.
 :hello:  :hello:  :hello:


Message édité par milou161185 le 13-04-2006 à 11:14:44
Reply

Marsh Posté le 13-04-2006 à 11:14:30   

Reply

Marsh Posté le 13-04-2006 à 12:41:56    

le plus simple est effectivement de partir du nom du fichier  
 


for i in * ; do  
REP=`expr \`echo $i | cut -d"_" -f2 | cut -d"_" -f1\` \- 1`
if [ $REP -eq 0 ]; then
   REP=12
   #pour passer de janvier à decembre
fi
mv $i $REP/
done


 
pourquoi le mois de janvier pose problème ?


/>i=2006_01_03
/>rep=`expr \`echo $i | cut -d"_" -f2 | cut -d"_" -f1\` \- 1`
/>echo $rep
0
/>


 
alors qu'il te faut des noms de répértoires tels que 1,2,3,4,5,6,7,8,9,10,11,12
 
pour automatisé il suffit de mettre ton script ( une fois adapté à tes besoins) dans une tache cron le 1 er de chaque moi par exemple


Message édité par francoispgp le 13-04-2006 à 12:42:13
Reply

Marsh Posté le 17-04-2006 à 23:53:22    

essaye ca   echo `date +%Y%m --date "1 month ago"`


Message édité par overider le 17-04-2006 à 23:53:33
Reply

Marsh Posté le 18-04-2006 à 09:22:10    

ça ne marchera pas partout c'est donc à proscrire comme méthode

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed