出于网络安全性的考虑,公司内部服务器访问,使用的是kerbrose+堡垒机。日常访问线上的服务器大致的步骤,先登录kerbrose获取票据,再登录堡垒机,再选择要登录的服务器完成最终登录。久而久之,使用mac+iterm每次都要重复上述步骤,对工作效率有很大的影响。考虑自动化的方案,在不能通过运维渠道开启绿色通道的情况下,我们只能自给自足了。
利用applescript写一个脚本mac脚本,完成我们的目的。AppleScript是Mac OS X内置的一种功能强大的脚本语言,使用 AppleScript 的目的是把一些重复繁琐并且耗费时间的任务自动化。初次接触,让我想起了windows下的vbscript脚本,简单高效。虽然丧失了跨平台性,但是在自己专属的平台上代码效率可以达到极致。
由于我使用的shell终端是iterm,粘一下自动操作iterm完成登录的自动化操作。
简单介绍一下脚本前两行设置变量,set 变量 to 变量值。tell呼气mac的application,这里选择的是"iterm",其他应用同理,比如"Finder"。开启一个新的会话,在iterm中创建一个新的session,然后按照一下步骤模拟操作。简单吧~
AppleScript 这种脚本语言本身尽可能使用平实的英语作为语法来让代码特别容易理解和阅读。AppleScript 的大多数命令会位于 Tell 命令块内,它叫 “Tell 命令块” 是由于你在“告诉”应用程序你 想它做些什么。你必须要 以 “end tell” 命令来结束这个 Tell 命令块。
machine_ip 我选择外部传入具体登录的服务器地址,这样可以参数配置需要登录的服务器,applescript外部接收参数,使用的是on run的handler的函数。
至此完成了脚本核心内容,applescript脚本的执行是通过osascript命令进行,为了方便使用可以通alias别名的方式简化操作。
AppleScript 的一个优点是你不必是一个天才程序员才能使用它,事实上你甚至不需要太多有任何编程的经验,感兴趣了?那就尝试一下吧~