excalibur Posté(e) le 29 mai 2015 Partager Posté(e) le 29 mai 2015 Bonjour à tous ! En farfouillant divers forums je suis tombé sur automysqlbackup utilitaire qui semble très pratique pour exécuter automatiquement des sauvegardes de ses bases mysql à un rythme périodique. Quelqu'un a t il essayé de l'installer sur un Syno ? J'ai tenté ma chance mais je bloque a l'étape ou il fait exécuter l'installation en lançant le script "install.sh" qui semble bloquer sur le Syno. Quelqu'un saurait il ce qu'il fait faire pour que ça marche ? Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
loli71 Posté(e) le 29 mai 2015 Partager Posté(e) le 29 mai 2015 Je viens de jeter un coup d'oeil sur l'executable automysqlbackup contenu dans le fichier tar.gz ... malheureusement il est fait pour tourner sous bash et le bash a été supprimé par Synology récemment sur les dernier DSM pour des raisons de sécurité. Je doute donc que tu puisses te servir de cet utilitaire sur un NAS synology Lien vers le commentaire Partager sur d’autres sites More sharing options...
gaetan.cambier Posté(e) le 29 mai 2015 Partager Posté(e) le 29 mai 2015 la solution de contournement serait de créer un package contenant bash, mais honnetement, ca vaut pas la peine pour une sauvegarde que l'on peux faire soit meme quelque ligne de code et on a une solution de backup fonctionnelle Lien vers le commentaire Partager sur d’autres sites More sharing options...
loli71 Posté(e) le 29 mai 2015 Partager Posté(e) le 29 mai 2015 Il existe effectivement un post sur ce forum avec un script qui fait très bien la sauvegarde de toutes les bases Mysql. Comme je ne retrouve plus le post, je mets ici le script que j'utilise régulièrement #!/bin/sh # ******************************************* # Script de sauvegarde automatique des bases # de données d'un serveur MySQL # ******************************************* # Par F. Maurel # Suivi des mises à jours sur nas-forum : # # ******************************************* # v1.0 - 10/02/12 - Version initiale # v1.1 - 11/02/12 - Ajout path binaire mysql # ******************************************* # ******************************************* # Renseigner les variables de connexion au serveur # ******************************************* # Adresse IP / nom du serveur de bases de données mysql_server=localhost # Nom d'utilisateur ayant les droits adéquats, cf forum mysql_user=<NOM D UTILISATEUR> # Mot de passe de l'utilisateur mysql_pass="<MOT DE PASSE>" # Chemin du dossier où vont être sauvegardées les bases de données, chemin sans le / en fin dossier_sauvegarde=/volume1/sauvegarde/mysql # Chemin des binaires mysql dossier_bin=/usr/syno/mysql/bin # ******************************************* # Ne pas modifier la suite du fichier # ******************************************* bases=`$dossier_bin/mysql --host=$mysql_server --user=$mysql_user --password=$mysql_pass -e "show databases;" -B -s 2> /dev/null` if [ -z "$bases" ];then echo "Erreur d'acces ou pas de bases." exit 1 fi echo "***************************************************" echo "* Debut d'optimisation et de sauvegarde des bases *" echo "***************************************************" mkdir ${dossier_sauvegarde}/$(date -I) chmod 750 ${dossier_sauvegarde}/$(date -I) for base in $bases do echo "------- Traitement de la base $base -------" echo "-- Debut d'optimisation --" $dossier_bin/mysqlcheck --optimize --host=$mysql_server --user=$mysql_user --password=$mysql_pass --databases "$base" wait echo ">> Optimisation terminee" echo "-- Debut de sauvegarde --" $dossier_bin/mysqldump --opt --verbose --single-transaction --host=$mysql_server --user=$mysql_user --password=$mysql_pass --databases "$base" | gzip echo "------- Sauvegarde de la base $base terminee -------" done echo "*********************************" echo "* Sauvegarde des bases terminee *" echo "*********************************" Il suffit ensuite de schéduler ce script dans le planificateur du DSM et le jours est joué. Lien vers le commentaire Partager sur d’autres sites More sharing options...
excalibur Posté(e) le 30 mai 2015 Auteur Partager Posté(e) le 30 mai 2015 Bonjour à tous, je n'avais pas vu vos réponses....en tous cas merci. Il est dit que bash à été supprimé de Synology et le script proposé plus haut je l'utilise au quotidien (il est pas écrit en bash ? Je me trompe peut-être....). Quoiqu'il en soit je cherchais au départ un script contenant une instruction pour supprimer automatiquement les vieilles sauvegardés et n'en conserver que 3 ou 4....ce script permet de sauvegarder via mysqldump mais pas d'éliminer les vieilles sauvegardes. Lien vers le commentaire Partager sur d’autres sites More sharing options...
loli71 Posté(e) le 30 mai 2015 Partager Posté(e) le 30 mai 2015 Il est dit que bash à été supprimé de Synology et le script proposé plus haut je l'utilise au quotidien (il est pas écrit en bash ? Je me trompe peut-être....) Non, ce script est écrit en "sh" et non en "bash", les Synology savent interpréter le "sh" sans problème ;-) Quoiqu'il en soit je cherchais au départ un script contenant une instruction pour supprimer automatiquement les vieilles sauvegardés et n'en conserver que 3 ou 4....ce script permet de sauvegarder via mysqldump mais pas d'éliminer les vieilles sauvegardes. Ce script créé un répertoire sous forme de date "2015-05-29" à chaque sauvegarde, il te suffit donc d'ajouter dans le script les commandes qui suppriment les répertoires plus anciens à ta guise. Comme les répertoires sont classés naturellement grâce au format de la date, il te suffit de rajouter quelque chose comme cela à la fin du script : MAXBackup=4 NBbackup=`ls -1 /volume1/sauvegarde/mysql/ | wc -l` if [ "$NBbackup" -ge "$MAXBackup" ] then first=$(ls -1 /volume1/sauvegarde/mysql/ | head -1 ) echo "Suppression /volume1/sauvegarde/mysql/${first}" rm -rf /volume1/sauvegarde/mysql/${first} fi Lien vers le commentaire Partager sur d’autres sites More sharing options...
excalibur Posté(e) le 30 mai 2015 Auteur Partager Posté(e) le 30 mai 2015 Merci pour cette réponse détaillée. En fait le script dont nous parlons génère chez moi des fichiers et non des répertoires par dates. J'obtiens par exemple Backup-nom de la base sauvegardée-Date avec l'extension .gz. Je dois donc adapter tes commandes à ma situation propre. Je vais essayer et me creuser un peu la tête. Je tente un retour des que possible. Merci. Lien vers le commentaire Partager sur d’autres sites More sharing options...
excalibur Posté(e) le 30 mai 2015 Auteur Partager Posté(e) le 30 mai 2015 NBbackup=`ls -1 /volume1/sauvegarde/mysql/ | wc -l` Désolé je suis nul en codage....mais ça tu t'en étais aperçu !! pour la fin de cette ligne c'est bien la lettre l comme "laurent" qu'il faut écrire ? Autre chose : first=$(ls -1 /volume1/sauvegarde/mysql/ | head -1 ) A la fin de cette ligne c'est bien le chiffre 1 qu'il faut écrire et non la lettre "l" comme "laurent" ?. Pour le chemin, mes sauvegardes sont sous forme de fichiers portant l'extension ".gz" dans mon repertoire unique /volume1/web/mysql.......il faudrait donc que j'écrive /volume1/web/mysql/*.gz c'est bien ça.....???. je sens que je suis en train de me fourrer dans de beaux draps......:-(((((((((( Lien vers le commentaire Partager sur d’autres sites More sharing options...
loli71 Posté(e) le 30 mai 2015 Partager Posté(e) le 30 mai 2015 Alors oui et oui, la premiere ligne c'est bien "L" minuscule et la deuxième ligne, c'est bien le chiffre un. Si tu utilises le script que je t'ai donné, alors les fichiers sont bien sous la forme *.gz, mais ils doivent être dans un répertoire portant comme nom la date de la sauvegarde : /volume1/sauvegarde/mysql/2015-05-28/*.gz /volume1/sauvegarde/mysql/2015-05-29/*.gz Donc les lignes de commande suppriment le répertoire (et son contenu) le plus ancien s'il y en a plus de 3 Lien vers le commentaire Partager sur d’autres sites More sharing options...
billout9 Posté(e) le 23 juillet 2016 Partager Posté(e) le 23 juillet 2016 Le 29/05/2015 at 18:04, loli71 a dit : Il existe effectivement un post sur ce forum avec un script qui fait très bien la sauvegarde de toutes les bases Mysql. Comme je ne retrouve plus le post, je mets ici le script que j'utilise régulièrement #!/bin/sh # ******************************************* # Script de sauvegarde automatique des bases # de données d'un serveur MySQL # ******************************************* # Par F. Maurel # Suivi des mises à jours sur nas-forum : # # ******************************************* # v1.0 - 10/02/12 - Version initiale # v1.1 - 11/02/12 - Ajout path binaire mysql # ******************************************* # ******************************************* # Renseigner les variables de connexion au serveur # ******************************************* # Adresse IP / nom du serveur de bases de données mysql_server=localhost # Nom d'utilisateur ayant les droits adéquats, cf forum mysql_user=<NOM D UTILISATEUR> # Mot de passe de l'utilisateur mysql_pass="<MOT DE PASSE>" # Chemin du dossier où vont être sauvegardées les bases de données, chemin sans le / en fin dossier_sauvegarde=/volume1/sauvegarde/mysql # Chemin des binaires mysql dossier_bin=/usr/syno/mysql/bin # ******************************************* # Ne pas modifier la suite du fichier # ******************************************* bases=`$dossier_bin/mysql --host=$mysql_server --user=$mysql_user --password=$mysql_pass -e "show databases;" -B -s 2> /dev/null` if [ -z "$bases" ];then echo "Erreur d'acces ou pas de bases." exit 1 fi echo "***************************************************" echo "* Debut d'optimisation et de sauvegarde des bases *" echo "***************************************************" mkdir ${dossier_sauvegarde}/$(date -I) chmod 750 ${dossier_sauvegarde}/$(date -I) for base in $bases do echo "------- Traitement de la base $base -------" echo "-- Debut d'optimisation --" $dossier_bin/mysqlcheck --optimize --host=$mysql_server --user=$mysql_user --password=$mysql_pass --databases "$base" wait echo ">> Optimisation terminee" echo "-- Debut de sauvegarde --" $dossier_bin/mysqldump --opt --verbose --single-transaction --host=$mysql_server --user=$mysql_user --password=$mysql_pass --databases "$base" | gzip echo "------- Sauvegarde de la base $base terminee -------" done echo "*********************************" echo "* Sauvegarde des bases terminee *" echo "*********************************" Il suffit ensuite de schéduler ce script dans le planificateur du DSM et le jours est joué. Bonjour, j'ai un NAS DS216 sous DSM6 et j'essaie de planifier le backup de mes BDD myqsl avec ce script. Cependant, lorsque je lance ce script j'ai 2 comportements différents selon le mode de fonctionnement : - quand je lance le script précédé d'un ./, j'ai le message d'erreur : -sh: ./Save_bdd_myqsl.sh: /bin/sh^M: bad interpreter: No such file or directory - quand je le lance précédé d'un . ./, j'ai le message d'erreur suivant : -sh: ./Save_bdd_myqsl.sh: line 40: syntax error near unexpected token `$'do\r'' 'sh: ./Save_bdd_myqsl.sh: line 40: `do Pourtant j'ai bien des bases de données dans mysql. Est-ce que quelqu'un a déjà rencontré ce genre de problème ? Florian Manchette Lien vers le commentaire Partager sur d’autres sites More sharing options...
loli71 Posté(e) le 23 juillet 2016 Partager Posté(e) le 23 juillet 2016 il y a 31 minutes, billout9 a dit : -sh: ./Save_bdd_myqsl.sh: /bin/sh^M: bad interpreter: No such file or directory Ca ressemble à un problème de retour a la ligne au format windows dans le script plutôt que Linux. Je ne sais pas comment tu as écrit/transféré ton script sur le nas, si c'est avec SCP, il faut choisir le transfert en mode "texte" de préférence. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.