如何使用sz来传输目录?

如何使用sz来传输目录?

我在 Server1 上的根目录 data/ 中有 100G 文件,我需要从这台远程计算机传输到另一台远程计算机 Server2。SCP 已禁用。我必须使用“sz”命令。这是我第一次使用此命令。

我需要先登录到 Server2,然后 ssh 到 Server1,然后发出“sz”命令。使用 sz 将 data/ 下的这些文件从 Server2 传输到 Server1 的正确格式是什么?

编辑

    martin@parser:/data/reviews/ad$ ssh -p 80 [email protected] "tar -cz /data/ping/2017-10-05" > test.gz
    Traceback (most recent call last):
      File "/opt/jumpserver/connect.py", line 877, in <module>
        main()
      File "/opt/jumpserver/connect.py", line 828, in main
    nav.try_connect()
  File "/opt/jumpserver/connect.py", line 614, in try_connect
    ssh_tty.connect()
  File "/opt/jumpserver/connect.py", line 459, in connect
    win_size = self.get_win_size()
  File "/opt/jumpserver/connect.py", line 320, in get_win_size
    x = fcntl.ioctl(sys.stdout.fileno(), TIOCGWINSZ, s)
IOError: [Errno 22] Invalid argument

答案1

SZ 并不是真正适合这个工作的工具。

最简单的方法是根本不使用 sz,而只是使用 SSH 作为管道。有很多变体,但其中一种方法是将文件压缩为数据流并将该流写入本地系统。这一切都可以通过 SSH 完成(压缩备份如下:

ssh [email protected] "tar -cz /data" > /path/to/local/filename.gz

如果你想利用压缩,但想要原始文件,你可以这样做

ssh [email protected] "tar -cz /data" | tar -xf  

它将把文件压缩成流,通过连接发送并解压缩。

相关内容