忘记密码   免费注册 查看新帖 | 论坛精华区
ChinaUnix.net
  平台论坛 博客 微博 读书 人才 精华 文库 自测 | 频道操作系统 开发 数据库 存储 服务器 网络 IT新闻 Linux 下载 Power用户组
最近访问板块 发新帖
查看: 5640 | 回复: 30

shell脚本问题 [复制链接]
更多

Rank: 1

帖子
520
主题
45
精华
0
可用积分
508
专家积分
0
在线时间
453 小时
注册时间
2007-05-23
最后登录
2011-11-07
论坛徽章:
0
发表于 2008-11-19 11:38:11 |显示全部楼层
15可用积分
#! /bin/sh
cd /root
top -n 1 >> cpu
这个脚本单独可以执行成功,但是放在crontab下
* */1 * * * sh top.sh
执行后CPU那个文件出来,可是里面是空的,当前目录下的,用户是root。

还一个scp.sh的脚本
#!/usr/bin/expect
exec /bin/cat </dev/null >/root/.ssh/known_hosts
spawn scp sql.sql root@192.168.1.190:/tmp/
expect "*(yes/no)?"
send "yes\r"
expect "*password:"
send "123456\r"
expect eof
不清楚那写错了,清高人指教下,运行后没用scp的成功进度,当然那边的机器上也没显示到这个文件
谢谢各位大虾

最佳答案

ynchnluiti 查看完整内容

chmod +x scp.sh ./scp.sh

Rank: 8Rank: 8

帖子
3858
主题
2
精华
0
可用积分
20938
专家积分
396
在线时间
6194 小时
注册时间
2003-08-29
最后登录
2012-02-07
论坛徽章:
0
发表于 2008-11-19 11:38:12 |显示全部楼层
原帖由 tingfengmanbu 于 2008-11-19 14:41 发表

我改成这样了。。
结果还是一样。。
[root@localhost opt]# sh -x scp.sh
+ exec /bin/cat

chmod +x scp.sh
./scp.sh
天行健,君子以自强不息
发奋忘食,乐以忘优,不知老之将至
温故而知新

Rank: 1

帖子
520
主题
45
精华
0
可用积分
508
专家积分
0
在线时间
453 小时
注册时间
2007-05-23
最后登录
2011-11-07
论坛徽章:
0
发表于 2008-11-19 11:51:44 |显示全部楼层
没人么。。。怎么会这样。。。

Rank: 3Rank: 3

帖子
905
主题
3
精华
0
可用积分
2411
专家积分
15
在线时间
3955 小时
注册时间
2007-04-13
最后登录
2011-12-15
论坛徽章:
0
发表于 2008-11-19 12:14:57 |显示全部楼层
1.  top -b -n 1
2.   /bin/cat /dev/null >/root/.ssh/known_hosts

Rank: 1

帖子
520
主题
45
精华
0
可用积分
508
专家积分
0
在线时间
453 小时
注册时间
2007-05-23
最后登录
2011-11-07
论坛徽章:
0
发表于 2008-11-19 12:35:00 |显示全部楼层
原帖由 merlin852 于 2008-11-19 12:14 发表
1.  top -b -n 1
2.   /bin/cat /dev/null >/root/.ssh/known_hosts


这个我也解决了,和你的不大一样
#! /bin/sh
TERM=linux
expect TERM
top -b -n 1 >> cpu
我这么写的,然后放进去就可以了,我现在很着急想知道SCP那个怎么写,朋友帮个忙吧,谢谢了

Rank: 3Rank: 3

帖子
905
主题
3
精华
0
可用积分
2411
专家积分
15
在线时间
3955 小时
注册时间
2007-04-13
最后登录
2011-12-15
论坛徽章:
0
发表于 2008-11-19 12:51:28 |显示全部楼层
\r 换成^M(CTRL+M)或\n试试

Rank: 8Rank: 8

帖子
3858
主题
2
精华
0
可用积分
20938
专家积分
396
在线时间
6194 小时
注册时间
2003-08-29
最后登录
2012-02-07
论坛徽章:
0
发表于 2008-11-19 13:22:43 |显示全部楼层
#!/usr/bin/expect
#exec /bin/cat </dev/null >/root/.ssh/known_hosts
spawn scp sql.sql root@192.168.1.190:/tmp/
expect "*(yes/no)?"
send "yes\r"
expect "*password:"
send "123456\r"
expect eof[code][/code]
注释掉exec那句,试试。不行的话手动执行scp看看都有哪些提示。
天行健,君子以自强不息
发奋忘食,乐以忘优,不知老之将至
温故而知新

Rank: 1

帖子
520
主题
45
精华
0
可用积分
508
专家积分
0
在线时间
453 小时
注册时间
2007-05-23
最后登录
2011-11-07
论坛徽章:
0
发表于 2008-11-19 13:34:48 |显示全部楼层
原帖由 ynchnluiti 于 2008-11-19 13:22 发表
#!/usr/bin/expect
#exec /bin/cat /root/.ssh/known_hosts
spawn scp sql.sql root@192.168.1.190:/tmp/
expect "*(yes/no)?"
send "yes\r"
expect "*password:"
send "123456\r"
expect eof
注释掉ex ...

注释掉不行,执行时出现错误
[root@localhost opt]# sh scp.sh
scp.sh: line 3: spawn: command not found
couldn't read file "*(yes/no)?": no such file or directory
scp.sh: line 5: send: command not found
couldn't read file "*password:": no such file or directory
scp.sh: line 7: send: command not found
couldn't read file "eof": no such file or directory

Rank: 1

帖子
520
主题
45
精华
0
可用积分
508
专家积分
0
在线时间
453 小时
注册时间
2007-05-23
最后登录
2011-11-07
论坛徽章:
0
发表于 2008-11-19 13:36:32 |显示全部楼层
原帖由 merlin852 于 2008-11-19 12:51 发表
\r 换成^M(CTRL+M)或\n试试

换成^M和\n和之前一样,没信息。。
手动SCP可以成功的。

Rank: 8Rank: 8

帖子
3858
主题
2
精华
0
可用积分
20938
专家积分
396
在线时间
6194 小时
注册时间
2003-08-29
最后登录
2012-02-07
论坛徽章:
0
发表于 2008-11-19 13:42:32 |显示全部楼层
原帖由 tingfengmanbu 于 2008-11-19 13:34 发表

注释掉不行,执行时出现错误
[root@localhost opt]# sh scp.sh
scp.sh: line 3: spawn: command not found
couldn't read file "*(yes/no)?": no such file or directory
scp.sh: line 5: send: command  ...


我这里有没有"exec /bin/cat </dev/null >/root/.ssh/known_hosts"都可以。有的话会提示
The authenticity of host '192.168.10.73 (192.168.10.73)' can't be established.
....

不去掉这句和手动执行有提示信息吗?
天行健,君子以自强不息
发奋忘食,乐以忘优,不知老之将至
温故而知新
您需要登录后才可以回帖 登录 | 注册

北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP