目录
使用Python通过SSH登录Linux主机实现查看和上传文件的功能
实现python编写代码远程登录linux主机,执行一条命令ls
编辑实现python编写代码远程给linux主机上传一个文件
使用Python通过SSH登录Linux主机实现查看和上传文件的功能
Python提供了一个名为paramiko的库,可以通过这个库来实现python对Linux的远程登录和管理
实现python编写代码远程登录linux主机,执行一条命令ls
代码示例:
import paramiko
class SSHClient:
def __init__(self, host, port, username, password):
self.host = host
self.port = port
self.username = username
self.password = password
self.client = paramiko.SSHClient()
self.client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
def connect(self):
try:
self.client.connect(self.host, port=self.port, username=self.username, password=self.password)
print("Connected to", self.host)
except paramiko.AuthenticationException:
print("Authentication failed when connecting to", self.host)
except Exception as e:
print("Error:", e)
def execute_command(self, command):
stdin, stdout, stderr = self.client.exec_command(command)
return stdout.read().decode()
def close(self):
self.client.close()
def upload_file(self, local_file_path, remote_file_path):
pass
# 使用示例
if __name__ == "__main__":
# 修改下面的参数为你的Linux主机的实际信息
host = "192.168.44.135"
port = 22 # 默认SSH端口
username = "root"
password = "*********"
ssh_client = SSHClient(host, port, username, password)
ssh_client.connect()
#执行ls - l命令
result = ssh_client.execute_command("ls -l")
print("Result of 'ls -l' command:", result)
#文件传输
local_file_path = "ceshi.txt"
remote_file_path = "/root/ceshi.txt"
ssh_client.upload_file(local_file_path, remote_file_path)
print(f"File '{local_file_path}' uploaded to '{host}:{remote_file_path}'")
ssh_client.close()
结果展示:
Linux界面展示:
![](https://img-blog.csdnimg.cn/direct/b48a526373a1490bbb7eecbf5270dd5c.png)
实现python编写代码远程给linux主机上传一个文件
代码同上:
结果展示:
总结:
当通过Python使用Paramiko库远程上传文件到Linux主机时,你需要注意以下几点:
1.PermissionError:
如果出现PermissionError,可能是因为你的Python脚本运行时没有足够的权限来访问和写入目标路径。确保你的Python脚本运行时使用的用户具有访问和写入目标路径的权限。
2.FileNotFoundError:
如果出现FileNotFoundError,可能是因为Paramiko在尝试在本地文件系统上查找特定路径时遇到问题。确保你提供的本地文件路径是正确的,并且指向一个有效的文件。
错误处理: 在使用Paramiko时,始终确保适当地处理可能出现的错误,例如认证失败、连接失败等。
通过遵循这些指导原则,你可以顺利地使用Python和Paramiko库进行远程文件上传到Linux主机,而不会遇到太多问题。