+++++++++++++++++++++++++++++++++++++++++++
標題:python批量修改Linux服務器密碼
時間:2019年2月24日
+++++++++++++++++++++++++++++++++++++++++++
1. 包含文件
1.1 腳本文件
注意:建議不要直接復制使用,在linux平台用vi創建文件,將內容寫進去,使用tab鍵進行縮進,本文中的縮進可能存在問題。
import paramiko
import os
test_fail='result.fail'
if os.path.exists(test_fail):
os.remove(test_fail)
test_ok='result.ok'
if os.path.exists(test_ok):
os.remove(test_ok)
pass_file=open('passwd','r')
for line in pass_file:
inform=line.split()
ipaddr=inform[0]
username=inform[1]
old_pass=inform[2]
new_pass=inform[3]
port=22
try:
ssh=paramiko.SSHClient()
ssh.load_system_host_keys()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname=ipaddr,username=username,password=old_pass,timeout=5)
ssh.exec_command('echo "%s"|passwd --stdin root'%new_pass)
ret_ok=open('result.ok','a+')
ret_ok.write(ipaddr+" is OK\n")
ret_ok.close()
ssh.close()
except Exception as e:
ret_fail=open('result.fail','a+')
ret_fail.write(ipaddr+" is failed\n")
ret_fail.close()
pass_file.close()
1.2 配置文件
注意:
文件名為passwd,為題python腳本提供數據
文件內容如下:
192.168.44.100 root pass_old1 pass_new1
192.168.44.110 root pass_old2 pass_new2
192.168.44.120 root pass_old3 pass_new3
1.3 腳本使用指導文件
步驟一:將服務器信息寫入passwd文件
第一列 服務器IP地址
第二列 需要修改密碼的用戶名
第三列 原始密碼
第四列 新密碼
注意:每列之間使用空格隔開,並且passwd與change_pass.py在同級目錄下
步驟二:python change_pass.py
注意:腳本執行完成后,在當前目錄下生成result.ok和reslut.fail分別記錄主機密碼的修改的成功與失敗的情況(成功或失敗是通過ssh是否連接成功進行判定的)