2013-02-05 2 views
5

안녕하세요이 /ifshk5/BC_IP/PROJECT/T1 1,073/T11073_RICljiR/분할/AG19_235/120225_I872_FCC0HN2ACXX_L8_RICljiRSYHSD2-1-IP- AAPEK 17_1.fq.gzSCP 원격에서 mkdir -p

같은 일부 파일 경로

한 FTP 서버에서 다른 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 [email protected] mkdir -p $location 
    scp -r $i [email protected]:$location 

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

1. 항상 작동 표시 할 수 없습니다를 실행하는 파일이 포함 된 단절 로그인 허가를 거부, 다시 시도하십시오. 하지만 난

ssh [email protected] mkdir -p /sample/xxxx 

가 작동 할 수 유형을 지시하고, 새 디렉토리 위치는 /옵션/등산/Storage3/FTP/ftp_climb/100033/T11073_RICekkR/Fq에/AS59_59304

+1

왜 rsync를 사용하지 않는 것이 좋습니까? –

+0

좀 더 자세한 솔루션을 제공 할 수 있습니까? 감사, – Jessesiu

답변

5

처럼 보여 적절한시기 나는 "permission denied"오류가 어디에서 왔는지 알지 못한다; bash -x과 함께 스크립트를 실행하여 오류의 원인이되는 명령을보십시오. 어쩌면 그것은 당신이 기대하는 것이 아닐 수도 있습니다.

rsync --dirs $i [email protected]:$b 

--dirs이 원격 측에서 필요한 폴더를 생성합니다 (뭔가가 실패 할 때 그것은 당신에게 좋은 오류 메시지를 줄 것이다) :

또한 대신 다시 바퀴를 발명의 rsync을 시도해보십시오.

심지어 당신이 양쪽에 같은 폴더 구조가있는 경우 rsync 단일 호출로 모든 일을 할 수 있습니다 경로 후

rsync -avP /ifshk5/BC_IP/PROJECT/T11073/ [email protected]:/opt/CLiMB/Storage3/ftp/ftp_climb/100033/ 

참고 /! 그들을 생략하지 마십시오.

rsync은 어떤 파일을 전송해야하는지 파악하고 그 파일 만 복사합니다. 부분 집합 만 전송하려면 --include-from