免费注册 查看新帖 |

Chinaunix

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

能不能做出直接自动执行的脚本 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-30 11:45 |只看该作者 |倒序浏览
有2台主机,分别是solaris A 和rhel B

想脚本自动执行关机命令:
在A上的命令是 sync; init 5
B上执行的命令是 sync; init 0


能不能有什么办法,像批处理文件一样,做好放桌面上,点击运行就自动连接到两台主机,执行关机命令

目前是ssh连接,实在不行可以开telnet

现在就是用的 SecureCRT 自动登录,但是需要手工选择主机。用 SecureCRT,可以实现这个功能么。或者其他什么软件也可以。

论坛徽章:
0
2 [报告]
发表于 2009-10-30 12:32 |只看该作者
SCRT可以做到,达到你这个目的,写个极其简单的vbs或者perl就行。。。。。。。。

论坛徽章:
0
3 [报告]
发表于 2009-10-30 12:34 |只看该作者
原帖由 emperor 于 2009-10-30 12:32 发表
SCRT可以做到,达到你这个目的,写个极其简单的vbs或者perl就行。。。。。。。。


能不能给个例子,你说的这两个全不会啊  

论坛徽章:
0
4 [报告]
发表于 2009-10-30 12:54 |只看该作者
自行参考修改
点script--〉run。 调用下面这个vbs。。。。。。。
  1. '* date =2009-10-30

  2. ' § define §
  3. dim Tab0,Tab1
  4. dim usernameA,passwordA,usernameB,passwordB

  5. ' § init §
  6. usernameA=xxx
  7. passwordA=yyy
  8. usernameB=aaa
  9. passwordB=bbb

  10. ' § start §

  11. ' §login to SolarisA and shutdown §
  12. Set Tab0= crt.Session.ConnectInTab ("/ssh  " &SolarisA& " 22")
  13.   Tab0.Screen.WaitForString  "ogin: "
  14.   Tab0.Screen.send usernameA& chr(13)
  15.   Tab0.Screen.WaitForString  "sword: "
  16.   Tab0.Screen.send passwordA& chr(13)
  17.   Tab0.Screen.WaitForString  "# "
  18.   Tab0.Screen.send "sync; init 5"& chr(13)

  19. ' §login to SolarisB and shutdown  §
  20. Set Tab1= crt.Session.ConnectInTab ("/ssh  " &SolarisB& " 22")
  21.   Tab1.Screen.WaitForString  "ogin: "
  22.   Tab1.Screen.send usernameB& chr(13)
  23.   Tab1.Screen.WaitForString  "sword: "
  24.   Tab1.Screen.send passwordB& chr(13)
  25.   Tab0.Screen.WaitForString  "# "
  26.   Tab0.Screen.send "sync; init 0"& chr(13)
复制代码

论坛徽章:
0
5 [报告]
发表于 2009-10-30 14:52 |只看该作者

  1. #!/bin/bash

  2. HOSTLIST=("1.2.3.4|testa|123456|init 0" "5.6.7.8|testb|123456|init 5")

  3. SSHD_PORT=22
  4. SSH_ARGS="-oStrictHostKeyChecking=no  -oUserKnownHostsFile=/dev/null "

  5. for((i=0; i<=1; i++))
  6. do
  7.        HOSTNAME=$(echo ${HOSTLIST[i]}  | cut -d'|' -f1)
  8.        USERNAME=$(echo ${HOSTLIST[i]}  | cut -d'|' -f2)
  9.        PASS=$(echo ${HOSTLIST[i]}  | cut -d'|' -f3)
  10.        CMD=$(echo ${HOSTLIST[i]}  | cut -d'|' -f4)

  11. expect << EOF
  12. set timeout 120
  13. spawn ssh -p ${SSHD_PORT} ${SSH_ARGS} ${USERNAME}@${HOSTNAME}
  14. expect "*password: "
  15. send "${PASS}\r"
  16. expect ".*\@.*#"
  17. send "${CMD}\r"
  18. EOF

  19. done
复制代码

论坛徽章:
0
6 [报告]
发表于 2009-10-30 15:15 |只看该作者
原帖由 emperor 于 2009-10-30 12:54 发表
自行参考修改
点script--〉run。 调用下面这个vbs。。。。。。。
'* date =2009-10-30

' § define §
dim Tab0,Tab1
dim usernameA,passwordA,usernameB,passwordB

' § init §
usernameA=xxx ...


谢谢

有没有办法能够省略这一部:“点script--〉run”,就是放桌面上,鼠标一点就自动执行。

论坛徽章:
0
7 [报告]
发表于 2009-10-30 15:34 |只看该作者

回复 #6 不进一环 的帖子

当然有。vbs就可以实现。甚至你可以发到win的schedule里。这里仅给个提示:。。。。。

Set WShell = CreateObject("WScript.Shell")
sCmd="C:\Program Files\VanDyke Software\SecureCRT\SecureCRT.exe"
getPath = " /script xxx.vbs"
WShell.Run chr(34) & sCmd& chr(34) & getPath

论坛徽章:
0
8 [报告]
发表于 2009-11-04 20:50 |只看该作者
原帖由 emperor 于 2009-10-30 15:34 发表
当然有。vbs就可以实现。甚至你可以发到win的schedule里。这里仅给个提示:。。。。。

Set WShell = CreateObject("WScript.Shell"
sCmd="C:\Program Files\VanDyke Software\SecureCRT\SecureCRT.exe"
...



搞不懂vbs、js,太复杂了

用的批处理文件登陆,再执行 script

这个script也sct自己录制的

总算解决了问题

bat文件

---------------------------------------------
@E:\SecureCRT\SecureCRT.exe /T /SCRIPT e:\关机vbs\down.vbs /SSH2 root@1.1.1.1 /PASSWORD 123456


sct录制的, down.vbs
---------------------------------------------
#$language = "VBScript"
#$interface = "1.0"

crt.Screen.Synchronous = True

' This automatically generated script may need to be
' edited in order to work correctly.

Sub Main
        crt.Screen.WaitForString "# "
        crt.Screen.Send "sync; init 0" & chr(13)
End Sub

--------------------------------------------

论坛徽章:
0
9 [报告]
发表于 2009-11-04 22:08 |只看该作者

回复 #8 不进一环 的帖子

bat 让我不爽的就是从来都有个黑框直到程序结束
当然,在不追求效率的情况下
能用就是最大的成功,计算机应该是给人带来快乐地
用什么形式不是最重要的。。。。。。。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
10 [报告]
发表于 2009-11-04 23:34 |只看该作者
Perl 很容易可以做。
我把全套 Net::SSH:erl 都研究透了……
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP