ubah direktori ke drive jaringan di Cygwin

10

Saya memiliki router nirkabel baru di rumah saya dan memiliki drive 3 TB yang terhubung dengannya. Saya ingin menulis skrip cadangan di cygwin yang akan menyalin semua file yang diubah ke HD eksternal.

Sebagai permulaan, bagaimana cara saya cdmasuk ke hard drive? Di windows file explorer saya cukup mengetik //192.168.1.1dan membawa saya ke drive jaringan. Namun, saat saya mengetik cd //192.168.1.1tidak berfungsi. Jadi bagaimana saya bisa mengubah direktori menjadi HD?

Kedua, apakah ada yang punya saran tentang cara menulis skrip cadangan yang baik untuk menyalin direktori tertentu (secara rekursif) jika sudah berubah?

drjrm3
sumber

Jawaban:

15

Anda dapat melihat drive yang terpasang di tampilan lingkungan UNIX cygwin tentang OS Windows yang mendasarinya dengan melihat /cygdrive. Lakukan dfdi prompt shell cygwin (biasanya bash) untuk melihat di mana drive dipasang. Berikut dokumentasi tempat drive terpasang ditemukan . Sebagai contoh, untuk mengubah ke drive jaringan terpasang Windows f:\, Anda sebaiknya cduntuk /cygdrive/f, seperti di:

$ cd /cydrive/f

Ini sebuah contoh:

  1. OS X Mavericks (UNIX) memiliki drive 3 TB yang dipasang sebagai /Volumes/Time Machine
  2. Virtual Windows XP (VM) sedang berjalan pada OS X, dan melihatnya /Volumes/Time MachinesebagaiX:\
  3. Cygwin berjalan di VM XP, dan melihat /Volumes/Time Machinesebagai /cygdrive/xatau bahkanx:

$ ls x:

Ini gambarnya:

masukkan deskripsi gambar di sini

Jika HD eksternal saat ini tidak dipasang pada host Windows dan sudah dipetakan ke titik pemasangan /cygdrive, maka Anda mungkin perlu memasang sendiri jaringan berbagi. Lihatlah implementasi mountperintah UNIX cygwin .

Cara lain untuk melihat folder jaringan adalah sepanjang baris sintaks yang Anda gunakan - Saya memiliki server OS X saya mengekspor folder login OS X saya, whmcclos, sebagai folder bersama SMB. Saya dapat mengatur direktori kerja saya saat ini ke folder bersama dari cygwin, pada Windows XP VM saya, berjalan di bawah OS X, sebagai berikut:

$ cd //192.168.0.2/whmcclos

Dengan begitu, saya bahkan tidak perlu memiliki folder yang dipasang sebagai huruf drive untuk melihatnya dari dalam cygwin.

Untuk mencadangkan file yang telah berubah, rsyncakan secara rekursi hanya mencadangkan file dalam pohon direktori yang telah berubah - ini menghitung satu set cadangan minimal, dan hanya mencadangkan apa yang telah berubah, dan memiliki banyak pilihan, termasuk menyalin ke drive jaringan dan menjadi dapat digunakan dengan enkripsi via ssh. Berikut ini beberapa petunjuk tentang penggunaan rsyncdengan cygwin. Berikut adalah perintah untuk mengompresi dan mengarsipkan (recurse) sumber pada drive yang dipasang sebagai c:\ dan memasukkan target pada drive yang dipasang seperti f:\pada host Windows yang mendasari cygwin.

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

Jika Anda memerlukan bantuan lebih lanjut, silakan tinggalkan komentar.

Billy McCloskey
sumber
Terima kasih, saya masih memiliki pertanyaan - ketika saya menggunakan -avz, itu tidak benar menyalin izin. Saya mengerti rsync: failed to set permissions on "<path>": Permission denied (13). Adakah cara untuk memperbaikinya?
drjrm3
Kedengarannya seperti sesuatu yang saya lihat sekali dengan izin, khususnya dengan izin ACL. Lihatlah izin termasuk ACL dengan /bin/ls -le /path/to/sourcedan juga /bin/ls -le /path/to/targetuntuk memeriksa tidak hanya berbagai izin folder, tetapi izin ACL dari dan di folder tersebut. Lihat man lsdan -leswitch dan man chmoddan +adan -aswitch. Saya 99% yakin bahwa itu ada hubungannya dengan izin. Mulailah dengan rsync'ing subset dari pohon sumber untuk mengatakan /tmp,, di mana Anda tahu Anda memiliki izin menulis, dan lihat cara kerjanya.
Billy McCloskey