j'ai un petit soucis pour effacer les anciens fichiers de backup par ssh:
je sauvegarde des fichiers compressés avec le tag de la date, dans un répertoire /backup:
toto-14-01-2007
toto-15-01-2007
toto-16-01-2007..
je voudrais supprimer par ssh le(s) fichier(s) les plus anciens en gardant au minimum au moins deux fichiers compressés les plus recents.
ssh machine "( set -- /backup/toto*;if [ $# -ge 3 ];then rm -f `ls --sort=time $@ | tail -1`;fi )"
ou
ssh machine "( if [ `ls /backup/toto* |wc -l` -ge 3 ];then rm -f `ls --sort=time $@ | tail -1`; fi )"
en gros les `` dans ssh ne sont pas gérés correctement...
Quels sont les restrictions de ssh pour les commands à introduire?
Comment pourrais-je supprimer les anciens fichiers(ici par la date du nom) par ssh?
Merci d'avance pour vos propositions.
# nommage
Posté par BAud (site web personnel) . Évalué à 3.
sinon regarde du côté de find /backup ! -newer fichier_que_tu_veux_conserver -exec rm {} \;
(man find)
et sinon l'exécution d'un script distant ça marche bien aussi.
# Re
Posté par LaBienPensanceMaTuer . Évalué à 2.
[root@senso-rezo]:/var/backups/remote/rei.tarball# find . -mtime +1
./tarball-2007-06-14.tar.gz
./tarball-2007-06-16.tar.gz
./tarball-2007-06-15.tar.gz
./tarball-2007-06-17.tar.gz
[root@senso-rezo]:/var/backups/remote/rei.tarball# ls
tarball-2007-06-14.tar.gz tarball-2007-06-16.tar.gz tarball-2007-06-18.tar.gz
tarball-2007-06-15.tar.gz tarball-2007-06-17.tar.gz tarball-2007-06-19.tar.gz
donc, en gros, find -mtime +x -exec rm {} \;
[^] # Re: Re
Posté par BAud (site web personnel) . Évalué à 2.
le ! -newer est l'équivalent d'une option -older qui n'existe pas
en renommant tel que je l'ai proposé, un ls -1|tail -2|head -1 permet de conserver l'avant dernier fichier (gérer les cas où il n'y a pas de fichier, s'il n'y en a qu'un ça le conservera).
# sinon
Posté par Joris Dedieu (site web personnel) . Évalué à 2.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.