Как заархивировать и скопировать на сервер папку с другого сервера (заархивировать папку с удаленного компа).
Оригинал здесь.
1. Архивирование директории на удалённый сервер.
С использованием cat:
tar zcvfp - /home/user/sourcedir | ssh user@remote_host "cat > ~/from_somehost.tar.gz"
tar — архивирует, и с ключом z сжимает:
z — сжать, c — создать, v — выводить на экран, что архивирует, p — не менять права на файлы, f — в какой файл запихнуть архив, если указан прочерк -, то выводить на стандартный вывод. Далее идет имя каталога, который нужно заархивировать.
То, что tar выведет на стандартный вывод, перенаправляется на удаленный сервер (user@remote_host), где и запускается команда "cat > ~/from_somehost.tar.gz". Cat принимает на вход то, что выдал tar, а затем все это складывает в файл /from_somehost.tar.gz.
С использованием dd:
tar zcvfp - /home/user/sourcedir | ssh user@remote_host "dd of=~/from_somehost.tar.gz"
В этом примере вместо cat используется dd (disk destroy ;), у которой есть параметр of (output file), то есть тот, куда нужно складывать то, что пришло от tar.
Остальное по аналогии должно быть понятно.
2. Архивирование с удалённой машины на локальную:
С использованием cat:
ssh user@remote_host "tar zcvfp - /home/user/sourcedir" | cat > ~/from_somehost.tar.gz
С использованием dd:
ssh user@remote_host "tar zcvfp - /home/user/sourcedir" | dd of=~/from_somehost.tar.gz
3. Ну и напоследок - распаковка удалённого архива на локальную машину.
ssh user@remote_host "cat /home/user/from_somehost.tar.gz" |tar xvfp -
3-я лаба по информатике на 8-м факультете :) Было бы неплохо, кстати, пояснить, зачем оно все нужно. Когда cat, когда dd, зачем tar-у столько ключей (есть кстати pax, он, по-моему более понятный, хотя я почему-то все равно tar-ом пользуюсь).
ОтветитьУдалитьПояснила. А чем отличается dd от cat в этой ситуации, я не знаю.
ОтветитьУдалитьПользоваться dd так, как ты это делаешь — нельзя, потому что по умолчанию dd копирует блоками по 512 байт. Можно явно указать правильный размер блока, но вообще, dd тут не место.
ОтветитьУдалитьА еще для полноты добавь примеры с dump/restore, rsync. А еще круче показать, как это делается на лету в zfs и hammer.
ОтветитьУдалить