URL: https://linuxfr.org/forums/programmation-shell/posts/amelioration-d-un-script-de-bakup-rsync Title: Amélioration d'un script de bakup (rsync) Authors: PolePosition Date: 2013年05月11日T19:00:51+02:00 License: CC By-SA Tags: script et sauvegarde Score: -1 Bonsoir à tous !!!! J'aurais une question à vous poser. J'ai un script de backup, qui fonctionne parfaitement, mais qui n'est pas très sexy sur un point : je voudrais pouvoir exclure ou inclure rapidement des répertoires en faisant un tableau, dans lequel je met en commentaire ou non le répertoire, selon qu'il doit être exclu ou inclu du processus de backup. Voici mon code actuel : [bastien@zoulou /]$ cat backup_OS.sh #!/bin/sh destination=/media/RAID5/BACKUP_OS START=$(date +%s) rsync --archive --delete --acls --xattrs --verbose /* $destination --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found,/home/*/.gvfs,/var/lib/pacman/sync/*,/opt/*,/home/bastien/DOCUMENTS,/home/*/.thumbnails*,/tmp/*,/home/*/.mozilla,/home/*/.thunderbird} FINISH=$(date +%s) echo "total time: $(( ($FINISH-$START) / 60 )) minutes, $(( ($FINISH-$START) % 60 )) seconds" echo "SYNC" sync rm $destination/Backup\ from\ * touch $destination/"Backup from $(date '+%A, %d %B')" [bastien@zoulou /]$ L'idéal serait d'avoir : EXCLUDE_LIST="/dev/*, \ /proc/*, \ /sys/*, \ /tmp/*, \ /run/*, \ /mnt/*, \ /media/*, \ /lost+found, \ /home/*/.gvfs, \ /var/lib/pacman/sync/*, \ /opt/*, \ /home/bastien/DOCUMENTS, \ /home/*/.thumbnails*, \ /tmp/*, \ /home/*/.mozilla, \ /home/*/.thunderbird" Ainsi je pourrais exclure de l'exclusion un répertoire via le caractère #. Puis d'utiliser cette variable comme ceci : rsync [.....blahblah....] --exclude=$EXCLUDE_LIST Mais ça ne fonctionne pas ! Auriez-vous une idée ? Bonne soirée les GNU/Linuxiens (et aussi aux GNU/Linuxiennes... :) #### #### **EDIT du 07 septembre 2013:**#### J'ai trouvé une solution très propre et concise : **1. Fichier Backup_OS.sh :** [bastien@zoulou /]$ cat backup_OS.sh #!/bin/sh destination=/media/RAID5/BACKUP_OS rsync --archive --delete --acls --xattrs --verbose --exclude-from 'exclude.txt' / $destination echo "SYNCING..........." sync touch $destination/"Backup from $(date '+%A, %d %B')" **2. Fichier Backup_DOCUMENTS.sh :** [bastien@zoulou /]$ cat backup_DOCUMENTS.sh #!/bin/sh destination=/media/RAID5/BACKUP_DOCUMENTS rsync --archive --delete --acls --xattrs --verbose /home/bastien/DOCUMENTS/ $destination echo "SYNCING..........." sync touch $destination/"Backup from $(date '+%A, %d %B')" **3. Fichier ecxclude.txt :** [bastien@zoulou /]$ cat exclude.txt /dev/* /proc/* /sys/* /tmp/* /run/* /mnt/* /media/* /lost+found /home/*/.gvfs /var/lib/pacman/sync/* /opt/* /home/bastien/DOCUMENTS /home/*/.thumbnails* /tmp/* /home/*/.mozilla /home/*/.thunderbird [bastien@zoulou /]$ Si ça peut servir à quelqu'un...

AltStyle によって変換されたページ (->オリジナル) /