#1 Le 13/04/2017, à 13:47
- pendrapaul
Comment supprimer les dossiers plus vieux que 15 jours...
Bonjour,
un prestataire m'installer un script de sauvegarde, mais j'aimerais ajouter l'option de suppression des ancien dossiers. Pour ne pas trop charger en fichiers inutiles.
Le script me cree un dossier avec la date du jour genre 31-03-2017 avec la sauvegarde des fichiers et la base sql.
Donc j'aimerais ajouter l'option de suppression automatique. Chaque nouvelle sauvegarde il supprime le(s) dossier(s) plus vieux de 15 jours. Pouvez vous me enseigner quelle modifs que je doit faire pour l’exécuter correctement.
Le script à compléter:
BACKUPDIR=/backup
DATE=`date +%d-%m-%Y`
DOCUMENTROOT=/opt/alfresco
BINDIR=
DBS="alfresco"
HOSTNAME=`hostname`
DIR=$BACKUPDIR/$DATE
ROTATEDIR=$BACKUPDIR
HER=`pwd`
/opt/alfresco/alfresco.sh stop >/dev/null 2>&1
sleep 40
# si le serveur ne repond pas alors on kill l'instance
/usr/bin/killall -q -e -g -s 9 /opt/jdk1.8.0_91/bin/java >/dev/null 2>&1
### test avant lancement du script
if [ ! -d $DOCUMENTROOT ]; then
echo "**$0: DocumentRoot invalid:$DOCUMENTROOT"
exit 1
fi
#create backup directory
if [ ! -d $DIR ]
then
mkdir -p $DIR
fi
#save repository
cd $DOCUMENTROOT
tar -czf $DIR/alfresco.tar.gz alf_data
db='alfresco.sql'
if [ ! -f $DIR/alfresco.tar.gz ]; then
echo "Backup not created " | logger
(echo "Subject: [Attention] Backup Notification"; echo "Une erreur s'est produite lors de la sauvegarde des données alfresco .") | /usr/sbin/sendmail user@mail.fr
else
echo "Backup created " | logger
(echo "Subject: [SUCCESS] Backup :SQL: Notification"; echo " sauvegarde des données alfresco avec success.") | /usr/sbin/sendmail user@mail.fr
fi
#save metadata
mysqldump alfresco > $DIR/$db
#save backup cmd
cd $HER
if [ ! -f $DIR/$db ]; then
echo "dump failed " | logger
(echo "Subject: [Attention] Backup Notification"; echo "Une erreur s'est produite lors de la sauvegarde de la base alfresco .") | /usr/sbin/sendmail user@mail.fr
else
echo "dump succes " | logger
(echo "Subject: [SUCCESS] Backup :Files: Notification"; echo " sauvegarde de la base alfresco effectué avec succes .") | /usr/sbin/sendmail user@mail.fr
Merci d'avance
Hors ligne
#2 Le 13/04/2017, à 13:57
- Hoper
Re : Comment supprimer les dossiers plus vieux que 15 jours...
Tu peux ajouter ça à la fin de ton script:
# Remove all directory created more than 15 days ago
find $BACKUPDIR -type d -ctime +15 -exec rm -rf {};
N’hésite pas à tester directement à la main en lançant :
find /backup -type d -ctime +15 -exec rm {};
Pour vérifier que je me suis pas planté dans la syntaxe...
EDIT : Note bien que ton script de sauvegarde est vraiment pas terrible, et que ce que j'y ajoute est encore pire. C'est aussi super dangereux... Par exemple si quelqu'un modifie la destination du backup pour mettre uniquement '/', cela effacera L'ENSEMBLE DES FICHIERS PRESENTS SUR LE SERVEUR ! (à l'exception des fichiers qui ont moins de 15 jours mais bon... Bref, le système sera totalement HS).
Mais bon, dans l'absolu, et si personne ne modifie n'importe quoi sans réfléchir, ça fera précisément ce que tu veux...
Dernière modification par Hoper (Le 13/04/2017, à 14:14)
Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org
Hors ligne
#3 Le 13/04/2017, à 14:08
- pendrapaul
Re : Comment supprimer les dossiers plus vieux que 15 jours...
Merci, pour le moment c'est sur une machine VM pour tester.
Plus tard(2-3 semaine) on mettre en place une sauvegarde plus intelligent.
Selon moi, il vaut mieux avoir une pas beau, que avoir aucune.
En tous cas merci
Hors ligne
#4 Le 13/04/2017, à 14:12
- Hoper
Re : Comment supprimer les dossiers plus vieux que 15 jours...
Selon moi, il vaut mieux avoir une pas beau, que avoir aucune.
Amen.
Juste une chose à laquelle il faudrait quand même vraiment faire attention: Si la sauvegarde est située sur le même disque que les données sauvegardées... Je ne dis pas que ça ne sert à rien (ce serait totalement faux de dire ça) mais enfin... Tu comprend bien que c'est le disque dur qui lache, tes sauvegardes ne t'aideront pas beaucoup...
Bref, si tu a au moins deux disques, fait les choses bien
Oh tiens, je viens de voir une boulette... Puisque ce sont des répertoires que tu veux effacer, rm tout seul ne va pas suffire. J'ai édité le code plus haut pour ajouter "rm -rf"
Dernière modification par Hoper (Le 13/04/2017, à 14:13)
Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org
Hors ligne
#5 Le 13/04/2017, à 14:17
- pendrapaul
Re : Comment supprimer les dossiers plus vieux que 15 jours...
Je vu le manque de -rf
C'est vrais, pour la sauvegarde, sur le meme disque. C'est pour cette raison j'ai mis en place un synologie 4 Baies pour les sauvegardes de nos PC's du Bureau et le serveur
Hors ligne
#6 Le 13/04/2017, à 14:28
- Hoper
Re : Comment supprimer les dossiers plus vieux que 15 jours...
C'est vrais, pour la sauvegarde, sur le meme disque. C'est pour cette raison j'ai mis en place un synologie 4 Baies pour les sauvegardes de nos PC's du Bureau et le serveur
Bien ! Tu sais que tu fais déjà mieux que pas mal de "grosses boites sérieuses" ? La prochaine étape c'est d’arrêter les copies de fichier, et de passer à des vraies solutions de sauvegarde pro avec sauvegardes indexées, full/incrémentales etc. Avec ce genre de chose par exemple :
https://www.bareos.com/en/what_is_bareos.html
Bareos étant un fork de bacula, 100% libre lui aussi...
Mais comme tu l'a si bien dis, avoir des sauvegardes, c'est déjà beaucoup mieux que de ne pas en avoir
Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org
Hors ligne
#7 Le 13/04/2017, à 17:10
- Hizoka
Re : Comment supprimer les dossiers plus vieux que 15 jours...
il existe pas mal de logiciels qui fonctionnent très bien et qui font ce que tu demandes, perso sur mon serveur, j'utilise https://doc.ubuntu-fr.org/backup-manager
et j'ai mis en place également un autre systeme perso en repartant de backupmanager : https://forum.ubuntu-fr.org/viewtopic.p … #p21513810
les 2 sont en mode incrémentiel.
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne