shell script d'archivage de logs
Bonjour,
J'essaie de faire un script me permettant d'archiver des fichiers .log se trouvant dans des dossiers "log".
Étant débutant dans ce domaine, je vais vous exposer tout ça en détail :
1 - Chercher dans une arborescence les dossiers "log",
2 - Dans chaque dossiers, compter le nombre de fichiers .log,
3 - Si les fichiers sont vieux de X jours, les compresser dans une archive,
4 - Déplacer l'archive vers une arborescence identique bis.
Exemple de l'arborescence :
/home/arbo1/dossier1/dossier2/log
Arborescence bis qui devra se créer :
/home/arbo2/dossier1/dossier2/log
Code :
1 -
Code:
find . -name log -type d -exec echo '{}' +
J'ai bien le chemin de mes dossiers "log" qui est retourné.
2 - Comment aller dans le path retourné des dossier logs ?
Sinon quand j'y vais à la main, j'ai bien le nombre de fichiers retourné.
3 -
Code:
find *.log -mtime +30 -exec gzip log.tar {} \;
De ce côté, mes logs sont compressés un à un, alors que je veux une archive globale.
4 - Comment dire qu'on veut recréer l'arborescence principale dans un dossier source bis (arbo2/dossier1/dossier2/log) afin de déplacer cette archive dans le dossier log de l'arborescence bis ? Comment récupérer qu'une partie du path avec pwd ?
J'avais en tête de créer une fonction pour toutes ces étapes et de faire une boucle for pour chaque dossier "log" appeler cette fonction.
Merci d'avance