[SHELL] Script de backup (cron) : Ameliorations ?

Script de backup (cron) : Ameliorations ? [SHELL] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 23-04-2009 à 18:39:41    

Hello à tous,
 
Après pas mal de lecture sur le sujet des script SHELL et des Crontab, j'ai réussi a écrire mon premier script SHELL pour faire un backup régulier d'un dossier situé mon serveur local.
 
J'aurai souhaité savoir si des améliorations ou modifications étaient nécessaires, vu que c'est mon premier script, je pense qu'on peut faire mieux ...
 

Code :
  1. # !/bin/bash
  2. # Script de test pour gerer une tache planifiée de backup
  3. titre="Execution du backup sur $HOSTNAME \n"
  4. horodatage=$(date +"%x %r %Z" )
  5. //### FONCTION ###
  6. function titre {
  7. echo -e $titre
  8. echo $horodatage
  9. }
  10. function backup  {
  11. dateJour=$(date "+%d_%m_%y" ) //#Definition variable de stockage de la date du jour
  12. nomDossier="bck-drupal-"$dateJour //#Definition variable pour creation du nom du dossier
  13. nomFichier="drupal-"$dateJour //#Definition variable pour creation du nom du fichier tar
  14. cd /home/user/backup //#Entree dans le dossier
  15. mkdir $nomDossier //#Creation du dossier
  16. if [ -d $nomDossier ]; then //#Si le dossier a ete correctement cree
  17.         echo "Creation du dossier : "$nomDossier //#On affiche un message
  18.         cd $nomDossier //#On entre dans le dossier cree
  19.         tar cjf $nomFichier.tar.bz2 /var/www/html/drupal/* //#On compresse le dossier cible en Tar et on le place dans le dossier en cours*/
  20.         if [ -s $nomFichier.tar.bz2 ]; then //#On verifie que le fichier Tar n'est pas vide
  21.            echo "Backup execute avec succes" //#Puis on affiche un message de succes
  22.         fi
  23. else
  24.         echo "######## erreur lors de la creation du backup !!! ########" //# Sinon on affiche un message d'erreur
  25. fi
  26. }
  27. cat << _EOF_
  28. $(titre)
  29. $(backup)
  30. _EOF_


 
 
Puis dans le Crontab du user :

Code :
  1. 0 * * * * bin/job_backup_test >/home/user/backup/log-backup.txt 2>&1


 
 
Merci à vous pour les conseils :)
 
Note j 'ai rajouté des antislash pour que les commentaires soient correctement prit en compte dans la balise code


Message édité par hunter_seeker le 23-04-2009 à 18:46:13
Reply

Marsh Posté le 23-04-2009 à 18:39:41   

Reply

Marsh Posté le 25-04-2009 à 01:33:32    

fais du "set -eu" (RTFM)

Reply

Marsh Posté le 25-04-2009 à 11:07:24    

récupérer le code de retour de tar et le cas échéant afficher une erreur

Reply

Marsh Posté le 29-04-2009 à 20:35:55    

Ya trop de trucs qui vont pas dans le script, en voici un plus approprié selon moi.
http://sputnick-area.net/ftp/downloads/back-lftp.bash
 
Il gere les dumps mysql + backup des sources d'un site + upload ftp + nettoyage programmé sur le ftp ( par defaut 3 semaines de retention ) + envoi de mail en cas d'erreur + etc...

Reply

Marsh Posté le 24-09-2009 à 14:27:04    

Salut les mecs, et tanpis si je me trompe !
 
Je me sers de http://fr.wikipedia.org/wiki/Crontab comme tutoriel quand j'ai à faire des tâches Cron.
 
Je voudrai avoir une planification bien spécifique pour une tâche, mais je ne sais pas si c'est possible...
 
Pour faire une sauvegarde tous les dimanches à 10h00, on fait:

Citation :

00 10 * * 0 la_tache


Pour faire une sauvegarde tous les 1er du mois à 10h00, on fait:

Citation :

00 10 1 * 0 la_tache


 
Mais pour faire une sauvegarde tous les 1er dimanches du mois à 10h00:

Citation :

00 10 1-7 * 0 /save/savemensu


Cela fonctionnerait ? (j'ai mis 0 à la fin pour dire "dimanche", et "1-7" pour combiner avec la 1er semaine du mois)
 
Merci  :hello:

Reply

Marsh Posté le 24-09-2009 à 14:45:07    

A priori ce serait bon, quelqu'un a fait la même programmation que moi :D
http://forum.ubuntu-fr.org/viewtopic.php?pid=2208022

Reply

Marsh Posté le 24-09-2009 à 19:35:15    

la buvette a écrit :


Pour faire une sauvegarde tous les 1er du mois à 10h00, on fait:

Citation :

00 10 1 * 0 la_tache




La c'est faux :o
 
Mais bon :D
 
Sinon privilégie peut-être la notation 'sun' plutot que '0', c'est plus parlant si quelqu'un reprends ton bébé un jour ;)


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
Reply

Sujets relatifs:

Leave a Replay

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