2010南非世界杯_世界杯名单 - clywdl.com

按照指定的文件顺序进行scp传输

2025-06-05 15:26:25

前言

scp 默认传输顺序是按照文件名进行排序的, 但我当前工作中遇到要验证两台机器的神经网络层的精度,需要把网络层的输入输出(假设有100层, 一共64G) 从机器1传输到机器2 , 然后进行对比;这种情况下最好按照自定义的网络层的顺序进行传输, 因为这样就算中途scp传输失败,还能验证网络前面几个层的精度(数据量太大一般深夜无人的时候传输,谁都不能保证会出啥事)

代码

下面使用paramiko库来实现按照指定的文件顺序进行scp传输:

import paramiko

# 定义SSH连接信息

hostname = 'remote_host'

port = 22

username = 'username'

password = 'password'

# 定义本地文件路径和远程目录路径

local_files = ['/path/to/local/embedding1', '/path/to/local/softmax1', '/path/to/local/matmul1']

remote_dir = '/path/to/remote/directory/'

# 建立SSH连接

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect(hostname, port, username, password)

# 建立SCP连接

scp = ssh.open_sftp()

# 依次传输文件

for local_file in local_files:

remote_file = remote_dir + local_file.split('/')[-1] # 获取远程文件名

scp.put(local_file, remote_file)

print(f'{local_file} transferred to {remote_file}')

# 关闭SCP连接和SSH连接

scp.close()

ssh.close()

在上述代码中,我们首先定义了SSH连接信息,包括远程主机名、端口、用户名和密码。然后定义了本地文件路径和远程目录路径。接着建立SSH连接和SCP连接,使用put方法依次传输文件。最后关闭SCP连接和SSH连接。

需要注意的是,上述代码中的本地文件路径应该是绝对路径,而远程目录路径应该是相对路径。如果需要传输的文件较多,可以将本地文件路径和远程目录路径存储在一个列表中,然后使用循环依次传输。

候补购票订单兑现提示 如何与白羊水瓶相处?陶白白揭秘白羊水瓶关系之道