Bonjour a toute la communauté.
Je me suis lancé dans l'écriture d'un script permettant de backuper des fichiers de configurations. Mon script fonctionne bien pour cette tache. Mon problème est le suivant:
J'aimerais conserver un historique des backups pendant un temps limité.
Pour mes tests, je fais un backup toutes les minutes et j'ai demandé un historique de 24 Heures max.
Voila la commande que je lance pour trouver les fichiers :
find <path> -ctime +0 | wc -l
Cette commande me renvoie bien le nombre de fichier +anciens de 24H.
Maintenant, je veux les supprimer.
J'utilise la commande find <path> -ctime +0 | /usr/bin/xargs /bin/rm -f
Ces deux commandes marche bien si je les execute directement.
Via mon script en revanche, j'ai un problème.
Dans le script ces commandes sont renseigné ainsi:
Si j'ajoute dans le script:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 my $NB_FICHIERS = `find /XXX/YYY/ZZZ -ctime +0 | wc -l`; $NB_FICHIERS =~ s/^\s+//; chomp($NB_FICHIERS); my $CLEAR_FICHIERS = "find /XXX/YYY/ZZZ -ctime +0 | /usr/bin/xargs /bin/rm -f"; my $FILES_DELETE = system $CLEAR_FICHIERS;
print "NB_FICHIERS"; pour savoir combien de fichiers vont être supprimer le retour me donne 0 alors qu'il y a bien un fichier qui a été supprimé.
J'ai pensé utiliser la fonction unlink qui apparemment donne comme code de retour le nombre de fichiers supprimer mais je n'arrive pas m'en servir.
Je débute aussi bien en Perl qu'en programmation ^^
Si kk'un a une idée du pkoi du comment je suis preneur.
Partager