English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
Toutes les catégories

Je suis sur HP-Unix et je souhaite réaliser compression et/ou purge des fichiers obsolétes (sur différents Files Systems) suivant des durées de rétentions différentes pour chq répertoire.
De stocker par exemple dans un fichier de configuration la liste des répertoires, avec pour chacuns une durée de rétention et le type d'action souhaité (compression ou delete)
exemple :
répertoire;durée de rétention;type
/home/titi;30 jours;compress
/home/titi;60 jours;delete
Comment puis-je faire ?

2007-02-23 09:27:15 · 2 réponses · demandé par Anonymous dans Informatique et internet Programmation

2 réponses

Si c'était moi (mais ça fait vachement longtemps que je n'ai pas écrit en shell script):

1/ Je ferai un fichier de config comme tu l'as écrit (séparateur ";" ou autre) : 1ère colone le FS/répertoire à examiner, 2ème le nombre de jours (de quoi ? C'est à préciser) et en 3ème l'action

2/ Un petit shell script comme on les aime. Si tu peux attendre jusqu'à lundi que je prenne la main sur mon serveur (pas façile sous Windows) sinon la trame (je ne sais plus écrire en awk, désolé). C'est juste un brouillon, hein ? N'exécute pas ceci sur une machine de production !!! Reste à gérer un code d'erreur en sortie du shell script et la gestion d'un petit log pour s'y retrouver...

#! /bin/sh

# Définition des fonctions
delete() {
# TODO : préciser les paramètres passés à la commande find
# Voir : http://docs.hp.com/fr/B2355-95164/ch02s18.html
# "mtime" n'est pas ce qu'il te faut, à revoir...
find $DIR -mtime $NBJOURS -exec rm -f {} \;
}

compress() {
}

# Lecture du fichier de config
for LIGNE in $(cat monFichierDeConfig)
do
export DIR=$(echo $LIGNE | awk {print $1})
export NBJOURS=$(echo $LIGNE | awk {print $2})
export ACTION=$(echo $LIGNE | awk {print $3})

# En fonction de l'action, on appelle la fonction adéquate
case $ACTION in
"delete"
delete ;;
"compress"
compress ;;
esac
done

unset DIR
unset NBJOURS
unset ACTION

2007-02-23 09:55:29 · answer #1 · answered by some boys (don't cry) 4 · 0 0

pour la liste des fichiers a purger facile find mon_path -mtime +X ou X est le nombre de jours

2007-02-23 09:53:10 · answer #2 · answered by garcimore31 3 · 0 0

fedest.com, questions and answers