【发布时间】:2012-04-16 01:24:04
【问题描述】:
使用Copying by NetCat 我正在尝试通过NetCat 通过网络复制文件。从控制台它工作得很好。首先我在目标机器上运行监听 netcat,然后在源机器上运行发送。
问题是它不能从源机器的脚本中工作:
ssh -f 用户@$desthost 'nc -l 1234 | tar xvf -> /dev/null &' #listening on destination host
tar cv /tmp/文件 | nc $desthost 1234 #发送到目标主机
我看到运行后端口 1234 仍然是打开的,并且套接字的状态是 TIME_WAIT。
如果你知道问题出在哪里,请帮帮我。
顺便说一句,复制后如何验证内容是否相同?
谢谢!
附录:
我发现了一件很奇怪的事情,与 screen 在目标工作上的相同实现可以工作,但不稳定,有时它不会复制文件。
ssh user@$desthost screen -dm -S test 'nc -l 1234 | tar xvf - ' #在目标主机上监听
也许超时有问题?
【问题讨论】:
-
你知道ssh已经提供了一个叫做scp的文件传输服务吗?
-
@Ben,谢谢你的评论,我对netcat感兴趣是因为它的速度
-
@com 您可以决定速度是您的首要任务,或者您可以决定功能(如成功验证、恢复部分传输等)是您的首要任务。如果您关心后一组中的内容,我会考虑 rsync(如果您更关心速度而不是身份验证或安全性,则 rsync over raw socket 而不是 rsync over ssh)。