scripts de sauvegarde automatique

scripts de sauvegarde automatique - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 21-03-2005 à 01:52:08    

Bonjour,  
 
j'utilise actuellement qq scripts pour sauvegarder mes fichiers et répertoires couplés avec cron et unison ca marche plutot pas mal.
 
pour le moment pour backuper mes fichiers j'ai un fichier qui contient la liste des fichiers a sauvegarder puis le script qui va lire ce fichier et met tous les fichiers dans une seule archive tar. (ca fait bcp de fichiers dans la phrase je sais :D)
 
par contre pour les dossiers importants (/etc/bind, /usr/scripts...) que je souhaite sauvegarder je fait un script par dossier ke je veux sauvegarder et j'aimerais faire la meme chose que pour les fichiers a savoir la liste de dossiers dans un fichier texte, et un script qui parse le tout pour fare les tar qu'il faut mais g qq pb.
 
 
supposons que j'ai la liste de dossiers suivantes :  

Code :
  1. /var/www
  2. /etc/bind
  3. /chemin/super/long/et/relou


 
il faudrait qu'a chaque tour de boucle je fasse un cd vers le repertoire parent de celui que je veuille sauvegarder puis un tar cfz  du repertoire a sauvegarder (pour ne pas avoir toute l'arborescence dans mon archive)
 
j'aimerais savoir comment je peux parser la loigne a chaque tour de boucle pour le faire
 
en gros il faut qu'avec la liste de dossier ci dessus ma boucle fasse ca :  ([date] represente la date de la sauvegarde calculée auparavant dans le script)
 

Code :
  1. cd /var
  2. tar cfz /backupdir/[date]-www.tar.gz www/
  3. cd /etc
  4. tar cfz /backupdir/[date]-bind.tar.gz bind/
  5. cd /chemin/super/long/et/
  6. tar cfz /backupdir/[date]-relou.tar.gz relou/


 
bref fo ke j''arrive a parser le path vers le dossier pour récupérer le répertoire parent et pour l'instant je vois pas comment faire, (si on pouvait faire un cut avec des regex ca m'arrangerais :D)
 
qqn a une idée ?
 
 
 
edit : j'ai déja trouvé une solution de secours a savoir parser mon fichier contenant la liste de dossiers comme ca
 

Code :
  1. /chemin/vers/dossier/parent:dossier_a_sauvegarder


et fait un cut -d: -f1 et -f2 pour récup les variables et faire mon cd tranquillement mais bon j'aimerais quand mmee voir si c possible de le faire directement (sans trop se faire chier quand meme)


Message édité par tifrere le 21-03-2005 à 01:57:52
Reply

Marsh Posté le 21-03-2005 à 01:52:08   

Reply

Marsh Posté le 21-03-2005 à 02:03:58    

bon la solution de secours marche plutot pas mal en fait :)
 
(mais si qqn a une idée ca serait bien aussi)
 

Code :
  1. root@tifnux [backup] {102} cat folders.db
  2. /var:www
  3. /etc:bind
  4. /usr:scripts
  5. /var/lib:mysql
  6. /usr/local:rrd_logs


Code :
  1. root@tifnux [backup] {103} cat backup_folder.sh
  2. #!/bin/sh
  3. date=`date +%Y%m%d`
  4. save_dir="/var/backup"
  5. folder_list="/usr/scripts/backup/folders.db"
  6. for folder in `cat $folder_list`
  7. do
  8.         dir=`echo $folder | cut -d":" -f1`
  9.         name=`echo $folder | cut -d":" -f2`
  10.         echo "cd $dir"
  11.         echo "tar cfz $save_dir/$date-$name.tar.gz $name"
  12. done


Code :
  1. root@tifnux [backup] {104} ./backup_folder.sh
  2. cd /var
  3. tar cfz /var/backup/20050321-www.tar.gz www
  4. cd /etc
  5. tar cfz /var/backup/20050321-bind.tar.gz bind
  6. cd /usr
  7. tar cfz /var/backup/20050321-scripts.tar.gz scripts
  8. cd /var/lib
  9. tar cfz /var/backup/20050321-mysql.tar.gz mysql
  10. cd /usr/local
  11. tar cfz /var/backup/20050321-rrd_logs.tar.gz rrd_logs
  12. root@tifnux [backup] {105}


Message édité par tifrere le 21-03-2005 à 02:06:14
Reply

Sujets relatifs:

Leave a Replay

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