cambia directory in unità di rete in Cygwin


10

Ho un nuovo router wireless a casa mia e ho un disco da 3 TB collegato ad esso. Vorrei scrivere uno script di backup in Cygwin che copierà qualsiasi file modificato su HD esterno.

Per cominciare, come posso cdaccedere al disco rigido? In Windows File Explorer scrivo semplicemente //192.168.1.1e mi porta all'unità di rete. Tuttavia, quando cd //192.168.1.1scrivo non funziona. Quindi, come posso cambiare directory in HD?

In secondo luogo, qualcuno ha consigli su come scrivere un buon script di backup per copiare alcune directory (ricorsivamente) se sono cambiate?

Risposte:


15

È possibile guardare le unità montate nella vista dell'ambiente UNIX cygwin del sistema operativo Windows sottostante osservando /cygdrive. Esegui una richiesta dfal prompt della shell cygwin (di solito bash) per vedere dove sono montate le unità. Ecco la documentazione su dove si trovano le unità montate . Ad esempio, per passare all'unità di rete montata come Windows f:\, è cdnecessario /cygdrive/f, come in:

$ cd /cydrive/f

Ecco un esempio:

  1. OS X Mavericks (UNIX) ha un'unità da 3 TB montata come /Volumes/Time Machine
  2. Un Virtual Windows XP (VM) è in esecuzione su OS X e vede /Volumes/Time MachinecomeX:\
  3. Cygwin è in esecuzione sulla macchina virtuale XP e vede /Volumes/Time Machinecome /cygdrive/xo anchex:

$ ls x:

Ecco una foto:

inserisci qui la descrizione dell'immagine

Se l'HD esterno non è attualmente montato sull'host Windows e già mappato su un punto di montaggio /cygdrive, potrebbe essere necessario montare tu stesso la condivisione di rete. Dai un'occhiata all'implementazione di cygwin del mountcomando UNIX .

Un altro modo per visualizzare la cartella di rete è sulla falsariga della sintassi che hai usato: il mio server OS X esporta la mia cartella di login OS X, whmcclos, come una cartella condivisa SMB. Posso impostare la mia directory di lavoro corrente su quella cartella condivisa da Cygwin, sulla mia macchina virtuale Windows XP, in esecuzione su OS X, come segue:

$ cd //192.168.0.2/whmcclos

In questo modo, non ho nemmeno bisogno di avere la cartella montata come lettera di unità per visualizzarla da Cygwin.

Per il backup dei file che sono stati modificati, rsynceseguirà il backup ricorsivo solo dei file in un albero di directory che sono stati modificati: calcola un set di backup minimo, esegue il backup solo di ciò che è cambiato e ha un sacco di opzioni, tra cui la copia su unità di rete e l'essere può essere utilizzato con la crittografia tramite ssh. Ecco alcuni suggerimenti sull'utilizzo rsynccon cygwin. Ecco un comando per comprimere e archiviare (recurse) l'origine sull'unità montata come c:\ e inserire la destinazione sull'unità montata come f:\sull'host Windows sottostante cygwin.

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

Se hai bisogno di ulteriore assistenza, ti preghiamo di lasciare un commento.


Grazie, ho ancora una domanda: quando l'ho usato -avz, non copia correttamente le autorizzazioni. Ho capito rsync: failed to set permissions on "<path>": Permission denied (13). Qualche idea su come correggere questo?
drjrm3,

Sembra qualcosa che ho visto una volta con le autorizzazioni, in particolare con le autorizzazioni ACL. Guarda le autorizzazioni, incluso l'ACL con /bin/ls -le /path/to/sourcee anche /bin/ls -le /path/to/targetper controllare non solo le varie autorizzazioni per le cartelle, ma le autorizzazioni ACL di e in quelle cartelle. Vedere man lse gli -leinterruttori e man chmode gli interruttori +ae -a. Sono sicuro al 99% che ha qualcosa a che fare con le autorizzazioni. Inizia con rsincronizzare un sottoinsieme dell'albero dei sorgenti per dire /tmp, dove sai di avere i permessi di scrittura, e vedere come funziona.
Billy McCloskey,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.