Mes scripts d’init Synology et sauvegarde de mes bases de données

Petit article aujourd’hui pour vous faire part de quelques-uns de mes scripts sur mon Synology.

Ces scripts ne sont pas toujours les plus propres ou les mieux incorporés au système, mais ils marchent plutôt bien.

Ça peut toujours servir à d’autres.

Script d’init d’Apache

Fichier /opt/etc/init.d/T20apache2
echo "Terminaison de apache ..."
killall httpd
sleep 1
echo "Demarrage de apache ..."
#/usr/syno/apache/bin/httpd -k restart

/usr/syno/etc.defaults/rc.d/S97apache-user.sh restart
/usr/syno/etc.defaults/rc.d/S97apache-sys.sh restart

Script d’init MySQL

Fichier /opt/etc/init.d/T10mysqld
echo "Terminaison de mysqld ..."
killall mysqld

echo "Demarrage de mysql ..."
/usr/syno/mysql/bin/mysqld_safe &

Script d’init Crond

Fichier /opt/etc/init.d/T30crond

/usr/syno/etc.defaults/rc.d/S04crond.sh stop
/usr/syno/etc.defaults/rc.d/S04crond.sh start

Script de backup de ma base mysql

J’ai créé un répertoire /volume1/db/ sur mon NAS, dans lequel j’ai placé mon script dumpdatabases.sh :

#!/bin/bash

#Script de backup de base de donnees
PASS=monpassmysql
TODAY=`date '+%Y%m%d_%H%M%S'`
PATH=/volume1/db

/bin/mkdir -p $PATH/$TODAY
cd $PATH/$TODAY

LISTE=`/opt/bin/echo "show databases" | /opt/bin/mysql -N -uroot -p$PASS`
#/opt/bin/echo $LISTE
for BASE in $LISTE ;
do
FILE="mysqldump_${BASE}_${TODAY}.sql.gz"
/opt/bin/mysqldump -uroot -p$PASS $BASE | /opt/bin/gzip > $FILE
done

Une fois ce script en place, ajoutez la ligne de crontab dans votre /etc/crontab :

# Backup de la base de données a 3h du matin, tous les jours
0 3 * * * root /opt/bin/bash /volume1/db/dumpdatabases.sh

Ensuite évidemment… on relance crond, avec le script fourni plus haut 🙂

/opt/etc/init.d/T30crond

Et voilà, toutes les nuits, le script va venir sauvegarder vos bases de données au format /volume1/db/AAAAMMJJ_HHMMSS/nom_de_la_database.sql.gz

Vous pouvez bien entendu réutiliser et modifier tous ces scripts à volonté, n’hésitez pas à apporter vos commentaires, critiques et améliorations.

Print Friendly

2 Commentaires

  1. 2M dit : Répondre

    Salut,

    Je souhaite mettre en place sur mon Syno ton script de backup mysql.

    Quand j’ai lancé le script manuellement, il m’a mis « Can’t open directory » car je n’avais pas le dossier echo (ligne11).
    J’ai donc crée le dossier manuellement, mais maintenant il me met toujours « Permission Denied ». Alors que j’ai mis tous les droits en écriture/lecture.
    Merci.

  2. Thibault dit : Répondre

    Salut,

    Ligne 11, « echo » n’est pas un dossier, c’est le binaire « echo ». Sur ma version de Synology, le binaire est dans /opt/bin/echo mais ce n’est peut-être pas le cas partout.

    Essaie de faire :
    $ which echo
    Pour savoir ou se trouve ton binaire echo.

    Tiens moi au courant.

Laisser un commentaire