[Shell] Lister des fichiers, et archiver
Résolu
yacleouf
Messages postés
461
Statut
Membre
-
yacleouf Messages postés 461 Statut Membre -
yacleouf Messages postés 461 Statut Membre -
Bonjour le forum !
Tout d'abord, sachez que je suis extra novice en scripting shell ... :s
je dois faire un petit script de purge qui dois lister les fichiers qui ont une date "d'ancienneté" supérieur à dix jours par rapport à la date d'aujourd'hui, et les archiver.
Par contre comme je l'ai dis juste avant je ne comprends rien à tous ça :)
j'ai bien entendu fouiner sur le net, et assemblé un semblant de script qui fais ce que j'ai besoin :
Pour l'instant voilà ce que j'ai réussi à faire, mon soucis, pour l'heure est que je ne sais pas comment :
- Exécuter ce script périodiquement ? (tout les 10 jours par exemple ?)
- Comment faire pour qu'une fois, tout les fichiers sont trouvés, lancer la compression de ceux ci ?
- Comment lancer la commande find sur un répertoire différents ? en gros le script est dans '/var/ftp/TestArchivage' et j'essaie de l'exécuter ici : '/var/www/html'
Soyez indulgent sur ce que j'ai déjà fait je débute tout juste !! :-)
Merci d'avance à celui ou celle qui pourra m'aider !
Google is your friend!
Tout d'abord, sachez que je suis extra novice en scripting shell ... :s
je dois faire un petit script de purge qui dois lister les fichiers qui ont une date "d'ancienneté" supérieur à dix jours par rapport à la date d'aujourd'hui, et les archiver.
Par contre comme je l'ai dis juste avant je ne comprends rien à tous ça :)
j'ai bien entendu fouiner sur le net, et assemblé un semblant de script qui fais ce que j'ai besoin :
DEST="/var/ftp/TestArchivage/Backup/"
#Recherche des fichiers
find . -mtime +10 -type f -name "*.xml" -exec grep -il 'pattern' {} \;
tar -cvfz Archive-'date +%d-%m-%Y'.tgz /var/ftp/TestArchivage/Archive/ $DEST
Pour l'instant voilà ce que j'ai réussi à faire, mon soucis, pour l'heure est que je ne sais pas comment :
- Exécuter ce script périodiquement ? (tout les 10 jours par exemple ?)
- Comment faire pour qu'une fois, tout les fichiers sont trouvés, lancer la compression de ceux ci ?
- Comment lancer la commande find sur un répertoire différents ? en gros le script est dans '/var/ftp/TestArchivage' et j'essaie de l'exécuter ici : '/var/www/html'
Soyez indulgent sur ce que j'ai déjà fait je débute tout juste !! :-)
Merci d'avance à celui ou celle qui pourra m'aider !
Google is your friend!
1 réponse
-
Salut,
Tu as tout ce qu'il te faut dans ce que tu as trouvé ;-))
- Exécuter ce script périodiquement ? (tout les 10 jours par exemple ?)
Voir crontab
- Comment faire pour qu'une fois, tout les fichiers sont trouvés, lancer la compression de ceux ci ?
Juste avec la commande find à partir du moment où l'option "-mtime +10 -type f" te retourne bien les fichiers voulus, autrement dit, tous les fichiers plus vieux de 10 jours.
- Comment lancer la commande find sur un répertoire différents ? en gros le script est dans '/var/ftp/TestArchivage' et j'essaie de l'exécuter ici : '/var/www/html'
Tout simplement en donnant le répertoire à la commande find. Voilà un exemple combinant la réponse à ta question précédente et celle-ci :
find /var/www/html -mtime +10 -type f -name "*.xml" -exec tar -cvzf archive.tgz {} +
L'archive "archive.tgz" sera créée dans le répertoire d'où aura été lancée la commande.