想要定时自动执行远程服务器或者路由器上的命令,重启动呀,定时开关某个interface什么的,有些麻烦,teraterm给我们提供了宏,也提供了一个驻守在内存中可以定时执行的LogMeTT程序。最关键的是它是免费的。
 
其实宏的编写很简单,也不需要都了解,只需要把需要用的了解就行了。
 
举一个实例说明简单用法。
 
宏里面的所有地方是分大小写的,这对Windows用户需要特别注意,虽然该宏在Windows机器上执行。这是一个登陆Windows telnet服务器的宏。
 
编写好了以后,可以在Windows的命令行下执行,需要制定完全目录,
C:\Program Files\teraterm\ttpmacro login.ttl
就可以执行,ttl扩展名是teraterm宏文件,把这个写成一个cmd文件,放在task计划任务里面就可以定时执行了。
 
;  Telnet login
; open Tera Term
;   command line = 'TERATERM myhost.mydomain' (telnet)
connect '127.0.0.1:23 /nossh /T=1'
; 连接到IP地址为本身的环回接口上,不是用ssh,t=1一般默认使用
; set username
UsernamePrompt = 'login:'
; UsernamePrompt是一个变量,会在下面调用
Username = 'apc'
; 用户名为apc,如果是域用户,需要domain/apc
PasswordPrompt = 'password:'
Prompt = 'C:\Users\apc>'
; 这是apc用户登录后的提示符
; get password from file
getpassword 'password.dat' 'mypassword' Password
; password.dat文件最开始使用是不存在的,当第一次执行宏的时候,会提示你输入密码,就会把该密码存入该文件,并加密密码,你如果用记事本打开该文件,就会发现密码和你输入的不相同,免得被别人看见密码了。
; login
wait   UsernamePrompt
; 等待服务器端回应login:,这个longin:是放在UsernamePrompt变量里的,在这里调用,“longin:”是Windows telnet server的提示,如果进入思科路由器呀,防火墙呀需要根据自己的情况修改,大小写是敏感的哦。
sendln Username
; 把存在变量里的apc掉出来,发送到服务器端。
wait   PasswordPrompt
; 等服务器端返回password:的提示,这里的p是小写哦,不过最好拷贝,不会出错的。
sendln Password
; 调用password.dat文件的密码,还原后送到服务器端
; OK, auto login complete.
wait Prompt
; 等待登陆成功,返回C:\Users\apc>这样的提示
sendln 'dir'
; 这个是Windows的cmd最常用的命令了,不用多说了
sendln 'exit'
; 最后一定要记得退出,不然一直占用这个线程,服务器端也占着,如果不超时,你就麻烦了,以后自己都进不去了。