J'ai un serveur virtuel Ubuntu s'exécutant sur mon serveur Windows. Ce serveur a 2 disques durs externes attachés, qui sont montés dans Ubuntu.
Maintenant, j'essaie d'exécuter rsync pour synchroniser un répertoire sur mon bureau et sur mon serveur Windows.
Je fais ceci comme suit:
rsync -av --update [email protected]:/home/seagate/Syncfolder/Pictures/ /syncs/pictures
Le /syncs/pictures
est un lien symbolique vers /cygdrive/c/../pictures
. Tous ces liens symboliques fonctionnent correctement et le répertoire distant existe aussi.
Maintenant, quand je lance la commande rsync ci-dessus, elle fait ceci:
created directory /syncs/pictures\#015
Cela crée en fait un répertoire nommé "images" dans mon dossier/syncs /. Donc pas dans le lien symbolique. À côté du lien symbolique:
$ ls
pictures pictures?
Lorsque j'ajoute une barre oblique finale à la destination:
rsync -av --update [email protected]:/home/seagate/Syncfolder/Pictures/ /syncs/pictures/
Il crée un répertoire nommé "# 015" (le point bizarre) dans mon dossier Images actuel sur ma tour!
Je pense que cela a quelque chose à voir avec l'encodage?
J'ai écrit tous les scripts bash dans Notepad ++ avec encodage ANSI.
J'ai résolu ce problème en exécutant dos2unix sous Windows sur tous les fichiers de script. Vous pouvez également le faire sous Linux.
Le problème fondamental ici - du moins dans mon cas - était que le fichier en question avait la convention Windows d'un caractère CR + LF à la fin du fichier de script, par opposition à la convention * nix consistant à utiliser simplement LF seulement. Pour résoudre ce problème, vous devez modifier le fichier de script lui-même afin qu'il respecte les conventions * nix. La réponse ci-dessus suggère quelques bonnes façons de le faire. Certains éditeurs (Notepad ++, par exemple) intègrent des fonctionnalités similaires.