python 获取其他linux服务器某个文件 大小
时间: 2024-02-03 08:03:07 浏览: 204
要获取其他Linux服务器上某个文件的大小,您可以使用Python的`paramiko`库来实现远程连接和执行命令。下面是一个示例代码:
```python
import paramiko
def get_remote_file_size(hostname, username, password, remote_path):
# 创建SSH客户端
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
# 连接远程服务器
client.connect(hostname, username=username, password=password)
# 执行Shell命令获取文件大小
command = f"du -b {remote_path} | awk '{{print $1}}'"
stdin, stdout, stderr = client.exec_command(command)
# 获取命令执行结果
size = int(stdout.read().decode().strip())
return size
finally:
# 关闭SSH连接
client.close()
# 远程服务器信息
hostname = '远程服务器IP'
username = '用户名'
password = '密码'
# 要获取大小的远程文件路径
remote_path = '/path/to/remote_file'
# 获取文件大小
size = get_remote_file_size(hostname, username, password, remote_path)
print(f"大小: {size} 字节")
```
上述代码中,我们使用`paramiko`库来创建SSH连接,并执行远程命令来获取文件大小。
首先,我们定义了一个`get_remote_file_size()`函数,该函数接受远程服务器的主机名、用户名、密码以及要获取大小的远程文件路径作为参数。在函数内部,我们使用`paramiko.SSHClient()`创建SSH客户端,并连接到远程服务器。
然后,我们使用`client.exec_command()`执行Shell命令来获取文件大小。在示例中,我们使用了`du -b`命令来获取文件大小,并通过`awk`命令提取出文件大小的值。
最后,我们将获取到的文件大小转换为整数,并打印出来。
请将代码中的`远程服务器IP`、`用户名`、`密码`以及`/path/to/remote_file`替换为实际的远程服务器信息和要获取大小的远程文件路径。
阅读全文