Script base de donnée

Salut,
J’ai commencer un script qui, sauvegarde une base de donnée,

mysqldump --opt -u utilisateur -pmotdepasse nom base de donnée >> /home/backups/bdd.sql

Jusque la, tout va bien.
sauf que, quand je relance le script, la base de donnée s’ajoute dans le fichier. Je m’explique,
Je lance une sauvegarde maintenant, et une autre demain, et bien sa va ajouté celle de demain a aujourd’hui dans le meme fichier :/. Or, j’aimerai que sa fasse bdd1 , demain bdd2, après demain bdd3…

Aussi, j’ai essayer de envoyer par mail, le fichier crée en .sql, sans succès. Mon code

[code]EMAIL=“ximylzx@gmail.com”

echo ‘sauvegarde d’aujourd’hui.’ | mutt -a backup-$*.sql $EMAIL -s “MySQL Backup”[/code]

Et j’ai le droit a ça,

Impossible d'obtenir le statut de backup-.sql : Aucun fichier ou dossier de ce type
backup-.sql : impossible d'attacher le fichier.

Merci de votre aide

[quote=“xyellowhdx”]Salut,
J’ai commencer un script qui, sauvegarde une base de donnée,

mysqldump --opt -u utilisateur -pmotdepasse nom base de donnée >> /home/backups/bdd.sql

Jusque la, tout va bien.
sauf que, quand je relance le script, la base de donnée s’ajoute dans le fichier. Je m’explique,
Je lance une sauvegarde maintenant, et une autre demain, et bien sa va ajouté celle de demain a aujourd’hui dans le meme fichier :/. Or, j’aimerai que sa fasse bdd1 , demain bdd2, après demain bdd3…

Aussi, j’ai essayer de envoyer par mail, le fichier crée en .sql, sans succès. Mon code

[code]EMAIL=“ximylzx@gmail.com”

echo ‘sauvegarde d’aujourd’hui.’ | mutt -a backup-$*.sql $EMAIL -s “MySQL Backup”[/code]

Et j’ai le droit a ça,

Impossible d'obtenir le statut de backup-.sql : Aucun fichier ou dossier de ce type
backup-.sql : impossible d'attacher le fichier.

Merci de votre aide[/quote]

J’utiliserais plus une numérotation basé sur la date qu’une simple incrément pour nommer mes ‘dumps’ (ce que je fais d’ailleurs :083 ).

Ensuite plutôt que d’utiliser un simple mail je ferai un coup de rsync vers ma machine qui récupère les sauvegardes (ce que je fais dans le cas d’une récupération de dump d’une BDD).

Bonjour,

J’utilise ce script au boulot pour sauvegarder la base de donnée de notre GLPI :

[code]#!/bin/bash

Dossier de réption du backup

backup_dir=/mnt/backup

Montage Lecteur Réau

