python远程操作服务器 服务器执行python
更新时间:2023-10-21什么是Python远程操作服务器
Python远程操作服务器是指通过Python编写代码,实现对远程服务器的操作,例如在本地计算机上编写Python脚本,然后通过网络连接到远程服务器,执行一些操作,比如传输文件、启动程序、操作数据库等。Python远程操作服务器所使用的协议有多种,其中比较常见的有SSH和Telnet协议。Python模块paramiko可以用于实现SSH协议,telnetlib可以用于实现Telnet协议。
import paramiko
# 创建SSH客户端
ssh = paramiko.SSHClient()
# 配置自动添加密钥
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接远程服务器
ssh.connect(hostname='192.168.1.1', port=22, username='root', password='123456')
# 执行命令
stdin, stdout, stderr = ssh.exec_command('ls -l')
# 输出结果
print(stdout.read().decode())
# 关闭连接
ssh.close()
如何使用Python在服务器上执行Python脚本
使用Python在服务器上执行Python脚本非常简单,只需要在本地计算机上编写Python脚本,然后通过SSH协议连接到服务器,将脚本上传到服务器上执行即可。下面是一个示例代码:
import paramiko
# 创建SSH客户端
ssh = paramiko.SSHClient()
# 配置自动添加密钥
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接远程服务器
ssh.connect(hostname='192.168.1.1', port=22, username='root', password='123456')
# 上传文件到服务器
sftp = ssh.open_sftp()
sftp.put('local_script.py', 'remote_script.py')
sftp.close()
# 执行脚本
stdin, stdout, stderr = ssh.exec_command('python remote_script.py')
# 输出结果
print(stdout.read().decode())
# 关闭连接
ssh.close()
如何在Python中操作远程服务器的文件
需要在Python中操作远程服务器的文件,同样是通过SSH协议连接到服务器,然后使用paramiko提供的SFTP客户端进行文件的上传、下载、删除等操作。下面是一个示例代码:
import paramiko
# 创建SSH客户端
ssh = paramiko.SSHClient()
# 配置自动添加密钥
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接远程服务器
ssh.connect(hostname='192.168.1.1', port=22, username='root', password='123456')
# 上传文件到服务器
sftp = ssh.open_sftp()
local_path = '/path/to/local/file'
remote_path = '/path/to/remote/file'
sftp.put(local_path, remote_path)
sftp.close()
# 下载文件到本地
sftp = ssh.open_sftp()
local_path = '/path/to/local/file'
remote_path = '/path/to/remote/file'
sftp.get(remote_path, local_path)
sftp.close()
# 删除文件
sftp = ssh.open_sftp()
remote_path = '/path/to/remote/file'
sftp.remove(remote_path)
sftp.close()
# 关闭连接
ssh.close()
如何使用Python在远程服务器上操作数据库
使用Python在远程服务器上操作数据库同样也是通过SSH协议连接到服务器,然后在服务器上执行数据库操作的命令。下面是一个示例代码:
import paramiko
import pymysql
# 创建SSH客户端
ssh = paramiko.SSHClient()
# 配置自动添加密钥
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接远程服务器
ssh.connect(hostname='192.168.1.1', port=22, username='root', password='123456')
# 执行命令
stdin, stdout, stderr = ssh.exec_command('mysql -uroot -p123456 test_database -e "SELECT * FROM test_table"')
# 解析结果
result = [line.strip().split('\t') for line in stdout.readlines()]
# 输出结果
for row in result:
print(row)
# 关闭连接
ssh.close()
以上代码使用了paramiko连接到远程服务器后,使用SSH执行数据库操作的命令。如果需要在Python中直接操作数据库,可以使用pymysql模块,具体操作与操作本地数据库的方式相同。