Forum Programmation.shell ssh et backup

Posté par  .
Étiquettes : aucune
0
18
juin
2007
salut,

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  (site web personnel) . Évalué à 3.

    déjà en les nommant toto-2007-01-14 ça te permettra de les trier plus facilement par date avec un simple ls

    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  . Évalué à 2.

    Comme le dit baud123, un find suffit:

    [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  (site web personnel) . Évalué à 2.

      si tous les fichiers sont plus vieux de x jours même ceux qu'il souhaite conserver, il vont être effacés.

      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  (site web personnel) . Évalué à 2.

    Sinon rsync est fait pour ça (les sauvegardes)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.