每个技术人员离职,留下的人 就要修改他的服务器账号密码,很麻烦,故写次脚本偷懒
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
,如需转载请自行联系原作者