Назад | Перейти на главную страницу

Отправка tarball с сервера unix на сервер windows через SSH

В прошлой жизни в качестве администратора unix я часто передавал файлы удаленно, тарируя их на стандартный вывод и передавая этот вывод через SSH. Иногда я помещал «tar -xfp -» на другом конце канала как способ передачи файлов с разрешениями. Сегодня я вернулся к этой стратегии, за исключением двух гаечных ключей. Во-первых, я копировал на машину с Windows, а во-вторых, я не мог использовать ssh как root на сервере, для которого выполнялось резервное копирование. Sudo работает только с TTY, поэтому вход в мою учетную запись nynpriviledged не работал.

В конце концов, кто-то нашел пароль root и обнаружил, что вход в систему root разрешен. Так что мне очень легко удалось создать резервную копию:

c:\> plink -batch -pw SECRET root@someServer tar --exclude=/sys --exclude=/dev --exclude=/proc -cjvvf - / > file.tar.bz2

Однако, поскольку машина с Windows запускает winsshd, я хочу знать, можно ли вытащить tarball из окна unix в окно Windows вместо того, чтобы нажимать его. Я попробовал следующую команду:

tar --exclude=/dev --exclude=/sys --exclude=/proc -cjf - / | ssh dearingj@svn.wunderman-review.com "type con > d:\foo.tar.bz2"

Это приводит к тому, что файл создается на компьютере с Windows, но данные не записываются. Есть ли способ сделать это так, как я хочу?

Есть ли причина, по которой вы не используете scp? Учитывая, что у вас есть root-доступ на машине unix, похоже, вы сможете чертовски скипировать что угодно. Вы должны иметь возможность использовать ssh в поле unix, введите команду:

tar --exclude=/sys --exclude=/dev --exclude=/proc -cjvvf - / > ~/file.tar.bz2

Затем в окне Windows используйте:

scp root@someServer:~/file.tar.bz2 .
(password prompt)