[Shell] Lister des fichiers, et archiver

Résolu/Fermé
yacleouf Messages postés 438 Date d'inscription mercredi 11 mars 2009 Statut Membre Dernière intervention 8 juin 2015 - Modifié par yacleouf le 17/06/2013 à 10:01
yacleouf Messages postés 438 Date d'inscription mercredi 11 mars 2009 Statut Membre Dernière intervention 8 juin 2015 - 17 juin 2013 à 10:37
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 :

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!
A voir également:

1 réponse

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
17 juin 2013 à 10:15
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.
1
yacleouf Messages postés 438 Date d'inscription mercredi 11 mars 2009 Statut Membre Dernière intervention 8 juin 2015 39
17 juin 2013 à 10:29
Bonjour zipe31,
merci pour ta réponse !

je vais tester de lancer manuellement la commande comme tu me la indiqué.
Mon soucis était peut être que je ne l'avais pas mis en une seule ligne !?
0
yacleouf Messages postés 438 Date d'inscription mercredi 11 mars 2009 Statut Membre Dernière intervention 8 juin 2015 39
17 juin 2013 à 10:37
C'est bon ça marche !

Merci de ton aide zipe31
0