Linux下利用Crond和Expect定时登陆交换机执行任务

1、Expect是一个免费的编程工具语言,用来实现自动和交互式任务进行通信,,而无需人的干预。expect等待输出中输出特定的字符,通常是一个提示符,然后发送特定的响应。例:在/root下建立test.exp,执行命令:expect /root/test.exp#!/usr/bin/expect -f#这一行告诉操作系统脚本里的代码使用那一个shell来执行。这里的expect其实和linux下的#bash、windows下的cmd是一类东西。 #注意:这一行需要在脚本的第一行。set timeout 10#设置默认超时时间(秒),如果在给定的时间内没有输入,则会超时并返回一个默认的响应。#file name: test.exp#Usages: shutdown ports#Version: v1.1#By Create mark#Date: 2013-3-6spawn telnet 172.21.1.1

#spawn是进入expect环境后才可以执行的expect内部命令,如果没有装expect或者直接在默认的SHELL下执行是找不到spawn命令的。它主要的功能是给ssh运行进程加个壳,用来传递交互指令。expect “login:”#这里的expect也是expect的一个内部命令,expect的shell命令和内部命令是一样的,但不是一个功能。判断上次输出结果里是否包含“login:”的字符串,如果有则立即返回,否则就等待一段时间后返回,这里等待时长就是前面设置的10秒

send “用户名\r”#执行交互动作,与手工输入密码的动作等效。

expect “password”send “密码\r”#sleep 1000send “enable ports 1:6\r”send “exit\r”send “y\r”expect eofexit

你不勇敢,没人替你坚强!

Linux下利用Crond和Expect定时登陆交换机执行任务

相关文章:

你感兴趣的文章:

标签云: