changer le répertoire en lecteur réseau dans Cygwin

10

J'ai un nouveau routeur sans fil chez moi et j'ai un lecteur de 3 To connecté. Je voudrais écrire un script de sauvegarde dans cygwin qui copiera tous les fichiers modifiés sur le disque dur externe.

Pour commencer, comment puis-je cdaccéder au disque dur? Dans l'explorateur de fichiers Windows, je tape simplement //192.168.1.1et cela m'amène au lecteur réseau. Cependant, lorsque je tape, cd //192.168.1.1cela ne fonctionne pas. Alors, comment puis-je changer de répertoire en HD?

Deuxièmement, quelqu'un a-t-il des conseils sur la façon d'écrire un bon script de sauvegarde pour copier certains répertoires (récursivement) s'ils ont changé?

drjrm3
la source

Réponses:

15

Vous pouvez consulter les lecteurs montés dans la vue de l'environnement cygwin UNIX du système d'exploitation Windows sous-jacent en consultant /cygdrive. Faites un dfà l'invite du shell cygwin (généralement bash) pour voir où les disques sont montés. Voici la documentation indiquant où se trouvent les lecteurs montés . Par exemple, pour changer le lecteur réseau monté en tant que Windows f:\, vous feriez cdà /cygdrive/f, comme dans:

$ cd /cydrive/f

Voici un exemple:

  1. OS X Mavericks (UNIX) a un lecteur de 3 To monté comme /Volumes/Time Machine
  2. Une machine virtuelle Windows XP (VM) s'exécute sur OS X et apparaît /Volumes/Time MachinecommeX:\
  3. Cygwin s'exécute sur la machine virtuelle XP et voit /Volumes/Time Machinecomme /cygdrive/xou mêmex:

$ ls x:

Voici une photo:

entrez la description de l'image ici

Si le disque dur externe n'est pas actuellement monté sur l'hôte Windows et déjà mappé à un point de montage /cygdrive, vous devrez peut-être monter le partage réseau vous-même. Jetez un œil à l'implémentation par cygwin de la mountcommande UNIX .

Une autre façon d'afficher le dossier réseau est dans le sens de la syntaxe que vous avez utilisée: mon serveur OS X exporte mon dossier de connexion OS X, whmcclos, en tant que dossier partagé SMB. Je peux définir mon répertoire de travail actuel sur ce dossier partagé à partir de cygwin, sur ma machine virtuelle Windows XP, fonctionnant sous OS X, comme suit:

$ cd //192.168.0.2/whmcclos

De cette façon, je n'ai même pas besoin d'avoir le dossier monté en tant que lettre de lecteur pour le voir depuis cygwin.

Pour sauvegarder les fichiers qui ont changé, rsyncne sauvegardera récursivement que les fichiers dans une arborescence de répertoires qui ont changé - il calcule un jeu de sauvegarde minimal, et sauvegarde uniquement ce qui a changé, et dispose de nombreuses options, y compris la copie sur des lecteurs réseau et peut être utilisé avec le cryptage via ssh. Voici quelques astuces pour utiliser rsyncavec cygwin. Voici une commande pour compresser et archiver (recurse) la source sur le lecteur monté en tant que c:\ et mettre en cible sur le lecteur monté comme f:\sur l'hôte Windows sous-jacent cygwin.

$ rsync -avz /cygdrive/c/path/to/source /cygdrive/f/path/to/target

Si vous avez besoin d'aide, veuillez laisser un commentaire.

Billy McCloskey
la source
Merci, j'ai encore une question - quand je l'ai utilisé -avz, il ne copie pas correctement les autorisations. Je comprends rsync: failed to set permissions on "<path>": Permission denied (13). Une idée comment corriger cela?
drjrm3
Cela ressemble à quelque chose que j'ai vu une fois avec des autorisations, en particulier avec des autorisations ACL. Examinez les autorisations, y compris l'ACL avec /bin/ls -le /path/to/sourceet également /bin/ls -le /path/to/targetpour vérifier non seulement les différentes autorisations de dossier, mais les autorisations ACL de et dans ces dossiers. Voir man lset les -lecommutateurs et man chmodet les commutateurs +aet -a. Je suis certain à 99% que cela a quelque chose à voir avec les autorisations. Commencez par rsync'ing un sous-ensemble de l'arborescence source pour dire, /tmpoù vous savez que vous avez une autorisation d'écriture, et voyez comment cela fonctionne.
Billy McCloskey