다음은 원격 서버에 로그인한 후 한 경로에서 다른 경로로 폴더를 복사하는 코드입니다. 제가 겪고 있는 문제는 원격 서버에 로그인한 후 원본 디렉터리를 대상 디렉터리로 복사할 수 없다는 것입니다.
echo "PLEASE ENTER LIB NAME "
read dirname
echo "You entered: $dirname"
echo "PLEASE ENTER VERSION"
echo "example 1.0 etc"
read version
NOW=$(date +"%Y%m%d")
echo "date $NOW"
##FOR=$(rev<<"$NOW")
echo "PLEASE ENTER EXTENSION"
echo "example 0.0 or 0.1 etc"
read date_extension
echo "You entered: $date_extension"
mkdir "${dirname}@${version}@${NOW}${date_extension}"
TAG_DIR=${dirname}@${version}@${NOW}${date_extension}
mkdir $TAG_DIR/CDSOA
cd $TAG_DIR/
echo `pwd`
echo "PLEASE ENTER SOURCE LIB PATH"
read path
PATH1=$(cp -Rf $path `pwd`)
echo "entered path : $PATH1"
read path2
echo "PLEASE ENTER DESTINATION PATH"
echo $path2
ssh -l prj/ dlhl0654
cp -rf $TAG_DIR $path2
echo "aaaa"
답변1
그것은 당신이 필요로하는 것 같습니다 scp
.
기본적으로는 cp
로컬 디렉터리를 원격 디렉터리로 복사하려는 경우 다음과 같은 방법을 사용할 수 있습니다.ssh
scp -r /home/user/localdir remoteuser@remotehost:/tmp/
remotehost
그 후에는 이라는 디렉터리가 생성됩니다 localdir
.
보세요 man scp
- 동일한 ssh
연결을 사용합니다.
답변2
쉘에서 원격 복사 명령을 실행해야 합니다 ssh
. 나는 prj가 원격 서버에 로그인하기 위한 사용자 이름이고 dlhl0654가 원격 호스트 이름이라고 추측합니다. 서버 간에 비밀번호 없는 인증을 설정하시기 바랍니다. 이것을 시도해 보세요. 작동할 것입니다.
echo "PLEASE ENTER LIB NAME "
read dirname
echo "You entered: $dirname"
echo "PLEASE ENTER VERSION"
echo "example 1.0 etc"
read version
NOW=$(date +"%Y%m%d")
echo "date $NOW"
##FOR=$(rev<<"$NOW")
echo "PLEASE ENTER EXTENSION"
echo "example 0.0 or 0.1 etc"
read date_extension
echo "You entered: $date_extension"
mkdir "${dirname}@${version}@${NOW}${date_extension}"
TAG_DIR=${dirname}@${version}@${NOW}${date_extension}
mkdir $TAG_DIR/CDSOA
cd $TAG_DIR/
echo `pwd`
echo "PLEASE ENTER SOURCE LIB PATH"
read path
PATH1=$(cp -Rf $path `pwd`)
echo "entered path : $PATH1"
read path2
echo "PLEASE ENTER DESTINATION PATH"
echo $path2
ssh -l prj@dlhl0654 <<EOF
cp -rf "$TAG_DIR" "$path2"
EOF
echo "aaaa"