Rotation / suppression des dossiers de backups

Bonjour,
Sur un serveur web, j’ai une tâche cron journalière qui sauvegarde tous les sites web + bdd. J’essaye de mettre en place une rotation des backups en gardant seulement les 15 derniers jours
Mes backups se présentent ainsi :

/var/www/www.siteweb.com/backups/2016-05-01/datas.tbz2
/var/www/www.siteweb.com/backups/2016-05-01/bdd.sql
/var/www/www.siteweb.com/backups/2016-05-02/datas.tbz2
/var/www/www.siteweb.com/backups/2016-05-02/bdd.sql
[…]
/var/www/www.siteweb.com/backups/2016-05-25/datas.tbz2
/var/www/www.siteweb.com/backups/2016-05-25/bdd.sql
[…]
/var/www/www.mydebian.com/backups/2016-05-01/datas.tbz2
/var/www/www.mydebian.com/backups/2016-05-01/bdd.sql
/var/www/www.mydebian.com/backups/2016-05-02/datas.tbz2
/var/www/www.mydebian.com/backups/2016-05-02/bdd.sql
[…]
/var/www/www.mydebian.com/backups/2016-05-25/datas.tbz2
/var/www/www.mydebian.com/backups/2016-05-25/bdd.sql

Pour le moment, je tâtonne avec cette commande :
find "/var/www/www.siteweb.com/backups/" -type d | sort | head -n -15 | xargs rm -Rf -v
mais elle me supprime le dossier …/backups/ ! :pensive:
Une idée ? Merci d’avance

Salut,
Je ne sais pas t’aider pour la commande (désolé) mais je me demande si c’est une bonne idée de mettre tes backups dans le répertoire de ton site web. Quels droits appliques-tu pour éviter qu’ils ne soit téléchargeables ?

La commande find a des option pour ne montrer que les fichier suivant une limite temporel.
http://www.linux-france.org/article/man-fr/man1/find-1.html

Sinon ls te permet de classer sa sortie suivant un autre critère que le nom du fichier, le temps pas exemple :slight_smile:http://www.linux-france.org/article/man-fr/man1/ls-1.html

Et si tu ajoutais ton dossier dans logrotate

sur ce modèle hebdomadaire conservation de 4 semaines par exemple

cat /etc/logrotate.d/ufw
/var/log/ufw.log
{
rotate 4
weekly
missingok
notifempty
compress
delaycompress
sharedscripts
postrotate
invoke-rc.d rsyslog rotate >/dev/null 2>&1 || true
endscript
}

ou celui la quotidien, conservation de 7 jours

cat rsyslog
/var/log/syslog
{
	rotate 7
	daily
	missingok
	notifempty
	delaycompress
	compress
	postrotate
		invoke-rc.d rsyslog rotate > /dev/null
	endscript
}

/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err
/var/log/mail.log
/var/log/daemon.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/lpr.log
/var/log/cron.log
/var/log/debug
/var/log/messages
{
	rotate 4
	weekly
	missingok
	notifempty
	compress
	delaycompress
	sharedscripts
	postrotate
		invoke-rc.d rsyslog rotate > /dev/null
	endscript
}

Bonjour Esprit,
le dossier backups n’est accessible en FTP que par le webmaster et n’est pas visible sur Internet

/var/www/www.siteweb.com/logs/
/var/www/www.siteweb.com/backups/
/var/www/www.siteweb.com/public_html/

Bonjour Mimoza,

merci pour test liens, je vais regarder ça… :wink:

Bonjour grantoubab,

je ne connais pas logrotate… je vais regarder comment cela fonctionne
mais dans l’idéal j’aimerai faire (finaliser) mon script perso car il y a déjà beaucoup de fonctionnalités (backup config apache / php / mysql / externalisation cloud et dossier réseau / statistiques / notification email / multi-webmaster) et j’ai pas trop envie de multiplier les outils (scripts)…

Bonjour,

Pour une rétention seulement des 15 derniers jours, regarde du côté de find :
find /var/www/tonchemin/ -mtime +15 -delete

mtime +15 corespond à 24h*15
tu peux ensuite mettre ça dans un cron :slight_smile:

++

1 J'aime

Raa tu lui a donner la solution tout cuit dans le bec … fallait le laisser chercher un peu, c’est une très bonne école pour découvrir et adopter une bonne méthodologie. :stuck_out_tongue_winking_eye:

J’utilise areca backup pour les sauvegardes.
Il fonctionne en console avec du delta comme rsync et tu as des stratégies incluses.

Merci beaucoup uglyshadow ! ça marche nickel.
Je ne connaissais pas -delete (certains manpage ne le mentionne pas…)

:clap:

ce soft a l’air intéressant… je me le met de coté. merci :wink:

Derien tchup j’espere que tu t’en souviendras quand tu en auras de nouveau besoin :wink: