Bash   发布时间:2022-05-13  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了bash – scp和远程mkdir -p大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
嗨,我有一些文件路径
/ ifshk5 / BC_IP / PROjeCT / T1
1073 / T11073_RICljiR /拆分/ AG19_235 / 120225_I872_FCC0HN2ACXX_L8_RICljirsYHSD2-1-IP
AAPEK-17_1.fq.gz

我需要从一个ftp服务器复制文件到其他服务器.如果服务器中不存在,还需要创建目录.
我登录包含这些文件的服务器然后运行此代码

#! /bin/bash

 while read myline
 do
   for i in $myline
    do
    if [ -f $i ]
    then
    LOCATIOn=$(echo "$i" | awk -F "/" '{ print "",$6,$7,$8 }' OFS="/")
        #LOCATIOn shows /T11073_RICekkR/Fq/AS59_59304
    LOCATIOn="/opt/climB/Storage3/ftp/ftp_climb/100033"$LOCATIOn
    echo $LOCATIOn

    ssh tam@192.168.174.43 mkdir -p $LOCATIOn
    scp -r $i tam@192.168.174.43:$LOCATIOn

    fi
   done
 done < /ifshk5/BC_IP/PROjeCT/T11073/T11073_all_3254.fq.list

它有一些问题,1.它无法工作总是显示权限被拒绝,请再试一次.
但当我直接打字

ssh tam@192.168.174.43 mkdir -p /sample/xxxx

它可以工作,新的目录位置是正确的,它显示像
/选择/爬升/ Storage3 / FTP / ftp_climb / 100033 / T11073_RICekkR / Fq中/ AS59_59304

解决方法

我没有看到“许可被拒绝”错误可能来自哪里;使用bash -x运行脚本以查看导致错误的命令.也许这不是你所期望的.

也尝试rsync而不是再次发明轮子:

rsync --dirs $i tam@192.168.171.34:$b

–dirs将在远程端创建必要的文件夹(当出现故障时,它会为您提供良好的错误消息).

如果双方都有相同的文件夹结构,甚至可以通过单次调用rsync来完成所有操作:

rsync -avP /ifshk5/BC_IP/PROjeCT/T11073/ tam@192.168.171.34:/opt/climB/Storage3/ftp/ftp_climb/100033/

注意路径之后的/!不要忽略它们.

rsync将确定需要传输哪些文件并仅复制这些文件.如果只想传输子集,请使用–include-from

大佬总结

以上是大佬教程为你收集整理的bash – scp和远程mkdir -p全部内容,希望文章能够帮你解决bash – scp和远程mkdir -p所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: