每个技术人员离职,留下的人 就要修改他的服务器账号密码,很麻烦,故写次脚本偷懒
change.sh 如下
1 2 3 4 5 6 7 8 9 10 | #!/bin/bash for 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 $d done |
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 -f set 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 ,如需转载请自行联系原作者