1.安裝Python-3.8.10.tgz
2.編寫腳本 passwd
vim paswd
IP 使用者名 old密碼 new密碼
3.編寫更改密碼py腳本讀取passwd檔案内容
#!/usr/bin/env python
# coding:utf-8
import paramiko
import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
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,port=22,password=old_pass,timeout=5)
stdin,stdout,stderr=ssh.exec_command('/usr/bin/passwd')
stdin.write(old_pass + '\n' + new_pass + '\n' + new_pass + '\n')
print(stderr.read().decode())
ret_ok=open('result.ok','a+')
ret_ok.write(ipaddr+" is OK\n")
ret_ok.close()
ssh.close()
except Exception as e:
print(e)
ret_fail=open('result.fail','a+')
ret_fail.write(ipaddr+" is failed\n")
ret_fail.close()
pass_file.close()
4.驗證密碼是否修改成功 passwd 寫三列,成功傳回 result.ok 失敗傳回 result.fail,檔案裡面記錄IP
#!/usr/bin/env python
# coding:utf-8
import paramiko
import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
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]
password=inform[2]
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,port=22,password=password,timeout=5)
stdin,stdout,stderr=ssh.exec_command('echo $HOSTNAME')
ret_ok=open('result.ok','a+')
ret_ok.write( ipaddr+" " +stdout.read().decode())
ret_ok.close()
ssh.close()
except Exception as e:
print(e)
ret_fail=open('result.fail','a+')
ret_fail.write(ipaddr+" is failed\n")
ret_fail.close()
pass_file.close()