使用Python遠程控制Linux電腦的關機

  • 目標:使用Python遠程控制Linux電腦的關機
  • 系統配置需求:

1。需要安裝SSH Client/Server tool,Ubuntu安裝命令如下

$ sudo apt-get install openssh-client

$ sudo apt-get install openssh-server

2。 啓動SSH Server,命令如下,

$ sudo /etc/init.d/ssh start

3。控制主機需要安裝Python (推薦Python3.5版本以上),並安裝Python包“paramiko”, 安裝命令如下,

$ pip3 install paramiko

4。控制主機與被控制機器在同一局域網內

  • 手動驗證:

1。打開控制主機Terminal,輸入ssh連接命令如下(假設被控制機器IP地址是192.168.3.6), 系統會要求輸入用戶名和密碼等信息,請按照提示填入正確信息;

$ ssh 192.168.3.6

2。成功連接到目標電腦後,使用如下命令關掉被控制機器,命令如下,被控制電腦將執行關機動作。

$ sudo shutdown -h now
(輸入被控制電腦密碼)
  • 使用Python遠程控制Linux電腦的關機,示例代碼如下,將下面代碼保存爲“remote_power_off.py”,執行命令“python3 remote_power_off.py”
# -*- coding:utf-8 -*- 
import paramiko 

host = '192.168.3.6'
user = 'test001'
password = '××××××××'

def ssh_exec_command(command): 
    try: 
        ssh_client = paramiko.SSHClient() 
        ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
        ssh_client.connect(host, 22, user, password) 
        
        print("command: " + command)
        std_in, std_out, std_err = ssh_client.exec_command(command, get_pty=True) 
        std_in.write(password + '\n')
        
        for line in std_out: 
            print(line.strip("\n"))
        for line in std_err: 
            print(line.strip("\n")) 
            
        ssh_client.close() 
    except Exception as e: 
        print("error: " + str(e)) 
        
if __name__ == '__main__': 
    #ssh_exec_command("ls -l")
    ssh_exec_command("sudo shutdown -h now")

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章