如果你需要在 Python 程序中执行远程主机上的一些命令,可以使用 python 的 paramiko 库和 ssh 协议来实现。
下面是远程执行命令的详细代码:
导入 paramiko 库
import paramiko
创建 SSH 客户端
ssh = paramiko.SSHClient()
将本地的 know_hosts 文件移动到别的路径,避免出现警告
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
连接远程主机
ssh.connect(hostname="your_host_name", port=22, username="your_user_name", password="your_password")
执行远程命令
stdin, stdout, stderr = ssh.exec_command("your_command_here")
读取执行结果
print(stdout.read().decode())
关闭 SSH 连接
ssh.close()
下面是一个例子:远程获取目标机器的 CPU 信息。
import paramiko
def main():
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname="10.0.0.1", port=22, username="root", password="root_pass")
stdin, stdout, stderr = ssh.exec_command("cat /proc/cpuinfo | grep 'model name' | uniq ")
cpu_info = stdout.read().decode().strip()
print("CPU Info: ", cpu_info)
ssh.close()
if __name__ == '__main__':
main()
下面是例子 2:在远程机器中创建目录及文件并写入内容。
import paramiko
def main():
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname="10.0.0.1", port=22, username="root", password="root_pass")
ssh.exec_command("mkdir /tmp/test_dir")
stdin, stdout, stderr = ssh.exec_command("echo 'Hello World' > /tmp/test_dir/test_file.txt")
print("Exec Success: ", stdout.read().decode().strip())
ssh.close()
if __name__ == '__main__':
main()
通过以上代码,你可以非常容易地使用 Python 远程执行命令。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 远程执行命令的详细代码 - Python技术站