每個技術人員離職,留下的人 就要修改他的服務器賬號密碼,很麻煩,故寫次腳本偷懶
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?,如需轉載請自行聯系原作者