Script Bash sauvegarde

Script Bash sauvegarde - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 01-06-2011 à 09:09:51    

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

Reply

Marsh Posté le 01-06-2011 à 09:09:51   

Reply

Marsh Posté le 01-06-2011 à 09:11:54    

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

Reply

Marsh Posté le 01-06-2011 à 09:15:21    

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.

Reply

Marsh Posté le 01-06-2011 à 09:32:40    

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
Reply

Marsh Posté le 01-06-2011 à 09:36:57    

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/
Reply

Marsh Posté le 01-06-2011 à 09:44:56    

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 ...

Reply

Marsh Posté le 01-06-2011 à 09:54:49    

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/
Reply

Marsh Posté le 01-06-2011 à 10:26:40    

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 ?

Reply

Marsh Posté le 01-06-2011 à 10:38:45    

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/
Reply

Marsh Posté le 01-06-2011 à 10:44:05    

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 ...

Reply

Marsh Posté le 01-06-2011 à 10:44:05   

Reply

Marsh Posté le 01-06-2011 à 11:00:21    

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 !"
Reply

Marsh Posté le 01-06-2011 à 11:01:30    

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]

Reply

Marsh Posté le 01-06-2011 à 11:06:01    

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/
Reply

Marsh Posté le 01-06-2011 à 11:07:25    

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
Reply

Marsh Posté le 01-06-2011 à 11:09:26    

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 !"
Reply

Marsh Posté le 01-06-2011 à 11:15:57    

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:  

Reply

Marsh Posté le 01-06-2011 à 11:44:24    

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 !"
Reply

Marsh Posté le 01-06-2011 à 11:59:28    

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.

Reply

Marsh Posté le 01-06-2011 à 12:03:03    

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?

Reply

Marsh Posté le 01-06-2011 à 12:08:10    

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 !"
Reply

Marsh Posté le 01-06-2011 à 12:17:21    

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.

Reply

Marsh Posté le 01-06-2011 à 12:36:16    

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/
Reply

Marsh Posté le 01-06-2011 à 12:36:46    

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
Reply

Marsh Posté le 01-06-2011 à 13:05:47    

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 !

Reply

Marsh Posté le 01-06-2011 à 23:08:09    

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
Reply

Marsh Posté le 04-06-2011 à 14:15:36    

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

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed