Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1558 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Script Bash sauvegarde

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Script Bash sauvegarde

n°1280325
dohkoo001
Posté le 01-06-2011 à 09:09:51  profilanswer
 

Bonjour,
 
Je viens demander un ptit coup de main...
 
Voilà, j'ai fait un petit script de sauvegarde de base sql sur une debian, et étant débutant en script bash ...  
 

Code :
  1. #!/bin/sh
  2. user="-u root"
  3. mdp="-p ******"
  4. chm="/var/www/glpi/files/_dumps"
  5. # Dump de la base GLPI
  6. mysqldump $user $mdp GLPI_ > $chm/$(date +%Y-%m-%d).glpi.backup.sql >> logbackup.log
  7. # Fin du dump de la base GLPI
  8. # Dump de la base OCS
  9. mysqldump $user $mdp ocsweb > $chm/$(date +%Y-%m-%d).ocs.backup.sql >> logbackup.log
  10. # Fin du dump de la base OCS
  11. # Debut du transfert de fichier vers le serveur de sauvegarde
  12. smbclient //srv/Backup_GLPI -U 'linux%*****' -c 'put $chm/$(date +%Y-%m-%d).glpi.backup.sql' >> logbackup.log
  13. smbclient //srv/Backup_GLPI -U 'linux%*****' -c 'put $chm/$(date +%Y-%m-%d).ocs.backup.sql' >> logbackup.log
  14. # Fin du transfert de fichier
  15. # Suppression des fichiers
  16. rm $chm/$(date +%Y-%m-%d).glpi.backup.sql >> logbackup.log
  17. rm $chm/$(date +%Y-%m-%d).ocs.backup.sql >> logbackup.log
  18. # Fin de la suppression des fichiers
  19. # Fin de la sauvegarde

mood
Publicité
Posté le 01-06-2011 à 09:09:51  profilanswer
 

n°1280327
Modération
Posté le 01-06-2011 à 09:11:54  answer
 

Bonjour,  
quelle est la question ?  
y-a-t-il un problème spécifique avec ton script ?  
quel est l'objet de ce topic ?  
 
Conseil de lecture :  
 http://www.gnurou.org/writing/smartquestionsfr

n°1280328
dohkoo001
Posté le 01-06-2011 à 09:15:21  profilanswer
 

Il ne marche pas, et je ne vois pas pourquoi.
 
Surement un problème de syntaxe, il me demande un mot de passe pour mysqldump je pense, alors qu'il est dans la variable MDP.

n°1280337
o'gure
Modérateur
Multi grognon de B_L
Posté le 01-06-2011 à 09:32:40  profilanswer
 

il serait peut être intéressant pour les potentiels personnes pouvant t'aider d'avoir explicitement le message d'erreur que tu reçois. non ?
mets toi à la place des personnes qui lisent ton topic...


Message édité par o'gure le 01-06-2011 à 09:33:14
n°1280341
cycojesus
Mèo Lười
Posté le 01-06-2011 à 09:36:57  profilanswer
 

dohkoo001 a écrit :

Il ne marche pas, et je ne vois pas pourquoi.
 
Surement un problème de syntaxe, il me demande un mot de passe pour mysqldump je pense, alors qu'il est dans la variable MDP.


il ne faut pas d'espace entre -p et le mot de passe.
 

mysqldump -u user -ppassword bdd


---------------
Chết rồi ! ✍ ⌥⌘ http://github.com/gwenhael-le-moine/slackbuilds/
n°1280345
dohkoo001
Posté le 01-06-2011 à 09:44:56  profilanswer
 

bah quand je lance mon script il me demande un mot de passe, hors le but c'est que je n'ai rien à faire ....
Et si je stop le script sans rentrer de mot de passe, je vois que c'est mysqldump qui m'en demande un. Et bien sur si je lui donne, sa marche ...

n°1280348
cycojesus
Mèo Lười
Posté le 01-06-2011 à 09:54:49  profilanswer
 

dohkoo001 a écrit :

bah quand je lance mon script il me demande un mot de passe, hors le but c'est que je n'ai rien à faire ....
Et si je stop le script sans rentrer de mot de passe, je vois que c'est mysqldump qui m'en demande un. Et bien sur si je lui donne, sa marche ...


