cambiar el directorio a la unidad de red en Cygwin

10

Tengo un nuevo enrutador inalámbrico en mi casa y tengo una unidad de 3 TB conectada. Me gustaría escribir una secuencia de comandos de copia de seguridad en cygwin que copiará sobre cualquier archivo modificado a la HD externa.

Para empezar, ¿cómo ingreso cdal disco duro? En Windows File Explorer simplemente escribo //192.168.1.1y me lleva a la unidad de red. Sin embargo, cuando cd //192.168.1.1escribo no funciona. Entonces, ¿cómo puedo cambiar el directorio a HD?

En segundo lugar, ¿alguien tiene consejos sobre cómo escribir un buen script de copia de seguridad para copiar ciertos directorios (recursivamente) si han cambiado?

drjrm3
fuente

Respuestas:

15

Puede mirar las unidades montadas en la vista del entorno cygwin UNIX del sistema operativo Windows subyacente al mirar hacia adentro /cygdrive. Haga una dfsolicitud en el intérprete de comandos de cygwin (generalmente bash) para ver dónde están montadas las unidades. Aquí está la documentación sobre dónde se encuentran las unidades montadas . Por ejemplo, para cambiar a la unidad de red montada como Windows f:\, debería cdhacerlo /cygdrive/f, como en:

$ cd /cydrive/f

Aquí hay un ejemplo:

  1. OS X Mavericks (UNIX) tiene una unidad de 3 TB montada como /Volumes/Time Machine
  2. Se está ejecutando un Windows XP (VM) virtual en OS X, y ve /Volumes/Time MachinecomoX:\
  3. Cygwin se está ejecutando en la VM XP, y ve /Volumes/Time Machinecomo /cygdrive/xo inclusox:

$ ls x:

Aquí hay una foto:

ingrese la descripción de la imagen aquí

Si la HD externa no está actualmente montada en el host de Windows y ya está asignada a un punto de montaje /cygdrive, es posible que deba montar la red compartida usted mismo. Eche un vistazo a la implementación de cygwin del mountcomando UNIX .

Otra forma de ver la carpeta de red es siguiendo la línea de la sintaxis que usó: tengo mi servidor OS X exportando mi carpeta de inicio de sesión OS X, whmcclos, como una carpeta compartida SMB. Puedo configurar mi directorio de trabajo actual en esa carpeta compartida desde cygwin, en mi VM con Windows XP, que se ejecuta en OS X, de la siguiente manera:

$ cd //192.168.0.2/whmcclos

De esa manera, ni siquiera necesito tener la carpeta montada como una letra de unidad para verla desde cygwin.

Para hacer una copia de seguridad de los archivos que han cambiado, rsyncrespaldará recursivamente solo los archivos en un árbol de directorios que hayan cambiado: calcula un conjunto mínimo de copias de seguridad y solo realiza una copia de seguridad de lo que ha cambiado y tiene muchas opciones, incluida la copia en unidades de red y se puede usar con encriptación a través de ssh. Aquí hay algunos consejos sobre cómo usar rsynccon cygwin. Aquí hay un comando para comprimir y archivar la fuente (recurse) en la unidad montada como c:\ y ponerla en el objetivo en la unidad montada como f:\en el host de Windows subyacente cygwin.

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

Si necesita más ayuda, deje un comentario.

Billy McCloskey
fuente
Gracias, todavía tengo una pregunta: cuando la usé -avz, no copia correctamente los permisos. Consigo rsync: failed to set permissions on "<path>": Permission denied (13). ¿Alguna idea de cómo corregir esto?
drjrm3
Suena como algo que vi una vez con permisos, específicamente con permisos ACL. Mire los permisos, incluida la ACL con /bin/ls -le /path/to/sourcey también /bin/ls -le /path/to/targetpara ver no solo los diversos permisos de carpeta, sino también los permisos de ACL de y en esas carpetas. Ver man lsy el -leinterruptores y man chmody las +ay -alos interruptores. Estoy 99% seguro de que tiene algo que ver con los permisos. Comience con rsync'ing un subconjunto del árbol de origen para decir, /tmpdonde sabe que tiene permiso de escritura, y vea cómo funciona.
Billy McCloskey