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

前言

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连接。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值