在过去的一段时间,作为unixpipe理员,我经常通过将它们定制到通过SSH输出的stdout和pipe道来远程传输文件。 有时候,我在pipe道的另一端放置了一个“tar -xfp – ”作为传输文件的权限。 今天我重新审视了这个策略,除了有两个猴子扳手。 我正在复制到Windows机器上的拳头,第二个是我不能ssh作为根备份到我备份的服务器。 Sudo只能通过TTY工作,因此我的nnpriviledged帐户无法工作。
最后,有人find了root密码,并发现允许使用基于密码的rootlogin。 所以我很容易创build备份:
c:\> plink -batch -pw SECRET root@someServer tar --exclude=/sys --exclude=/dev --exclude=/proc -cjvvf - / > file.tar.bz2
但是,由于Windows机器运行winsshd,我想知道是否有可能从unix框拉到tar包,而不是推它。 我试过的命令是:
tar --exclude=/dev --exclude=/sys --exclude=/proc -cjf - / | ssh [email protected] "type con > d:\foo.tar.bz2"
这导致在Windows机器上创build文件,但没有写入数据。 有没有办法按照我想要的方式去做?
有没有原因你不使用scp ? 鉴于你有unix机器上的root访问权限,似乎你应该能够在任何东西附近scp。 你应该能够进入unix框ssh,发出命令:
tar --exclude=/sys --exclude=/dev --exclude=/proc -cjvvf - / > ~/file.tar.bz2
然后在窗口框中,使用:
scp root@someServer:~/file.tar.bz2 . (password prompt)