
以下は、リモートサーバーにログインした後にあるパスから別のパスにフォルダをコピーするコードです。私が経験している問題は、リモートサーバーにログインした後にソースディレクトリをターゲットディレクトリにコピーできないことです。
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がリモートサーバーにログインするためのユーザー名で、dll0654がリモートホスト名であると思います。サーバー間でパスワードのない認証を設定してください。これを試してみてください。動作します。
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"