1 任务内容: 编写脚本自动登录远程服务器执行下 uptime 并将结果邮件到你的邮箱。
2 任务的难度: 两星
3 任务的目的: 此交互式脚本对管理大量远程服务器(以telnet或者ssh登录的设备如交换机,路由器等),执行某些固定命令有帮助。
4 任务所涉及的软件:软件先安装 expect 使用 spawn 登录远程服务器。使用send/expect对来完成自动远程执行相关命令。
5 任务将大致消耗的时间: 1天
[两星]自动登录远程服务器执行特定任务的脚本
- oneleaf
- 论坛管理员
- 帖子: 10446
- 注册时间: 2005-03-27 0:06
- 系统: Ubuntu 12.04
- 月下叹逍遥
- 论坛版主
- 帖子: 33994
- 注册时间: 2010-10-07 14:23
- 系统: Archdows10
- 来自: 某系某星某洲某国某省某市
- 联系:
- qy117121
- 论坛版主
- 帖子: 50556
- 注册时间: 2007-12-14 13:40
- 系统: Winbuntu
- 来自: 志虚国乌由市
- 联系:
Re: [两星]自动登录远程服务器执行特定任务的脚本
某表示也不会的说
渠月 · QY
本人只会灌水,不负责回答问题
无聊可以点一下→ http://u.nu/ubuntu
Ubuntu 20.04 快速设置指南,请配合浏浏览器自动翻译使用
邮箱 chuan@ubuntu.org.cn
本人只会灌水,不负责回答问题
无聊可以点一下→ http://u.nu/ubuntu
Ubuntu 20.04 快速设置指南,请配合浏浏览器自动翻译使用
邮箱 chuan@ubuntu.org.cn
-
- 帖子: 319
- 注册时间: 2009-01-30 18:18
- 来自: 湖北十堰
Re: [两星]自动登录远程服务器执行特定任务的脚本
先安装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之
然后你可以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知识
-
- 帖子: 61
- 注册时间: 2010-04-29 22:00
- 系统: Gentoo Linux ~amd64
- 联系:
Re: [两星]自动登录远程服务器执行特定任务的脚本
send exit\rwangzc2009 写了:先安装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之
后直接用 expect 比较好
- 脑袋总进水
- 帖子: 97
- 注册时间: 2010-10-21 18:22
Re: [两星]自动登录远程服务器执行特定任务的脚本
代码: 全选
#!/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