ton script fait

mysqldump -u user -p password bdd

donc mysqldump essaye de sauvegarder 2 bases 'password' et 'bdd' et te demande un mot de passe parce que tu lui dis qu'il y a un mot de passe (-p ) mais tu ne le lui donnes pas (l'espace après -p).
 
Essaye d'enlever l'espace après -p

mdp="-p******"


---------------
Chết rồi ! ✍ ⌥⌘ http://github.com/gwenhael-le-moine/slackbuilds/
n°1280357
dohkoo001
Posté le 01-06-2011 à 10:26:40  profilanswer
 

C'était bien sa, merci.  
 
Mais maintenant mes fichiers sql sont vides ...  
pourtant j'utilise l'utilisateur root de mysql, c'est possible qu'il n'ait pas les droits sur les bases ?

n°1280361
cycojesus
Mèo Lười
Posté le 01-06-2011 à 10:38:45  profilanswer
 

dohkoo001 a écrit :

C'était bien sa, merci.  
 
Mais maintenant mes fichiers sql sont vides ...  
pourtant j'utilise l'utilisateur root de mysql, c'est possible qu'il n'ait pas les droits sur les bases ?


et dans ton logbackup.log ?


---------------
Chết rồi ! ✍ ⌥⌘ http://github.com/gwenhael-le-moine/slackbuilds/
n°1280365
dohkoo001
Posté le 01-06-2011 à 10:44:05  profilanswer
 

Euh,  c'est possible qu'il m'ait écrit le dump dans le fichier de log ?    
parce que là, il vient de prendre 7800 lignes d'un coup ...

mood
Publicité
Posté le 01-06-2011 à 10:44:05  profilanswer
 

n°1280372
Fork Bomb
Obsédé textuel
Posté le 01-06-2011 à 11:00:21  profilanswer
 

Je ne comprends pas la syntaxe de ta ligne 14.
Tu fais 2 redirections ?
Ça me chiffonne depuis le début de ce topic.


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
n°1280373
o'gure
Modérateur
Multi grognon de B_L
Posté le 01-06-2011 à 11:01:30  profilanswer
 

Fork Bomb a écrit :

Je ne comprends pas la syntaxe de ta ligne 14.
Tu fais 2 redirections ?
Ça me chiffonne depuis le début de ce topic.


C'est le même principe que la commande de la ligne 8  [:dawa]

n°1280375
cycojesus
Mèo Lười
Posté le 01-06-2011 à 11:06:01  profilanswer
 

Fork Bomb a écrit :

Je ne comprends pas la syntaxe de ta ligne 14.
Tu fais 2 redirections ?
Ça me chiffonne depuis le début de ce topic.


D'où ma remqraue....
 
j'imagine qu'il veut avoir stdout dans le backup et stderr dans le log, sauf que c'est pas comme ça qu'on fait (et j'oublie toujours la syntaxe exacte... y'a des 1 2 > et & dedans)


---------------
Chết rồi ! ✍ ⌥⌘ http://github.com/gwenhael-le-moine/slackbuilds/
n°1280376
o'gure
Modérateur
Multi grognon de B_L
Posté le 01-06-2011 à 11:07:25  profilanswer
 

http://tldp.org/LDP/abs/html/io-redirection.html :o

Citation :

   # Single-line redirection commands (affect only the line they are on):
      # --------------------------------------------------------------------

 

  1>filename
      # Redirect stdout to file "filename."
   1>>filename
      # Redirect and append stdout to file "filename."
   2>filename
      # Redirect stderr to file "filename."
   2>>filename
      # Redirect and append stderr to file "filename."
   &>filename
      # Redirect both stdout and stderr to file "filename."
      # This operator is now functional, as of Bash 4, final release.


Message édité par o'gure le 01-06-2011 à 11:07:50
n°1280378
Fork Bomb
Obsédé textuel
Posté le 01-06-2011 à 11:09:26  profilanswer
 

o'gure a écrit :


C'est le même principe que la commande de la ligne 8  [:dawa]


 [:brain_s:2] Que vous êtes caustique.


Message édité par Fork Bomb le 01-06-2011 à 11:10:09

---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
n°1280381
dohkoo001
Posté le 01-06-2011 à 11:15:57  profilanswer
 

