[Shell] Lister des fichiers, et archiver

Résolu
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 :

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

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    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
    1. yacleouf Messages postés 461 Statut Membre 39
       
      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
    2. yacleouf Messages postés 461 Statut Membre 39
       
      C'est bon ça marche !

      Merci de ton aide zipe31
      0