thay đổi thư mục vào ổ đĩa mạng trong Cygwin


10

Tôi có một bộ định tuyến không dây mới trong nhà và có ổ đĩa 3 TB được nối với nó. Tôi muốn viết một tập lệnh sao lưu trong cygwin, nó sẽ sao chép mọi tập tin đã thay đổi sang HD bên ngoài.

Để bắt đầu, làm thế nào để tôi cdvào ổ cứng? Trong windows file explorer tôi chỉ cần gõ //192.168.1.1và nó đưa tôi đến ổ đĩa mạng. Tuy nhiên, khi tôi gõ cd //192.168.1.1nó không hoạt động. Vậy làm thế nào tôi có thể thay đổi thư mục vào HD?

Thứ hai, có ai có lời khuyên về cách viết một kịch bản sao lưu tốt để sao chép các thư mục nhất định (đệ quy) nếu chúng đã thay đổi không?

Câu trả lời:


15

Bạn có thể xem các ổ đĩa được gắn trong khung nhìn của môi trường UNIX của hệ điều hành Windows bên dưới bằng cách nhìn vào /cygdrive. Thực hiện dftại dấu nhắc shell Cygwin (thường bash) để xem các ổ đĩa được gắn kết. Đây là tài liệu về nơi tìm thấy ổ đĩa gắn kết . Ví dụ, để chuyển sang mạng ổ gắn như Windows f:\, bạn muốn cdđến /cygdrive/f, như trong:

$ cd /cydrive/f

Đây là một ví dụ:

  1. OS X Mavericks (UNIX) có ổ đĩa 3 TB được gắn dưới dạng /Volumes/Time Machine
  2. Một Windows XP ảo (VM) đang chạy trên OS X và được xem /Volumes/Time MachineX:\
  3. Cygwin đang chạy trên XP VM, và thấy /Volumes/Time Machinenhư /cygdrive/xhoặc thậm chíx:

$ ls x:

Đây là một hình ảnh:

nhập mô tả hình ảnh ở đây

Nếu HD bên ngoài hiện không được gắn trên máy chủ Windows và đã được ánh xạ tới điểm gắn kết /cygdrive, thì bạn có thể cần phải tự chia sẻ mạng. Hãy xem việc triển khai mountlệnh UNIX của Cygwin .

Một cách khác để xem thư mục mạng là theo dòng cú pháp mà bạn đã sử dụng - Tôi có máy chủ OS X của tôi xuất thư mục đăng nhập OS X của tôi, whmcclos, dưới dạng thư mục chia sẻ SMB. Tôi có thể đặt thư mục làm việc hiện tại của mình thành thư mục dùng chung đó từ cygwin, trên Windows XP VM, chạy trong OS X, như sau:

$ cd //192.168.0.2/whmcclos

Bằng cách đó, tôi thậm chí không cần phải gắn thư mục dưới dạng ký tự ổ đĩa để xem nó từ bên trong cygwin.

Để sao lưu các tệp đã thay đổi, rsyncsẽ chỉ sao lưu đệ quy các tệp trong cây thư mục đã thay đổi - nó tính toán một bộ sao lưu tối thiểu và chỉ sao lưu những gì đã thay đổi và có vô số tùy chọn, bao gồm sao chép vào ổ đĩa mạng và có thể được sử dụng với mã hóa thông qua ssh. Dưới đây là một số gợi ý khi sử dụng rsyncvới cygwin. Dưới đây là một lệnh để nén và lưu trữ (recurse) nguồn trên ổ đĩa được gắn c:\ và đặt vào mục tiêu trên ổ đĩa được gắn kết như f:\trên máy chủ Windows bên dưới cygwin.

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

Nếu bạn cần thêm trợ giúp, xin vui lòng để lại nhận xét.


Cảm ơn, tôi vẫn có một câu hỏi - khi tôi sử dụng -avz, nó không sao chép chính xác quyền. Tôi nhận được rsync: failed to set permissions on "<path>": Permission denied (13). Bất kỳ ý tưởng làm thế nào để sửa điều này?
drjrm3

Nghe có vẻ như một cái gì đó tôi đã thấy một lần với quyền, đặc biệt là với quyền ACL. Nhìn vào các quyền bao gồm ACL với /bin/ls -le /path/to/sourcevà cũng /bin/ls -le /path/to/targetđể kiểm tra không chỉ các quyền thư mục khác nhau, mà cả các quyền ACL của và trong các thư mục đó. Xem man lsvà các -lecông tắc và man chmod+a-acông tắc. Tôi chắc chắn 99% rằng nó có liên quan đến quyền. Bắt đầu với rsync là một tập hợp con của cây nguồn để nói /tmp, nơi bạn biết bạn có quyền ghi và xem cách thức hoạt động của nó.
Billy McCloskey

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.