交互式shell编程利器expect
来源:互联网 发布:ubuntu删除一类文件 编辑:程序博客网 时间:2024/05/17 05:15
手里有几台Linux服务器需要经常添加用户,每次都要登录到相应的机器上去添加,特别麻烦。于是想,可不可以在一台机器上写一个脚本来远程管理其它服务器呢?
目标首先瞄准了我熟悉的PHP-CLI,它有一个开发中的模块ssh2,可以完成相应的功能。这个不想说了,因为用了半天都不行,Bug还太多,建议大家如非必要还是不要用这个模块的好。
没了PHP,很迷茫,然后很幸运地发现了expect。expect是交互式shell编程的利器,可以根据返回值来确定下面发送什么命令,特别好用。我把自己编写的远程增加用户的shell跟大家分享下(需要机器装有expect,没有的自己装吧),脚本如下:
#!/usr/bin/expect#脚本第一个参数是远程服务器IPset IP [lindex $argv 0]#远程服务器用户名(通常用root)set USER [lindex $argv 1]#远程服务器用户名的密码set PASSWD [lindex $argv 2]#添加的新用户set Nuser [lindex $argv 3]#新用户的密码set Npasswd [lindex $argv 4]#用spawn启动一个ssh客户端spawn ssh -l $USER $IP#如果是第一次连接,要保存密钥再输入密码,如果不是第一次连接则输入密码expect {"yes/no" { send "yes/r"; exp_continue }"password:" { send "$PASSWD/r" }}#如果不是root,要expect "$",下面不讲了,很简单expect "*#"send "useradd -s /bin/sh -d /home/$Nuser $Nuser/r"expect "*#"send "passwd $Nuser/r"expect "*password:"send "$Npasswd/r"expect "*password:"send "$Npasswd/r"expect "*#"send "exit/r"
- 交互式shell编程利器expect
- 交互式编程学习-expect
- Linux shell 交互式编程、TCL/TK 和 Expect 编译与安装、expect 编程
- Linux shell 交互式编程、TCL/TK 和 Expect 编译与安装、expect 编程
- Shell中使用交互式语言Expect
- 用expect写交互式shell脚本之expect 执行顺序
- shell编程expect
- expect 非交互式sftp
- expect 交互式 scp 文件
- shell编程expect的几个应用实例
- 交互式Shell
- expect实现交互式密码修改
- 交互式脚本,expect用法小结
- 自动交互式脚本--expect简介
- shell expect
- 交互式编程
- scala学习笔记二----交互式shell编程使用
- expect编程
- [CentOS]----JDK,Resin,mySQL的安装
- 桌面图标有蓝色阴影。Word里面的一个图片复制到桌面上后,桌面上的图标都有了蓝色阴影
- Tomcat 全攻略
- 得到安装程序的大小
- shell参数
- 交互式shell编程利器expect
- 使ssh不用输入密码
- linux md5sum命令
- shell下取得字符串的md5值
- centos网络配置
- 如何查看linux版本
- 国内外DNS服务器地址列表
- 全新PHP Cookie设置方法揭秘
- $_COOKIE 默认保存时间