Ouai bon ... sa partait tout dans le fichier de log ... :sarcastic:  
 
Donc là le script fonctionne niquel :  
 

Code :
  1. #!/bin/sh
  2. USER="-u root"
  3. MDP="-p*****"
  4. CHM="/var/www/glpi/files/_dumps"
  5. CHMMS="$(date +%Y-%m-%d).glpi.backup.sql"
  6. CHMMS2="$(date +%Y-%m-%d).ocs.backup.sql"
  7. echo -----------------------Sauvegarde du $(date +%Y-%m-%d)------------------------- >> logbackup.log
  8. # Dump de la base GLPI
  9. mysqldump $USER $MDP GLPI_ > $CHM/$(date +%Y-%m-%d).glpi.backup.sql
  10. # Fin du dump de la base GLPI
  11. # Dump de la base OCS
  12. mysqldump $USER $MDP ocsweb > $CHM/$(date +%Y-%m-%d).ocs.backup.sql
  13. # Fin du dump de la base OCS
  14. # Debut du transfert de fichier vers le serveur de sauvegarde
  15. smbclient //srv/Backup_GLPI -U 'linux%*****' -c 'put '$CHMMS'' >> logbackup.log
  16. smbclient //srv/Backup_GLPI -U 'linux%*****' -c 'put '$CHMMS2'' >> logbackup.log
  17. # Fin du transfert de fichier
  18. # Suppression des fichiers
  19. rm $CHM/$(date +%Y-%m-%d).glpi.backup.sql >> logbackup.log
  20. rm $CHM/$(date +%Y-%m-%d).ocs.backup.sql >> logbackup.log
  21. # Fin de la suppression des fichiers
  22. # Fin de la sauvegarde
  23. echo ------------------------ Fin de la sauvegarde du $(date +%Y-%m-%d) ---------------------- >> logbackup.log


 
 
Voilà, et maintenant j'aimerais bien que tous les infos soient rapatriées dans le logbackup.log  mais je me rappel pas de la syntaxe.
 
J'ai fais mon dernier premier script, il y a 2 ans ... faut me pardonner  :ange:  

n°1280392
Fork Bomb
Obsédé textuel
Posté le 01-06-2011 à 11:44:24  profilanswer
 

T’es sûr de la fonctionnalité des lignes 32 et 33 ?


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
n°1280398
dohkoo001
Posté le 01-06-2011 à 11:59:28  profilanswer
 

Oui oui, puisque j'envoie mes sauvegarde sur un serveur Windows *pas taper* qui gère toutes les sauvegardes, donc je ne les garde pas sur la machine elle-même.

n°1280399
gizmo15
Posté le 01-06-2011 à 12:03:03  profilanswer
 

tu peux pas faire une vérife que tes fichiers aient bien été envoyés sur ton serveur de sauvegarde?
 
imagine tes fichiers ne sont pas passés et tu les supprime?

n°1280401
Fork Bomb
Obsédé textuel
Posté le 01-06-2011 à 12:08:10  profilanswer
 

dohkoo001 a écrit :

Oui oui, puisque j'envoie mes sauvegarde sur un serveur Windows *pas taper* qui gère toutes les sauvegardes, donc je ne les garde pas sur la machine elle-même.


Ce que je ne comprend pas, c’est la redirection après le rm.


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
n°1280404
dohkoo001
Posté le 01-06-2011 à 12:17:21  profilanswer
 

C'est bien sa le problème, je ne me rappel plus comment envoyé les infos dans mon fichiers log. Enfin, je ne me rappel plus de la syntaxe.  
 
@ gizmo15 : c'est prévue, mais j'essaie de faire un truc à la fois ...  je suis encore débutant au niveau des script.

n°1280409
cycojesus
Mèo Lười
Posté le 01-06-2011 à 12:36:16  profilanswer
 

dohkoo001 a écrit :

C'est bien sa le problème, je ne me rappel plus comment envoyé les infos dans mon fichiers log. Enfin, je ne me rappel plus de la syntaxe.  
 
@ gizmo15 : c'est prévue, mais j'essaie de faire un truc à la fois ...  je suis encore débutant au niveau des script.


