免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2001 | 回复: 7
打印 上一主题 下一主题

[SCO UNIX] 如何让上一条命令执行完才执行下一条命令? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-02-08 10:29 |只看该作者 |倒序浏览
我编了一个脚本程序,功能是从各远程主机中取回备份的数据

如下:
for i in 1 2 3 4 5 6 7 8 9 10
do
echo "正在处理主机[192.168.0.$i]的数据...\n"
(sleep 2
echo "root";
sleep 2
echo "rootpass";
sleep 2
echo "vt100\n";
sleep 4
echo "cd /data;tar cvf databak.tar * \n"
sleep 4
echo "compress  databak.tar \n"
sleep 4
#将生成的压缩数据传回备份机
echo "ftp2host\n"
sleep 2
echo "exit\n"
)|telnet 192.168.0.$i>;>;log.dat
echo "[主机192.168.0.$i]的数据已处理完毕!\n\n"

但现在有一个问题:就是各主机的数据有大有小,sleep的时间不好掌握,长了会使执行时间很长,短了命令来不及执行就退出了,能否增加些命令使命令执行完一条再执行下一条。请大侠们赐教!!!      

论坛徽章:
0
2 [报告]
发表于 2004-02-08 11:20 |只看该作者

如何让上一条命令执行完才执行下一条命令?

原帖由 "Jwing" 发表:
我编了一个脚本程序,功能是从各远程主机中取回备份的数据

如下:
for i in 1 2 3 4 5 6 7 8 9 10
do
echo "正在处理主机[192.168.0.$i]的数据...\n"
(sleep 2
echo "root";
sleep 2
echo "rootpass";
sleep 2
echo "vt100\n";
sleep 4
echo "cd /data;tar cvf databak.tar * \n"
sleep 4
echo "compress databak.tar \n"
.........



我不知道你的echo"root"是什么意思,这样可以在远程执行吗?
看你的shell意思是在多台远程主机执行相同操作后将结果ftp到本地机,不如使用rcp命令执行,这样rcp命令没有完成时是不会进行下一条的。

论坛徽章:
0
3 [报告]
发表于 2004-02-08 12:14 |只看该作者

如何让上一条命令执行完才执行下一条命令?

echo "cd /data;tar cvf databak.tar * \n"
sleep 4
echo "compress databak.tar \n"
sleep 4
#将生成的压缩数据传回备份机
echo "ftp2host\n"
sleep 2
echo "exit\n"

把上面那几句合并成一句

echo "cd /data;tar cvf databak.tar *;compress databak.tar;ftp2host;exit\n"

论坛徽章:
0
4 [报告]
发表于 2004-02-08 15:55 |只看该作者

如何让上一条命令执行完才执行下一条命令?

To:gjie
echo "root";  是输入用户名root
echo "root";  是root对应的密码
请指教如用rcp命令,应该如何改写我的Shell,我还要在远程主机执行打包和压缩命令,该如何处理?

论坛徽章:
0
5 [报告]
发表于 2004-02-08 15:59 |只看该作者

如何让上一条命令执行完才执行下一条命令?

To:zhaojinbo
我把几条命令分开写,是希望有足够的时间去执行命令(这段程序我也是从网上找到的),望赐教!!!

论坛徽章:
0
6 [报告]
发表于 2004-02-08 16:02 |只看该作者

如何让上一条命令执行完才执行下一条命令?

我的问题关键就是如何保证每台机的数据都能被打包和压缩,剩下的从各远程主机取回备份数据这个好处理(可用ftp命令编一个shell).

论坛徽章:
0
7 [报告]
发表于 2004-02-08 17:18 |只看该作者

如何让上一条命令执行完才执行下一条命令?

原帖由 "Jwing" 发表:
To:zhaojinbo
我把几条命令分开写,是希望有足够的时间去执行命令(这段程序我也是从网上找到的),望赐教!!!


将几条命令写成一行一并提交给远程主机的Shell,远程主机会一直将它们执行完。Telnet提前结束是因为提供输入的进程结束了。为了让输入进程不结束,可以在最后加上一句Yes,就像这样:
.
.
.
echo "tar.....;compress....;exit"
yes
)|telnet

论坛徽章:
0
8 [报告]
发表于 2004-02-08 21:15 |只看该作者

如何让上一条命令执行完才执行下一条命令?

原帖由 "zhaojinbo" 发表:


将几条命令写成一行一并提交给远程主机的Shell,远程主机会一直将它们执行完。Telnet提前结束是因为提供输入的进程结束了。为了让输入进程不结束,可以在最后加上一句Yes,就像这样:
.
.
.
echo "tar.....;c..........


好,让我明天回单位试一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP