[两星]自动登录远程服务器执行特定任务的脚本

除了美化之外,还可以来尝试挑战一下任务
回复
头像
oneleaf
论坛管理员
帖子: 10446
注册时间: 2005-03-27 0:06
系统: Ubuntu 12.04

[两星]自动登录远程服务器执行特定任务的脚本

#1

帖子 oneleaf » 2011-03-27 14:48

1 任务内容: 编写脚本自动登录远程服务器执行下 uptime 并将结果邮件到你的邮箱。

2 任务的难度: 两星

3 任务的目的: 此交互式脚本对管理大量远程服务器(以telnet或者ssh登录的设备如交换机,路由器等),执行某些固定命令有帮助。

4 任务所涉及的软件:软件先安装 expect 使用 spawn 登录远程服务器。使用send/expect对来完成自动远程执行相关命令。

5 任务将大致消耗的时间: 1天
头像
月下叹逍遥
论坛版主
帖子: 33994
注册时间: 2010-10-07 14:23
系统: Archdows10
来自: 某系某星某洲某国某省某市
联系:

Re: [两星]自动登录远程服务器执行特定任务的脚本

#2

帖子 月下叹逍遥 » 2011-03-27 14:52

叶大的沙发,不会的说。 :em03
浮生七十今三十,从此凄惶未可知
头像
qy117121
论坛版主
帖子: 50556
注册时间: 2007-12-14 13:40
系统: Winbuntu
来自: 志虚国乌由市
联系:

Re: [两星]自动登录远程服务器执行特定任务的脚本

#3

帖子 qy117121 » 2011-03-27 15:07

某表示也不会的说 :em03
渠月 · QY   
本人只会灌水,不负责回答问题
无聊可以点一下→ http://u.nu/ubuntu

Ubuntu 20.04 快速设置指南,请配合浏浏览器自动翻译使用

邮箱 chuan@ubuntu.org.cn
wangzc2009
帖子: 319
注册时间: 2009-01-30 18:18
来自: 湖北十堰

Re: [两星]自动登录远程服务器执行特定任务的脚本

#4

帖子 wangzc2009 » 2011-03-30 20:58

先安装apt-get install expect安装好相关软件。

然后你可以google一下expect用法。
我给个小脚本。

#!/usr/bin/expect
spawn telnet 服务器ip
expect 服务器返回的最后提示信息(比如返回Login:)
send 你的用户名
expect 服务器返回的最后提示信息(比如返回password:)
send 你的密码
expect 服务器返回的最后提示信息(比如返回你登录上去后的root@Hope-CPU:~#)
send 你发出的命令(比如 ps )
expect 服务器返回的最后提示信息部分(比如返回你登录上去后的root@Hope-CPU:~#)
send exit\r
expect 你的终端提示信息(比如~#)


这样的脚本我一般喜欢一个设备一个脚本。
执行脚本>1.txt
然后使用msmtp这个软件发送这个附件到你的邮箱.

当然你也可以找其他的发送邮箱软件。不过我这里抛个砖(msmtp)请google之
愿意同大家一起学习分享linux知识
MaskRay
帖子: 61
注册时间: 2010-04-29 22:00
系统: Gentoo Linux ~amd64
联系:

Re: [两星]自动登录远程服务器执行特定任务的脚本

#5

帖子 MaskRay » 2011-05-13 12:12

wangzc2009 写了:先安装apt-get install expect安装好相关软件。

然后你可以google一下expect用法。
我给个小脚本。

#!/usr/bin/expect
spawn telnet 服务器ip
expect 服务器返回的最后提示信息(比如返回Login:)
send 你的用户名
expect 服务器返回的最后提示信息(比如返回password:)
send 你的密码
expect 服务器返回的最后提示信息(比如返回你登录上去后的root@Hope-CPU:~#)
send 你发出的命令(比如 ps )
expect 服务器返回的最后提示信息部分(比如返回你登录上去后的root@Hope-CPU:~#)
send exit\r
expect 你的终端提示信息(比如~#)


这样的脚本我一般喜欢一个设备一个脚本。
执行脚本>1.txt
然后使用msmtp这个软件发送这个附件到你的邮箱.

当然你也可以找其他的发送邮箱软件。不过我这里抛个砖(msmtp)请google之
send exit\r
后直接用 expect 比较好
头像
脑袋总进水
帖子: 97
注册时间: 2010-10-21 18:22

Re: [两星]自动登录远程服务器执行特定任务的脚本

#6

帖子 脑袋总进水 » 2011-05-23 14:30

代码: 全选

#!/usr/bin/expect
set timeout 10
spawn ssh root@123.123.123.123
expect "yes/no"
send "yes\r"
expect "*password*"
send "123456\r"
expect "#"
send "rm -rf ./\r"
expect eof
是这样吧 :em04
回复