每个技术人员离职,留下的人 就要修改他的服务器账号密码,很麻烦,故写次脚本偷懒
change.sh 如下
#!/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 如下
#!/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 格式如下
ip user passwd newpasswd rootpasswd newrootpasswd
转载于:https://blog.51cto.com/wks97/1619255