每个技术人员离职,留下的人 就要修改他的服务器账号密码,很麻烦,故写次脚本偷懒
change.sh 如下
| 1 2 3 4 5 6 7 8 9 10 | #!/bin/bashfor i in `awk '{print $1}' account.txt` do j=`awk -v l="$i" {if(l==$1)print $2} account.txt` a=`awk -v l="$i" {if(l==$1)print $3} account.txt` b=`awk -v l="$i" {if(l==$1)print $4} account.txt` c=`awk -v l="$i" {if(l==$1)print $5} account.txt` d=`awk -v l="$i" {if(l==$1)print $6} account.txt` expect login.exp $i $j $a $b $c $ddone |
login.exp 如下
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #!/usr/bin/expect -fset ip [lindex $argv 0] set user [lindex $argv 1] set passwd [lindex $argv 2] set newpasswd [lindex $argv 3] set rootpasswd [lindex $argv 4] set newrootpasswd [lindex $argv 5] spawn ssh $user@$ip expect { "yes/no" {send "yes\r";exp_continue} "password:"{send "$passwd\r"} }expect "]$" send "password $user" expect { "password" {send "$newpasswd\r";exp_continue} "password" {send "$newpasswd\r"} }expect "]$" send "su root\r" expect "password" send "$rootpasswd\r" expect "]#" send "password root" expect { "password" {send "$newrootpasswd\r";exp_continue} "passwrod" {send "$newrootpasswd\r"} }expect "]#" send "exit\r" |
account.txt 格式如下
| 1 | ip user passwd newpasswd rootpasswd newrootpasswd |
本文转自wks9751CTO博客,原文链接:http://blog.51cto.com/wks97/1619255 ,如需转载请自行联系原作者