web-dev-qa-db-fra.com

Utiliser rsync avec exclude / include

J'utilise 2 serveurs Ubuntu 9.10. Je dois synchroniser les changements entre ces deux machines. Voici les répertoires que je dois synchroniser:

/ usr,/etc,/var,/bin,/sbin,/lib

J'utilise rsync comme ci-dessous pour la réplication:

rsync -avP 192.168.2.100:/usr/ /usr

rsync -avP 192.168.2.100:/etc/ /etc ------ Ici, je devrai exclure de nombreux fichiers tels que/etc/udev/*,/etc/hosts,/etc/hostname, ...

J'ai essayé d'utiliser rsync -avP --exclude '/etc/fstab' 192.168.2.100:/etc/ /etc mais cela a écrasé tout le répertoire/etc

Quelqu'un peut-il éditer et me donner rsync à une commande d'une ligne qui synchronise les répertoires spécifiés et non ceux qui sont exclus?. Besoin d'aide pour!

6
user3215

Ce qui suit est la commande rsync pour synchroniser plusieurs répertoires en une ligne et est travaillé pour moi. S'il vous plaît laissez-moi savoir si c'est la bonne façon d'utiliser.

Cela devrait être exécuté sur le système SOURCE:

rsync -avP --exclude 'udev' --exclude 'hosts' --exclude 'hostname' --exclude 'any-account-under-home' /etc /home /usr /var /lib /bin /sbin 192.168.2.100:/

Nous pouvons exclure de nombreux fichiers/répertoires de certains répertoires.

Si nous avons un fichier du même nom, disons 'test' sous/etc/et/home et si vous voulez exclure ce fichier uniquement de/etc, puis placez une entrée d'exclusion excluant 'test' de tous.

0
user3215

Le modèle d'exclusion est relatif aux fichiers source, pas aux fichiers de destination. En fait, vous excluez 192.168.2.100:/etc/etc/fstab, qui n'existe pas.

Tu devrais utiliser:

rsync -avP --exclude '/fstab' 192.168.2.100:/etc/ /etc
5
Adam Matan

Vous devriez utiliser quelque chose comme ceci:

$ Sudo rsync "$backup_options" --log-file="$backup_log_file" --include-from="$backup_incl_from_file" --exclude-from="$backup_excl_from_file" "$backup_src_folder" "$backup_dest_folder"

où le fichier texte $ backup_incl_from_file devrait inclure:

usr/***
etc/***
var/***
bin/***
sbin/***
lib/***
...

et le fichier texte $ backup_excl_from_file devrait inclure:

etc/udev/
etc/hosts
etc/hostname
...

Dans cet exemple

backup_src_folder="192.168.2.100:/"
backup_dest_folder="192.168.2.101:/"

Il est important de lire la page de manuel rsync avant d'utiliser cet exemple pour répondre à vos besoins, en portant une attention particulière à la section INCLUDE/EXCLUDE PATTERN RULES.

3
zuzust

Essayez ceci dans la fenêtre Options avancées pour exclure un répertoire et ses sous-répertoires.

--exclude "/ user/pathtodirectory * /" où "utilisateur" est votre nom d'utilisateur et "pathtodirectoy" est le répertoire que vous souhaitez exclure, ainsi que tous ses sous-répertoires. Assurez-vous d'inclure les guillemets doubles et les barres obliques.

Exemple: --exclude "/ johndoe/downloads * /"

Testé à la fois sur Ubuntu 14.04 et Ubuntu Gnome 14.04.

0
Christopher