题 通过SSH传输文件


我想在一些脚本上通过SSH使用文件传输。我读过它可以用ssh来代替。我应该在哪里开始阅读?


9
2018-03-09 19:33




你为什么提起焦油? - Zoredache
tar是通过SSH复制文件的最快方法。在复制大量小文件时,scp和rsync有很多协议开销。 - Justin
@Justin,当然tar的假设是你将拥有可靠的连接。如果原始性能无关紧要,那么通常最好坚持使用更常见和简单的解决方案,如scp / rsync。 - Zoredache
是吧? tar over ssh并不比scp或rsync差。 rsync更好的唯一方面是它可以让你恢复。如果连接不可靠,可能仍然值得首先尝试tar over ssh,然后使用rsync完成传输。 - Justin
@Justin,这将制作一个相当复杂的剧本。也许我们应该从一些更基本的东西开始。 - John Gardeniers


答案:


要通过ssh进行文件传输,你可以

  • 使用 SCP
    • scp -r /srcdir/ user@remotehost:/destdir/
  • 使用 rsync的 在ssh上(参见-e参数)
    • rsync -e ssh -a /srcdir/ user@remotehost:/destdir/
  • 使用一些通过stdin / out传输数据的工具(柏油的cpio等)
    • cd /sourcedir; tar -c . | ssh username@remotehost bash 'cd /dstdir; tar -x
  • 通过安装文件系统 SSHFS (如果您的系统支持保险丝)

23
2018-03-09 19:40



纯粹的真棒,谢谢! - Fernando Briano
我经常使用这三个;我使用哪一个取决于具体情况。 - reinierpost


O'Reilly有一本书 - SSH,The Secure Shell:The Definitive Guide - 如果你谷歌的话,有很多参考,购买它的地方,并在线查看。


3
2018-03-09 19:39



当你被投票并且没有评论让你知道为什么时,一定要喜欢它。他问到哪里开始阅读 - 这可以在网上和书店购买。这是ssh的一个很好的参考。 - Kevin K
我认为这也是错的。既然你实际回答了这个问题并且接受了答案(迄今为止已经投票了15次),为什么你被投票失败(两次)是一个通用的如何通过ssh复制文件而没有参考从哪里开始阅读。我要投票给你,只是为了试图纠正这种情况。不要让他们让你失望。 - Richard Holloway


我不是专家,但我想 http://en.wikipedia.org/wiki/Secure_copy 是你想要的。


1
2018-03-09 19:36





对于ssh上的tar,你可以使用ssh转发stdin和stdout的事实。所以你可以做到

ssh server 'tar czf - /some/dir/' > tarfile.tar.gz

并在本地计算机上备份。


0
2018-03-11 13:55