J'essaye de rsync le répertoire A de server1 avec le répertoire B de server2.
Assis dans le répertoire A de server1, j'ai exécuté les commandes suivantes.
rsync -av * server2::sharename/B
mais ce qui est intéressant, c'est qu'il synchronise tous les fichiers et répertoires sauf .htaccess ou tout fichier caché dans le répertoire A. Tous les fichiers cachés dans les sous-répertoires sont synchronisés.
J'ai également essayé la commande suivante:
rsync -av --include=".htaccess" * server2::sharename/B
mais les résultats sont les mêmes.
Toutes les idées pour lesquelles les fichiers cachés du répertoire A ne sont pas synchronisés et comment y remédier. Je cours en tant qu'utilisateur root.
Merci
Réponses:
Cela est dû au fait qu'il
*
est par défaut étendu à tous les fichiers du répertoire de travail actuel, à l'exception des fichiers dont le nom commence par un point. Ainsi,rsync
ne reçoit jamais ces fichiers comme arguments.Vous pouvez transmettre
.
le répertoire de travail actuel àrsync
:Cette méthode
rsync
recherchera les fichiers à transférer dans le répertoire de travail actuel au lieu de les rechercher dans quel*
développe.Alternativement, vous pouvez utiliser la commande suivante pour
*
étendre à tous les fichiers, y compris ceux qui commencent par un point:shopt -s dotglob
Voir aussi la page de manuel shopt .
la source
rsync -avz [email protected]:/remote/path/. /destination/path
fait le travailPour toute personne qui vient d' essayer de répertoires de synchronisation entre les serveurs (y compris tous les fichiers cachés) - par exemple, la synchronisation
somedirA
sursource-server
àsomedirB
un serveur de destination - essayez ceci :Notez les barres obliques à la fin des deux chemins. Toute autre syntaxe peut conduire à des résultats inattendus!
En outre, pour moi, il est plus facile d'exécuter des
rsync
commandes depuis le serveur de destination, car il est plus facile de s'assurer que j'ai un accès en écriture approprié (c'est-à-dire que je devrai peut-être ajoutersudo
à la commande ci-dessus).Cela va sans dire, mais il est évident que votre utilisateur distant a également besoin d'un accès en lecture
somedirA
sur votre serveur source. :)la source
.htaccess
fichier?-e ssh
spécifie la méthode de connexion.J'ai eu le même problème.
Pour moi, lorsque j'ai exécuté la commande suivante, les fichiers cachés n'ont pas été synchronisés
Mais quand j'ai ajouté les barres obliques à la fin des chemins, les fichiers cachés ont été resynchronisés.
Notez les barres obliques à la fin des chemins , comme Brian Lacy a dit que les barres obliques sont la clé. Je n'ai pas la réputation de commenter son message ou je l'aurais fait.
la source
shopt -s dotglob
à votre script avant la rsyncJe pense que le problème est dû à l'expansion du shell wildcard. Utilisation . au lieu d'étoile.
Considérez l'exemple de contenu de répertoire suivant
L'expansion des caractères génériques du shell traduit la liste d'arguments que le programme rsync obtient
dans
avant que la commande ne commence à être exécutée.
la source
Le
*
dire à rsynch de ne pas synchroniser les fichiers cachés. Vous ne devriez pas l'omettre.la source