mount -t cifs -o username=utilisateur,password=motdepasse //192.168.0.201/glpi /mnt/backup/
rm /mnt/backup/backup-ocs-glpi/*

Dossier content les fichiers GLPI

glpi_dir=/var/www/glpi

Identifiants BDD GLPI

glpi_server=127.0.0.1
glpi_user=utilisateur
glpi_password=motdepass
glpi_database=glpi

Véfier un montage

mount_verify=yes
mount_dir=/root/backup
echo "Systeme backup de GLPI et OCS Inventory NG"
echo “-----------------------”

Créion d’un dossier temporaire, et vidage de celui-ci

echo "Créion du dossier temporaire"
mkdir /tmp/backup-ocs-glpi &> /dev/null
rm -Rfv /tmp/backup-ocs-glpi/* &> /dev/null

Changement de directory

echo "Changement de rértoire"
cd /tmp/backup-ocs-glpi/ &> /dev/null
pwd=pwd
if [[ “$pwd” != “/tmp/backup-ocs-glpi” ]]
then
echo "ERREUR : Impossible de se rendre dans /tmp/backup-ocs-glpi"
exit 1
fi

Date courante

current_date=date +%Y-%m-%d_%H-%M

MySQLDUMP de la base GLPI

echo "Dump de la base GLPI"
mysqldump -h$glpi_server -u$glpi_user -p$glpi_password $glpi_database > /tmp/backup-ocs-glpi/glpi_database_$current_date.sql

Copie de l’ensemble des fichiers sur le backup

echo "Transfert sur le serveur de backup"
rsync -az /tmp/backup-ocs-glpi $backup_dir

umount /mnt/backup/
echo “Backup termine”[/code]

cela génère un fichier avec la date du jour ou la sauvegarde est effectuée…

Merci de votre réponse, je n’utilise pas gpli :frowning:

Dans le principe c’est la même chose, je sauvegarde la base de données SQL de glpi. Il te suffit d’adapter le script à tes besoins.

La partie qui t’intéresse pour incrémanter la date est :

[code] current_date=date +%Y-%m-%d_%H-%M

echo "Dump de la base SQL"
mysqldump -hIP_server -u UTILISATEUR -p MOTDEPASSE nombasededonnée > /home/backups/BDD_$current_date.sql[/code]

echo "test" >> fichiercréé le fichier “fichier” s’il n’existait pas déjà, et y insère le texte “test”.
Si le fichier existait déjà, le texte “test” est ajouté à la fin du contenu du fichier “fichier”.

echo "test" > fichier créé le fichier “fichier” en y insérant le texte “test”.
Si le fichier “fichier” existait déjà, il est “écrasé” (remplacé par le nouveau)

==============

voir: man date

NOTE:
J’ai rajouté les secondes en espérant qu’il n’y ait pas deux sauvegardes effectuées dans la même seconde.

Je préfère mettre la date après le nom de fichier pour les voir s’afficher selon 1°/ le nom de fichier 2°/ la date.
Cela permettra de retrouver toutes les sauvegardes du même nom triées par date.
S’il me fallait savoir quelles sont les sauvegardes de bases de données effectuées en fonction d’une période ou date, le gestionnaire de fichier utilisera “ctime”, “mtime” ou "atime"
ctime => création
mtime => modification
atime => accès

[quote=“leo-25”]Dans le principe c’est la même chose, je sauvegarde la base de données SQL de glpi. Il te suffit d’adapter le script à tes besoins.

La partie qui t’intéresse pour incrémanter la date est :

[code] current_date=date +%Y-%m-%d_%H-%M

echo "Dump de la base SQL"
mysqldump -hIP_server -u UTILISATEUR -p MOTDEPASSE nombasededonnée > /home/backups/BDD_$current_date.sql[/code][/quote]
Merci, le fichier se crée, mais je ne peux pas le recuperer via filezilla :frowning:

michel@deb-G53SW:~$ date +%F_%H-%M 2014-01-05_20-29 michel@deb-G53SW:~$ date +%Y-%m-%d_%H-%M 2014-01-05_20-29 michel@deb-G53SW:~$

Quel est le message d’erreur de filezilla ?

[quote=“MicP”]michel@deb-G53SW:~$ date +%Y-%m-%d 2014-01-05 michel@deb-G53SW:~$ date +%F 2014-01-05 michel@deb-G53SW:~$

Quel est le message d’erreur de filezilla ?[/quote]

Alors que le fichier est bien visible dessus

Edit:
Pareil pour renommer/donner permission, via FZ toujours

Peut être est-ce à cause des caractères “-”.

Essaye en remplaçant :

par :

sinon, il faudrait aussi voir si ce n’est pas un paramétrage à faire dans Filezilla.
Si aucun accès à ce fichier n’est possible avec Filezilla, tu pourra sans doute y accéder avec “ftp” dans un terminal.

-bash: Erreur de syntaxe près du symbole inattendu « ; »

Merci :slightly_smiling:

j’ai rien dis, je fesais ;/test x),

current_date=`date +%Y.%m.%da%Hh%M` echo "Dump de la base SQL" mysqldump -u user -pmotdepasse test > /home/backups/BBD_$current_date.sql

[quote]Erreur : /home/backups/BDD_2014.01.05a20h42: open for read: no such file or directory
Erreur : Echec du transfert du fichier[/quote]

Bon, ben il reste que le “_” qui pourrait poser problème. (et si ça se trouve, les “-” passaient)
donc essayer avec :

[quote=“MicP”]Bon, ben il reste que le “_” qui pourrait poser problème. (et si ça se trouve, les “-” passaient)
donc essayer avec :

Statut : Contenu du dossier affiché avec succès Statut : Démarrage du téléchargement de /home/backups/BDD_.sql Commande : cd "/home/backups" Réponse : New directory is: "/home/backups" Commande : get "RP_.sql" "C:\backups\BDD_.sql" Erreur : /home/backups/RP_.sql: open for read: no such file or directory Erreur : Echec du transfert du fichier Statut : Démarrage du téléchargement de

Là aussi, il y a un “_” dans le nom de fichier qui bloque Filezilla.
Mais il ne peux pas venir du script, puisqu’il n’y en a plus:
(du moins dans ce que j’ai ci-dessous)

current_date=$((date +%Fa%Hh%M))
mysqldump -u user -pmotdepasse test > /home/backups/BBD.$current_date.sql

le problème serais pas à l’origine des droits du dossier /home/backups/ ou de /home/ avec filezilla ?

ça me fais penser a moi quand j’ai du mettre le package netbeans dans le groupe www-data pour qu’il puisse acceder a /var/www/

test aussi de faire le backup dans le dossier /home/[ton user]/backup/ et voir comment reagis filezilla sous lequel tu le lance…

[quote=“MicP”]Là aussi, il y a un “_” dans le nom de fichier qui bloque Filezilla.
Mais il ne peux pas venir du script, puisqu’il n’y en a plus:
(du moins dans ce que j’ai ci-dessous)

current_date=`date +%Fa%Hh%M` mysqldump -u user -pmotdepasse test > /home/backups/BBD.$current_date.sql [/quote]

Toujours pas :frowning:

Erreur : /home/backups/BBD.2014-01-06a06h20: open for read: no such file or directory Erreur : Echec du transfert du fichier
J’ai coommmmpris !
Quand je me rend dans le dossier (SSH), le fichier se nomme

Alors que sur FileZilla, c’est

Comment faire? Sachant qu’il n’y a pas de ? dans le code



Edit :
J’ai meme fait appeler le fichier BDD.sql mais il y a toujours un ? qui se montre en SSH, et pas sur FileZilla

quel dossier ssh ? filezilla se connecte en ssh ?

Harmoniser les “encodage de caractères” utilisés par :
serveur FTP
client FTP
Interface FTP <=> Filezilla.

Tester en éliminant le maximum d’intermédiaires => par FTP en LCI (pas par FileZilla).


Ce code marche nikel.. Mais quand je fais le script pour afficher l'heure dessus, sa pose problème.
[quote] current_date=`date +%Y-%m-%d_%H-%M`
 
 echo "Dump de la base SQL"
 mysqldump -hIP_server -u UTILISATEUR -p MOTDEPASSE nombasededonnée [b]>[/b] /home/backups/BDD_$current_date.sql[/quote]
J'ai aussi essayer avec 2 ">", mais toujours pareil, Impossible a transferer et en SSH j'ai le droit a [quote]xxx.sql?[/quote]

Ce code marche nikel… Mais quand je fais le script pour afficher l’heure dessus, sa pose problème.

[quote] current_date=date +%Y-%m-%d_%H-%M

echo "Dump de la base SQL"
mysqldump -hIP_server -u UTILISATEUR -p MOTDEPASSE nombasededonnée > /home/backups/BDD_$current_date.sql[/quote]
J’ai aussi essayer avec 2 “>”, mais toujours pareil, Impossible a transferer et en SSH j’ai le droit a [quote]xxx.sql?[/quote]