Linux и серверы

Как скопировать файлы с удаленного ПК, если есть только SSH? - #Записки о Unix/Linux/BSD/Solaris

Материал перенесён из старой базы знаний ATC-IP и оформлен в едином стиле нового сайта.

- Главная...
- Статьи...
| - LAN & NET
Как скопировать файлы с удаленного ПК, если есть только SSH?
Статьи
Карта сайта
О сайте
Резюме
#Записки о Unix/Linux/BSD/Solaris
Как скопировать файлы с удаленного ПК, если есть только SSH?
Автор H@wk!
11:03:2009 г.
RSYNC
Синхронизация файлов на удаленных хостах.
Аналогично
rcp
позволяет копировать файлы между хостами, но ускоряет процесс т.к. передает только измененные части (хитрый алгоритм на основе сравнения контрольных сумм). Позволяет копировать ссылки (links), специальные устройства (device), владельца и группу файла, права доступа. Позволяет использовать в качестве транспорта как
rsh
, так и
ssh
. Включает сервер
rsyncd
(доступ анонимный или с аутентификацией), порт 873/TCP. Я сервер не использую (не люблю, когда пароли лежат в открытом виде) и потому не описываю. Имя файла записывается в виде: [[
user
host
file
. Если файл назначения является именем директории, то исходные файлы копируются в нее. Если имя исходной директории завершается обычной косой чертой, то копируется содержимое директории, а не сама директория (почувствуйте разницу ;). Относительные имена отсчитываются относительно домашней директории соответствующего пользователя на соответствующем хосте. Если в качестве параметров указано только имя удаленного файла/директории, то выдается листинг. Нельзя копировать с одного удаленного хоста на другой.
rsync
должен быть установлен на обоих концах. Опции:
опции диалога:
-v (увеличить болтливость: один раз - имена передаваемых файлов; два раза - имена пропускаемых файлов; три раза - отладочная печать)
-q (совсем тихо)
--version
--progress (только в сочетании с -v)
--stats (статистика эффективности алгоритма)
--help
-n (не делать реальной пересылки, только отчет о предполагаемых действиях)
какие файлы включать в список проверки перед пересылкой
-r (рекурсивное копирование)
-x (не пересекать границы файловой системы при рекурсии)
--exclude=шаблон
--cvs-exclude (стандартный набор исключений, используемый cvs: *~, *.bak, *.o, core и т.д., включая содержимое файлов .cvsignore)
--exclude-from=имя-файла
--include=шаблон
--include-from=имя-файла
правила проверки на совпадение файлов
-I (пересылать файл даже если длина и время модификации совпадает на обоих концах)
--size-only (определять необходимость пересылки только по совпадению размеров файла)
--modify-window=секунд (если разница времени модификации меньше указанного числа, то файлы считаются одинаковыми; по умолчанию - 0)
-c (на исходном конце считается контрольная сумма (MD4) файла, на приемном конце она сравниваются с контрольной суммой локальной копии; если суммы совпадают, то пересылка не происходит)
-u (не изменять, если приемный файл новее исходного)
--existing (изменять только существующие файлы)
-W (копировать файлы целиком, не задействуя алгоритм сравнения)
backup (сохранять старую версию изменяемого файла)
-b (делать backup, суффикс по умолчанию - '~')
--suffix=суффикс (суффикс для backup)
--backup-dir (backup в указанную директорию)
обработка ссылок
-l (сохранять символьные ссылки; пропускаются по умолчанию)
--copy-links (обрабатывать символьные ссылки как обычные файлы)
--copy-unsafe-links (копировать ссылки, указывающие вовне исходного дерева)
--safe-links (игнорировать ссылки, указывающие вовне приемного дерева, и абсолютные ссылки)
-H (воссоздавать жесткие ссылки на приемном конце; срабатывает только если оба (а больше?) файла входят в список пересылки)
сохранение атрибутов файла
-a (архивный режим: синоним -rlpogDt)
-p (сохранять права доступа)
-o (сохранять владельца файла; только для root)
--numeric-ids (вместо имени владельца и группы пересылается uid и gid)
-g (сохранять группу файла; получатель должен быть членом группы)
-D (сохранять устройство; только для root)
-t (сохранять время модификации; очень рекомендуется, если предполагается повторная пересылка)
правила удаления
--delete (удалять на приемной стороне файлы, не существующие на исходной стороне)
--delete-excluded (удалять, если "несуществование" вызвано действием шаблона исключения)
--delete-after (удалять после передачи, а не до)
--ignore-errors (удалять даже при ошибках ввода/вывода)
--max-delete=число (не удалять более указанного числа файлов)
--force (удалять непустые директории; действует также при замене директории обычным файлом с тем же именем)
-R (относительные имена: в действительности передает имя файла из командной строки целиком вместе с именем директории, а не только файловую часть имени; осторожнее с символьными ссылками!)
-S (эффективно обрабатывать файлы с дырками)
--block-size=размер (размер блока для сравнения контрольных сумм - 700)
-e ssh (транспортный уровень; можно через переменную окружения RSYNC_RSH)
--rsync-path=путь (путь к rsync на удаленном хосте)
--partial (сохранять частично переданные файлы)
--timeout=секунд (по умолчанию 0 - бесконечность)
--temp-dir=директория (где хранить файлы во время пересылки)
--compare-dest=директория
--compress (gzip, но используется информация о пересылаемых структурах, что при большом числе неизмененных файлов будет полезно)
Синтаксис шаблона (и не лениво людям придумывать свои правила описания шаблонов?):
если шаблон начинается с обычной косой черты, то он сопоставляется с началом имени файла, иначе с концом имени файла
если шаблон завершается косой чертой, то он сопоставляется только с директорий
метасимволы *, ? и [ действуют как в шаблонах shell
если в шаблоне имеются две ** подряд, то все метасимволы могут сопоставляться с косой чертой, иначе их действие останавливается косыми чертами
если шаблон содершит нефинальную косую черту, то он сопоставляется полному имени файла, иначе последнему компоненту; только учтите, что алгоритм работает рекурсивно
Переменные окружения:
RSYNC_RSH=ssh
CVSIGNORE=шаблон
Типичный пример использования:
rsync -e ssh -vacu user@host:dir/ .
rsync -e ssh -vacu --exclude '.*.swp' . user@host:dir/
Страница проекта
Источник...
Добавить коментарий
Имя:
E-mail
Коментарий:
Код:
Просмотров: 20872
Коментарии (5)
Написал(а)
H@wk!
, в 21:15 01.12.2011
Имя файла какое?
scp user_name@:remote_server:~/file/file.txt /local/directory
file.txt - файл, который копируем
/local/directory - директория , в которую копируем
Написал(а)
Lef-f-f
, в 17:39 01.12.2011
Чтобы скопировать файл с удаленного сервера на локальный компьютер, используется другой синтаксис SCP:
Позвонить +7 (343) 382-33-16