python遠程操作服務器


python遠程控制

標簽(空格分隔): 遠程Linux


python遠程控制:方案:

  • Paramiko
    Pexpect(主要Linux機器)

安裝使用:pip install paramiko

  • 注意在安裝的時候,會有比較慢因為:pip在美國的,而且有一些加密文件,所有會比較慢,所以我們可以設置一個超時時間;
    2.保證有一台Linux主機;
    3.保證ssh服務開啟:用putty、或者:xshell連接試試看;
import paramiko
#創建SSHClient 實例對象
ssh=paramiko.SSHClient()
#調用方法,表示沒有存儲遠程機器的公鑰,允許訪問
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#連接遠程機器,地址,端口,用戶名密碼
ssh.connect('192.168.199.236',22,'root','111111')
#創建目錄;
cmd = 'mkdir jcy2'
ssh.exec_command(cmd)
#如果命令行跨行
cmd='''echo '123
45678
90abc'
 >myfile'''
ssh.exec_command(cmd)
#獲取命令行的執行結果
cmd ='cat myfile'
stdin,stdout,stderr =ssh.exec_command(cmd)
print(stdout.read()+stderr.read())
ssh.close()
  • 注意點:
    exec_command每次執行都會打開一個新的channel,執行;
    2.新的環境,不再上次執行的環境里面
    3.所以我們不能多次調用,達到多次執行的目的

例如:如下代碼:

ssh.exec_command('pwd')
ssh.exec_command('mkdir jcy3')
ssh.exec_command('cd jcy3')
stdin,stdout,stderr =ssh.exec_command('pwd')

print(stdout.read())
ssh.close()

linux 命令:free查看內存信息;
我們以后可以在代碼里面每隔5分鍾,看一下內存的情況;

  • 如下是傳輸文件到遠程:
import paramiko
#創建SSHClient 實例對象
ssh=paramiko.SSHClient()
#調用方法,表示沒有存儲遠程機器的公鑰,允許訪問
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#連接遠程機器,地址,端口,用戶名密碼
ssh.connect('192.168.199.236',22,'root','111111')
sftp=ssh.open_sftp()
sftp.put('ftp1.py','home/stt/ftp1.py')
sftp.close()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM