08 Фев

tar’им наружу

Сегодня была вот какая ситуация — необходимо было одному анониму за анонимно-зеленые доллары перенести несколько десятков сайтов на новый сервер. Никаких проблем. Но один из его сайтов весил 58Гб, а места на винте старого сервера осталось всего 20Гб. Причем столько весят много тыщ картинок. Можно догадаться, что если переносить любым scp или подобным способом, это неблагодарное занятие разрастется на несколько дней, да и ошибок не избежать бывает на канале (сервера в разных ДЦ и странах).
Как правило, перед переносом следует запаковать директории в один файлик и его уже переносить, так и правильно и быстро. Но тут, такое с таким объемом провернуть как бы не получается.
Что делать?

И опять наш любимый linux все нам предоставил на блюдечке, осталось в рот положить, да разжевать.

И так, запаковываем файлы сразу на удаленный сервер

tar zcvfp - /var/www/user/data/www/site | ssh user@remote_server "dd of=/var/www/site.tar.gz"

(мне больше по душе вариант с dd, но никто и cat не запрещает)

Еще вариант:
Запаковываем с удалённого сервера на локальный:

ssh user@remote_server "tar zcvfp - /var/www/user/data/www/site" |dd of=/var/www/site.tar.gz

В итоге, файл запаковывается и мгновенно летит в пайп на удаленный сервер. То есть, удаленный сервер получает одним файлом все, что сократит нам нервы и время в 1000 раз.