змінити каталог на мережевий диск у Cygwin


10

У мене вдома є новий бездротовий маршрутизатор і до нього підключений накопичувач на 3 ТБ. Я хотів би написати резервний скрипт в cygwin, який буде копіювати будь-які змінені файли на зовнішній HD.

Для початку, як мені cdввійти на жорсткий диск? У Windows File Explorer я просто набираю, //192.168.1.1і він переносить мене на мережевий диск. Однак при введенні cd //192.168.1.1це не працює. Тож як я можу змінити каталог в HD?

По-друге, чи є хтось порадою, як написати хороший резервний сценарій для копіювання певних каталогів (рекурсивно), якщо вони змінилися?

Відповіді:


15

Ви можете подивитись на змонтовані накопичувачі у середовищі cygwin UNIX на базовій ОС Windows, заглянувши в нього /cygdrive. Зробіть dfпідказку в оболонці cygwin (як правило bash), щоб побачити, де встановлені накопичувачі. Ось документація щодо того, де знаходяться встановлені накопичувачі . Наприклад, щоб змінити до мережі приводу , встановленого в ОС Windows f:\, потрібно , cdщоб /cygdrive/f, як в:

$ cd /cydrive/f

Ось приклад:

  1. У OS X Mavericks (UNIX) встановлений накопичувач на 3 ТБ /Volumes/Time Machine
  2. Віртуальна Windows XP (VM) працює на OS X і бачить /Volumes/Time MachineякX:\
  3. Cygwin працює на VM XP і бачить /Volumes/Time Machineяк /cygdrive/xабо рівнеx:

$ ls x:

Ось малюнок:

введіть тут опис зображення

Якщо зовнішній HD в даний час не встановлений на хості Windows і вже нанесений на точку монтування /cygdrive, можливо, вам доведеться самостійно змонтувати мережевий доступ. Подивіться на реалізацію Cygwin портретованого , UNIX mountкоманди .

Ще один спосіб перегляду мережевої папки - уздовж рядків використовуваного вами синтаксису - у мене сервер OS X експортує свою папку входу в OS X, whmcclos, як спільну папку SMB. Я можу встановити свою поточну робочу директорію в тій спільній папці від cygwin на моєму комп'ютері з операційною системою Windows XP, що працює під управлінням OS X:

$ cd //192.168.0.2/whmcclos

Таким чином, мені навіть не потрібно, щоб папка була змонтована як лист диска, щоб переглянути її з cygwin.

Для резервного копіювання файлів, які були змінені, rsyncрекурсивно створюватиме резервне копіювання лише тих файлів у дереві каталогів, які були змінені - він обчислює мінімальний набір резервних копій і створює резервну копію лише того, що змінилося, та має безліч варіантів, включаючи копіювання на мережеві накопичувачі та історію можна використовувати з шифруванням через ssh. Ось кілька підказок щодо використання rsyncз цигуїном. Ось команда компресувати та архівувати (рекурсивно) джерело на дисководі, встановленому як c:\ і поставленому в ціль на встановленому диску, як f:\на хості Windows, що лежить в основі cygwin.

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

Якщо вам потрібна додаткова допомога, будь ласка, залиште коментар.


Дякую, у мене все ще виникає запитання - коли я користувався -avz, він не копіює дозволів правильно. Я отримую rsync: failed to set permissions on "<path>": Permission denied (13). Будь-яка ідея, як це виправити?
drjrm3

Це звучить як щось, що я бачив одного разу з дозволами, зокрема з дозволами ACL. Погляньте на дозволи, включаючи ACL, /bin/ls -le /path/to/sourceа також /bin/ls -le /path/to/targetперевірити не лише різні дозволи до папок, але й права доступу ACL та в цих папках. Див man lsі -leперемикачі та man chmodй в +aі -aперемикачі. Я на 99% впевнений, що це має відношення до дозволів. Почніть з rsync'ing підмножини вихідного дерева, щоб сказати, /tmpде ви знаєте, що у вас є дозвіл на запис, і подивіться, як це працює.
Біллі Макклоскі

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.