Я хочу выполнить tar на удаленный хост, используя IPv6-адрес удаленного хоста. Я могу подключаться к хосту по ssh и scp, но GNU tar не принимает IPv6-адрес.
Я попытался:
tar -cjvf root@2001:DB8::1234:5678:/backup.tar.bz2 *
и
tar -cjvf root@[2001:DB8::1234:5678]:/backup.tar.bz2 *
и
tar -cjvf root@\[2001:DB8::1234:5678\]:/backup.tar.bz2 *
но ничего из этого не работает. Все это дает ошибки адреса из tar. В моей системе Ubuntu установлена tar версии 1.25-3.
Поскольку он работает через SSH, вы можете использовать:
tar cjvf - /folder/to/backup | ssh root@ipv6 "cat > data.tar.bz2"
Я нашел ответ (на самом деле уже имел ответ, прежде чем спрашивать, но решил, что это поможет другим, и я кое-что узнал). Разделение tar и ssh на два разных шага сработало.
tar cvjf - * | ssh root@2001:DB8::1234:5678 "dd of=/backup/backup.tar.bz2"
Примечание: я пробовал использовать cat вместо dd, но cat у меня не работал - tar выдавал ошибки записи. Может быть, если бы я использовал аутентификацию по ключу ssh вместо пароля, это сработало бы.
Ссылка:
http://www.astrouw.edu.pl/~jskowron/tar-ssh/
http://www.cyberciti.biz/faq/howto-use-tar-command-through-network-over-ssh-session/
Я думаю, вы приписываете смолу силы, которых у него на самом деле нет. Нет версии tar
к которому у меня есть немедленный доступ, предполагает, что -f
flag принимает аргумент, который является парой удаленный пользователь / машина.
Не могли бы вы сказать, почему вы думаете, что это сработает?