python 自动登录linux,docker,执行命令

pip install paramiko


import paramiko

client = paramiko.SSHClient()

client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# 连接到服务器

client.connect("192.168.1.xxx", username="root", password="xxxxxx")

# 在同一个 shell 会话中执行 "cd ~" 和 "ls -l" 命令

stdin, stdout, stderr = client.exec_command("cd ~ && ls -l")

# 等待命令执行完成并获取退出状态

exit_status = stdout.channel.recv_exit_status()

# 打印命令输出和错误

output = stdout.read().decode('utf-8')

errors = stderr.read().decode('utf-8')

print("Exit status:", exit_status)

print("Output:")

print(output)

print("Errors:")

print(errors)

client.close()

--------------------登录docker,并执行命令---------------------------

import paramiko

# 请替换为您的 Linux 服务器地址、用户名、密码

server_address = "192.168.1.xxx"

username = "root"

password = "xxx"

# 替换为您的 Docker 容器名称或ID

container_name_or_id = "xxx"

client = paramiko.SSHClient()

client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

# 连接到服务器

client.connect(server_address, username=username, password=password)

# 在 Docker 容器中执行命令,这里是一个示例命令 "ls /",您可以替换为其他命令

stdin, stdout, stderr = client.exec_command(f"docker exec {container_name_or_id} ls /")

# 等待命令执行完成并获取退出状态

exit_status = stdout.channel.recv_exit_status()

# 打印命令输出和错误

output = stdout.read().decode('utf-8')

errors = stderr.read().decode('utf-8')

print("Exit status:", exit_status)

print("Output:")

print(output)

print("Errors:")

print(errors)

client.close()

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容