admin管理员组

文章数量:1582014

  • 目标:使用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")

 

 

 

本文标签: 远程控制电脑PythonLinux