mysqldump $user $mdp GLPI_ 1> $chm/$(date +%Y-%m-%d).glpi.backup.sql 2>> logbackup.log

?


---------------
Chết rồi ! ✍ ⌥⌘ http://github.com/gwenhael-le-moine/slackbuilds/
n°1280410
bardiel
Debian powa !
Posté le 01-06-2011 à 12:36:46  profilanswer
 

J'adore ceux qui ré-inventent la roue [:warkcolor]  
Go le wiki de GLPI, tu vires du script tout ce qui touche à OCS, et tu fais un point de montage propre dans ton fstab [:chrisbk]  
 
Pour le reste, ça fait quand même un bon exercice de bash :D


---------------
Grippe ? Coronavirus ? Portez votre masque correctement ! :D
n°1280412
slywalker
Posté le 01-06-2011 à 13:05:47  profilanswer
 

Quelques modifs de base que j'apporterai perso :

Code :
  1. #!/bin/sh
  2. USER="-u root"
  3. MDP="-p*****"
  4. CHM="/var/www/glpi/files/_dumps"
  5. CHMMS="$(date +%Y-%m-%d).glpi.backup.sql"
  6. CHMMS2="$(date +%Y-%m-%d).ocs.backup.sql"
  7. echo -----------------------Sauvegarde du $(date +%Y-%m-%d)------------------------- >> logbackup.log
  8. # Dump de la base GLPI
  9. mysqldump $USER $MDP GLPI_ > $CHM/$(date +%Y-%m-%d).glpi.backup.sql
  10. # Fin du dump de la base GLPI
  11. # Dump de la base OCS
  12. mysqldump $USER $MDP ocsweb > $CHM/$(date +%Y-%m-%d).ocs.backup.sql
  13. # Fin du dump de la base OCS
  14. # Debut du transfert de fichier vers le serveur de sauvegarde
  15. smbclient //srv/Backup_GLPI -U 'linux%*****' -c 'put '$CHMMS'' >> logbackup.log
  16. if [ `echo $?` -ne 0 ];
  17.   then
  18.     echo "ERREUR lors du transfert de $CHMMS vers le serveur" >> logbackup.log
  19. fi
  20. smbclient //srv/Backup_GLPI -U 'linux%*****' -c 'put '$CHMMS2'' >> logbackup.log
  21. if [ `echo $?` -ne 0 ];
  22.   then
  23.     echo "ERREUR lors du transfert de $CHMMS2 vers le serveur" >> logbackup.log
  24. fi
  25. # Fin du transfert de fichier
  26. # Suppression des fichiers
  27. rm $CHM/$(date +%Y-%m-%d).glpi.backup.sql >> logbackup.log
  28. rm $CHM/$(date +%Y-%m-%d).ocs.backup.sql >> logbackup.log
  29. # Fin de la suppression des fichiers
  30. # Fin de la sauvegarde
  31. echo ------------------------ Fin de la sauvegarde du $(date +%Y-%m-%d) ---------------------- >> logbackup.log


 
Au moi tu sauras grâce à ton fichier de log quand les transferts échouent !

n°1280603
twocats
Posté le 01-06-2011 à 23:08:09  profilanswer
 

if [ `echo $?` -ne 0 ];
then


 :pt1cable:  
Et pourquoi pas $? ? Pour le point-virgule en bout de ligne, il est totalement inutile.
Soit :

if [ $? -ne 0 ]
then


---------------
La réponse est 42
n°1280904
slywalker
Posté le 04-06-2011 à 14:15:36  profilanswer
 

j'aime bien complexifier  :D  
 
et pour le point-virgule, je sais bien, mais c'est une habitude que j'ai prise  :sweat:

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Script Bash sauvegarde

 

Sujets relatifs
Syntaxe lancement script dans terminal LinuxScript en Perl vers script Python, interêt?
[Résolu] Bash - Exporter sans interpréter.Script copie de profils itinérant
[PHP] Recherche script d'enchères[BASH] Existence de fichiers par extension
[Bash] Modifier une partie d'une variable mais pas tout !!J'arrive même pas à faire marcher mon script shell de 3 lignes !
Sauvegarde cryptées avec GPG et clé privéeAide pour script bash
Plus de sujets relatifs à : Script Bash sauvegarde


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR