为什么用expect脚本怎么执行登录不能使用rz sz

Using rz and sz under linux shell - Super User
to customize your list.
Super User is a question and answer site for computer enthusiasts and power users. J it only takes a minute:
Here's how it works:
Anybody can ask a question
Anybody can answer
The best answers are voted up and rise to the top
Anyone knowns how to use rz and sz under linux shell?
I can use it under sercurecrt, but not ubuntu shell.
Here is the screenshot.
migrated from
This question came from our site for professional and enthusiast programmers.
Ah, perhaps by typing the "rz" command at the console, perhaps you were trying to transfer a file via zmodem between two pc's directly from the console via a cross-over serial cable?
I've currently been trying to figure something like this out for myself, so will share what I've got, in-case it's what you were after.
I made two little scripts to help out:
script: "zsend"
DEV=/dev/ttyS0
stty -F $DEV 115200
sz $1 & $DEV & $DEV
script: "zrecv"
DEV=/dev/ttyS0
stty -F $DEV 115200
rz & $DEV & $DEV
Usage Example:
Copy these scripts onto both PCs.
Alter the "DEV" variable in each script to match your PC's serial device name (eg, for USB-serial ports, it might be "/dev/ttyUSB0")
On PC1, type: sudo zsend filename
On PC2, type: sudo zrecv
That's worked out for me.
to answer this question.
Not the answer you're looking for?
Browse other questions tagged
Super User works best with JavaScript enabled<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!LINUX命令(7)
一般来说,大多是通过客户端来进行远程的登陆和的,使用ssh登陆linux主机以后,如何能够快速的和本地机器进行文件的交互呢,也就是上传和下载文件到服务器和本地;
&& 与ssh有关的两个命令可以提供很方便的操作:
&& sz:将选定的文件发送(send)到本地机器
&& rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器(receive)
rz,sz是便是Linux/Unix同进行ZModem文件传输的命令行工具
windows端需要支持ZModem的telnet/ssh客户端(比如SecureCRT)
运行命令rz,即是接收文件,SecureCRT就会弹出文件选择对话框,选好文件之后关闭对话框,文件就会上传到当前目录
注意:单独用rz会有两个问题:上传中断、上传文件变化(md5不同),解决办法是上传是用rz -be,并且去掉弹出的对话框中“Upload files as ASCII”前的勾选。
-b binary 用binary的方式上传下载,不解释字符为ascii
-e 强制escape 所有控制字符,比如Ctrl&#43;x,DEL等
运行命令sz file1 file2就是发文件到windows上(保存的目录是可以配置) 比ftp命令方便多了,而且服务器不用再开FTP服务了
PS:Linux上rz/sz这两个小工具安装lrzsz-x.x.xx.rpm即可。
当然,还可以设置一下目录了:
在SecureCRT设置一下上传和下载的默认目录
options–&session options–&file transfer 下可以设置上传和下载的目录
剩下的你只要在用SecureCRT登陆linux终端的时候:
发送文件到客户端:sz filename
zmodem接收可以自行启动.
从客户端上传文件到linux服务端:
只要服务端执行 : rz
然后在 SecureCRT 里选文件发送,协议 zmodem
----------------
Linux下和Windows之间的文件传输工具rz/sz(lrz/lsz) 介绍
【什么是rz/sz (lsz/lrz)】
简单说就是,可以很方便地用这两个sz/rz工具,实现Linux下和Windows之间的文件传输(发送和接收),速度大概为10KB/s,适合中小文件。rz/sz 通过Zmodem协议传输数据。
【为什么要用rz/sz】
普通Linux和Windows之间的文件共享方法,主要有建立nfs实现文件共享,和tftp之类的方法,但是都很麻烦,而如果只是小文件(几十 K,几百K),那么直接用rz/sz,就显得极其地方便了。大文件的话,还是要考虑上面说得,其他的共享方法了,毕竟,rz/sz速度只有10K左右,传大文件会累死人的。。。
【如何使用】
(1)在Windows下,用SecureCRT(或者Windows自带的超级终端)连接Com端口到开发板,或者ssh等协议连接到Linux服务器上。
(2)在Linux端,了rz/sz (lrz/lsz)工具后(开发中,多数已经将编译好的rz/sz工具放到rootfs中了,普通的Linux系统,如果没有,可以下载,自己安装),就可以直接运行rz/sz,实现和Windows之间的文件传输了:
A、从windows中拷贝/下载文件到Linux(开发板):
运行rz后,会自动弹出WIndows下的文件选择对话框,选择对应文件后,添加,然后确定,就开始传输,将windows中的文件,拷贝到Linux中了。
B、将Linux中的文件拷贝到Windows中某个文件夹:
执行sz file_name 就可以将Linux当前文件夹下的文件file_name拷贝到Windows的对应目录中了,其中,Windows目录是由你当前运行的工具中设定的。
此处我用的是SecureCRT,具体的更改 rz上传/sz下载 的默认的路径的方法:
右键点击当前会话session -& Session Options -& Terminal -& Xmodem/Zmodem -&Directories :
Upload : 你要设置的路径
Download:你要设置的路径
我使用过的Linux命令之sz - 下载文件,无需ftp/sftp
本文链接:&& (转载请注明出处)
sz命令是利用ZModem协议来从Linux服务器传送文件到本地,一次可以传送一个或多个文件。相对应的从本地上传文件到Linux服务器,可以使用rz命令。参见《&》。
-a 以文本方式传输(ascii)。
-b 以二进制方式传输(binary)。
-e 对控制字符转义(escape),这可以保证文件传输正确。
-c command
-i command 在接收端(本地)执行命令,但我没有尝试成功。
如果能够确定所传输的文件是文本&#26684;式的,使用 sz -a files
如果是二进制文件,使用 sz -be files
下载完了之后文件在哪个地方呢?
SecureCRT中,选择菜单项“选项(O)”下的“会话选项(S)”,左边切到“Xmodem/Zmodem”,即可看到上传和下载目录设置,也可更改。默认上传目录为 C:\Program Files\SecureCRT\upload,下载目录为 C:\Program Files\SecureCRT\download。
但在Vista下,到C:\Program Files\SecureCRT\download去看的时候并没有找到下载的文件,搜索了一下发现它们在下面的目录中:C:\Users\***\AppData\Local\VirtualStore\Program Files\SecureCRT\download,其中***为用户名。
示例一 批量下载文本文件
本例演示了下载文本文件,比如c源代码。
[root@web src]#&ls *.c&
httptunnel_codec.c& s_agent2.c& s_conf.c& s_htserv.c& s_pop3.c&&& s_smtp.c&& s_tcpfwd.c& s_telnet.c& s_user.c& s_xort.c
iSurf.c&&&&&&&&&&&& s_agent.c&& s_ftp.c&& s_http.c&&& s_run.c&&&& s_socks.c& s_tcpgum.c& s_term.c&&& s_via3.c
proxycfg.c&&&&&&&&& s_bridge.c& s_host.c& s_mime.c&&& s_server.c& s_task.c&& s_tcphub.c& surf.c&&&&& s_via.c
[root@web src]#&sz -a *.c&
正在开始 zmodem 传输。 按 Ctrl&#43;C 取消。
正在传输 httptunnel_codec.c...
& 100%&&&&& 22 KB&&& 5 KB/s 00:00:04&&&&&& 0 错误
正在传输 iSurf.c...
& 100%&&&& 890 bytes& 890 bytes/s 00:00:01&&&&&& 0 错误
正在传输 proxycfg.c...
& 100%&&&&&& 1 KB&&& 1 KB/s 00:00:01&&&&&& 0 错误
正在传输 s_agent2.c...
& 100%&&&&&& 4 KB&&& 1 KB/s 00:00:03&&&&&& 0 错误
正在传输 s_agent.c...
& 100%&&&&&& 6 KB&&& 3 KB/s 00:00:02&&&&&& 0 错误
正在传输 s_bridge.c...
& 100%&&&&&& 6 KB&&& 0 KB/s 00:00:10&&&&&& 0 错误
& 100%&&&&&& 6 KB&&& 0 KB/s 00:00:10&&&&&& 0 错误
正在传输 s_conf.c...
& 100%&&&&&& 9 KB&&& 0 KB/s 00:00:41&&&&&& 0 错误
正在传输 s_ftp.c...
& 100%&&&&& 18 KB&&& 0 KB/s 00:04:26&&&&&& 0 错误
[root@web src]# **a32
-bash: **a32: command not found
[root@web src]#&
由于网络不稳定,被自动终止掉了。&
[root@web src]#&
[root@web src]#&
[root@web src]#&
[root@web src]#&sz -a *.c&&&&&&&&
正在开始 zmodem 传输。 按 Ctrl&#43;C 取消。
正在传输 httptunnel_codec.c...
& 100%&&&&& 22 KB&&& 2 KB/s 00:00:10&&&&&& 0 错误
正在传输 iSurf.c...
& 100%&&&& 890 bytes& 890 bytes/s 00:00:01&&&&&& 0 错误
正在传输 proxycfg.c...
& 100%&&&&&& 1 KB&&& 1 KB/s 00:00:01&&&&&& 0 错误
& 100%&&&&&& 1 KB&&& 1 KB/s 00:00:01&&&&&& 0 错误
正在传输 s_agent2.c...
& 100%&&&&&& 4 KB&&& 2 KB/s 00:00:02&&&&&& 0 错误
& 100%&&&&&& 4 KB&&& 2 KB/s 00:00:02&&&&&& 0 错误
正在传输 s_agent.c...
& 100%&&&&&& 6 KB&&& 6 KB/s 00:00:01&&&&&& 0 错误
正在传输 s_bridge.c...
& 100%&&&&&& 6 KB&&& 1 KB/s 00:00:04&&&&&& 0 错误
正在传输 s_conf.c...
& 100%&&&&&& 9 KB&&& 4 KB/s 00:00:02&&&&&& 0 错误
正在传输 s_ftp.c...
& 100%&&&&& 18 KB&&& 4 KB/s 00:00:04&&&&&& 0 错误
正在传输 s_host.c...
& 100%&&&&&& 3 KB&&& 1 KB/s 00:00:02&&&&&& 0 错误
正在传输 s_htserv.c...
& 100%&&&&&& 8 KB&&& 2 KB/s 00:00:04&&&&&& 0 错误
正在传输 s_http.c...
& 100%&&&&& 32 KB&&& 3 KB/s 00:00:09&&&&&& 0 错误
正在传输 s_mime.c...
& 100%&&&&&& 1 KB&&& 1 KB/s 00:00:01&&&&&& 0 错误
& 100%&&&&&& 1 KB&&& 1 KB/s 00:00:01&&&&&& 0 错误
正在传输 s_pop3.c...
& 100%&&&&&& 3 KB&&& 3 KB/s 00:00:01&&&&&& 0 错误
正在传输 s_run.c...
& 100%&&&& 900 bytes& 900 bytes/s 00:00:01&&&&&& 0 错误
正在传输 s_server.c...
& 100%&&&&&& 5 KB&&& 2 KB/s 00:00:02&&&&&& 0 错误
正在传输 s_smtp.c...
& 100%&&&& 990 bytes& 990 bytes/s 00:00:01&&&&&& 0 错误
正在传输 s_socks.c...
& 100%&&&&& 19 KB&& 19 KB/s 00:00:01&&&&&& 0 错误
正在传输 s_task.c...
& 100%&&&&&& 1 KB&&& 1 KB/s 00:00:01&&&&&& 0 错误
& 100%&&&&&& 1 KB&&& 1 KB/s 00:00:01&&&&&& 0 错误
正在传输 s_tcpfwd.c...
& 100%&&&&& 10 KB&&& 5 KB/s 00:00:02&&&&&& 0 错误
正在传输 s_tcpgum.c...
& 100%&&&&&& 8 KB&&& 4 KB/s 00:00:02&&&&&& 0 错误
正在传输 s_tcphub.c...
& 100%&&&&& 11 KB&& 11 KB/s 00:00:01&&&&&& 0 错误
正在传输 s_telnet.c...
& 100%&&&&&& 3 KB&&& 3 KB/s 00:00:01&&&&&& 0 错误
正在传输 s_term.c...
& 100%&&&&&& 7 KB&&& 7 KB/s 00:00:01&&&&&& 0 错误
正在传输 surf.c...
& 100%&&&&&& 2 KB&&& 2 KB/s 00:00:01&&&&&& 0 错误
正在传输 s_user.c...
& 100%&&&&&& 6 KB&&& 3 KB/s 00:00:02&&&&&& 0 错误
正在传输 s_via3.c...
& 100%&&&&&& 1 KB&&& 1 KB/s 00:00:01&&&&&& 0 错误
正在传输 s_via.c...
& 100%&&&&&& 5 KB&&& 2 KB/s 00:00:02&&&&&& 0 错误
正在传输 s_xort.c...
& 100%&&&&&& 4 KB&&& 4 KB/s 00:00:01&&&&&& 0 错误
奫root@web src]#
示例二 下载二进制文件
本例演示了下载二进制文件,先将前面的c源代码压缩到一个zip文件。
[root@web src]#&zip source.zip *.c&
& adding: httptunnel_codec.c (deflated 88%)
& adding: iSurf.c (deflated 58%)
& adding: proxycfg.c (deflated 56%)
& adding: s_agent2.c (deflated 69%)
& adding: s_agent.c (deflated 73%)
& adding: s_bridge.c (deflated 74%)
& adding: s_conf.c (deflated 74%)
& adding: s_ftp.c (deflated 79%)
& adding: s_host.c (deflated 73%)
& adding: s_htserv.c (deflated 76%)
& adding: s_http.c (deflated 75%)
& adding: s_mime.c (deflated 61%)
& adding: s_pop3.c (deflated 66%)
& adding: s_run.c (deflated 58%)
& adding: s_server.c (deflated 69%)
& adding: s_smtp.c (deflated 52%)
& adding: s_socks.c (deflated 79%)
& adding: s_task.c (deflated 65%)
& adding: s_tcpfwd.c (deflated 75%)
& adding: s_tcpgum.c (deflated 73%)
& adding: s_tcphub.c (deflated 75%)
& adding: s_telnet.c (deflated 65%)
& adding: s_term.c (deflated 72%)
& adding: surf.c (deflated 58%)
& adding: s_user.c (deflated 72%)
& adding: s_via3.c (deflated 52%)
& adding: s_via.c (deflated 71%)
& adding: s_xort.c (deflated 70%)
[root@web src]#&ls -l source.zip&
-rw-r--r-- 1 root root
21:37 source.zip
[root@web src]#&sz -be source.zip&
正在开始 zmodem 传输。 按 Ctrl&#43;C 取消。
正在传输 source.zip...
& 100%&&&&& 55 KB&&& 3 KB/s 00:00:15&&&&&& 0 错误
奜O[root@web src]#
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:3700155次
积分:36911
积分:36911
排名:第83名
原创:197篇
转载:1988篇
评论:398条
(13)(114)(86)(40)(43)(73)(15)(10)(17)(12)(6)(20)(27)(54)(71)(97)(74)(32)(2)(24)(21)(62)(60)(36)(23)(27)(46)(34)(76)(63)(121)(142)(74)(54)(120)(77)(42)(4)(12)(19)(1)(9)(15)(19)(18)(16)(31)(79)(68)expetc 脚本报‘spawn id exp6 not open while executing &expect eof&’错的有关问题
&来源:读书人网&【读书人网():综合教育门户网站】
expetc 脚本报‘spawn id exp6 not open while executing expect eof’错的问题先贴代码:#! /bin/bash#tra
expetc 脚本报‘spawn id exp6 not open while executing &expect eof&’错的问题先贴代码:#!&/bin/bash#transfile.sh&传文件到服务器上(支持多台服务器和指定IP)#读取服务器账号密码文件args=$#if&test&$args&==&0&&&&then&&&&&&&&echo&"请传参数"&&&&&&&&exit&&&&elif&test&$args&==&1&&&&&&&&then&&&&&&&&&&&&file=$1&&&&elif&test&$args&==&2&&&&&&&&then&&&&&&&&&&&&server=$1&&&&&&&&&&&&file=$2fiif&[&-d&$file&]&&&&then&&&&&&&&echo&'Sorry本脚本只支持单个文件上传!'&&&&&&&&exit&0ficat&/home/hwh/myroot/psw&|&while&read&linedo&&&&server1=`echo&$line&|&awk&'{print&$1}'`&&&&serverip=`echo&$line&|&awk&'{print&$2}'`&&&&username=`echo&$line&|&awk&'{print&$3}'`&&&&psw=`echo&$line&|&awk&'{print&$4}'`&&&&if&test&$args&==&2&&&&&&&&then&&&&&&&&/home/hwh/myroot/transfile.exp&$username&$psw&$serverip&$file&&&&&&&&break&&&&fi&&&&/home/hwh/myroot/transfile.exp&$username&$psw&$serverip&$filedone-------------------#!&/usr/bin/expect&-f#transfile.exp&&expect&单次/单个文件上传脚本set&username&[lindex&$argv&0]set&psw1&[lindex&$argv&1]append&psw&$psw1&"\n"set&srverip&[lindex&$argv&2]set&file&[lindex&$argv&3]set&timeout&-1spawn&scp&-P12258&$file&$username@$srverip:$fileexpect&{&&&&"(yes/no)?"&{&&&&&&&&send&"yes\n"&&&&&&&&expect&"password:"&{&&&&&&&&&&&&send&$psw&&&&&&&&}&&&&}&&&&"password:"&{&&&&&&&&send&$psw&&&&}}expect&eof--------------------执行后当最后一台服务器传完时报如下错误:expect:&spawn&id&exp6&not&open&&&&while&executing"expect&eof"&&&&(file&"/home/hwh/myroot/transfile.exp"&line&24)不明白。为什么,请教一下大牛们。。。。
[解决办法]应该是scp&-P12258&$file&$username@$srverip:$file这条命令没有成功执行(比如连接被拒绝,或者命令格式错误),或者没有进入交互界面(比如直接用ssh&key验证),导致expect无法与scp进程交互。你可以试试手动执行这条命令,看有什么效果。

我要回帖

更多关于 expect脚本如何执行 的文章

 

随机推荐