expect下使用rz-sz
rz和sz是lrzsz的提供的一个在xNIX下上传下载的工具。基于zmodem协议。但是不是所有ssh客户端都支持。比如putty, windows terminal都不支持。
但是mac下的iterm2是支持的。
https://github.com/intnet/iTerm2-rzszmodem
基本上就按照这个就可以了。我记得我之前也是这样做,然后就没有问题的,不过这次却完全不行,再小的文件都不行,使用 -e 参数也不行。
然后再ps看了下,进程确实在执行,但是就是等了好久也没有效果。
由于我自己一般因为都登录跳板机来进行的,而跳板机又都有MFA二次认证的,为了方便就写了一个expect脚本来进行了。
1 | alias jump="expect /Users/timo/.ssh/jump.sh" |
1 |
|
1 | # -*- coding: utf-8 -*- |
为了验证一下,那就手动ssh到跳板机试试,发现这次就可以正常rz sz了。那看来就是expect的问题,可我又必须用expect啊。
发现可以把expect脚本包装成sh脚本来执行,这样就可以了。
1 |
|
1 | alias jump="/Users/timo/.ssh/expect.sh /Users/timo/.ssh/jump.sh" |
然后再source一下,再测试一遍发现完全正常了。