web-dev-qa-db-ja.com

パスワード付きのscpとファイルの名前の変更

ファイルの名前を変更してscpコマンドを実行する必要があります。

私は次のコードで試しました:

Host=lnx25
USERNAME=ngqa
PASSWORD=xxxxx

FILE=$1
FILE_NAME=`echo $FILE | awk 'BEGIN{FS="/"} {print $NF;}'`

todayDateVar=`date | awk 'BEGIN{FS=" ";OFS="_"} {print $2,$3,$6;}'`
REPORT_HOME="/dnbusr1/ngqa/scp_script/new/"
DES_PATH="/ngdata/nc_donotdelete/test_out_files/$FILE_NAME.$todayDateVar"

scp $FILE $USERNAME:"$PASSWORD"@$Host:sys_config $DES_PATH

結果:(。/scp.sh sample.objで実行)

/ngdata/nc_donotdelete/test_out_files/sample.obj.Sep_23_2014: No such file or directory

このエラーは、その名前で使用できるディレクトリがないことを示していると思います。しかし、ファイルの名前を変更せずに試したときはいつでも、正常に動作することを意味します。次のコードは、ファイルの名前を変更しなくても正常に機能します。

DES_PATH="/ngdata/nc_donotdelete/test_out_files"

ファイル名をsample.objとして宛先ディレクトリにコピーしました。しかし、名前を変更してファイルをコピーする必要があります。

1
Vasu

DES_PATH="/ngdata/nc_donotdelete/test_out_files/$FILE_NAME.$todayDateVar"が機能せず、DES_PATH="/ngdata/nc_donotdelete/test_out_files"が機能する場合、それは/ngdata/nc_donotdelete/test_out_filesが存在しないことを意味し、ファイルは/ngdata/nc_donotdelete/test_out_filesではなく/ngdata/nc_donotdelete/test_out_files/$1として保存されます(ターゲットパスはである可能性があるため)ディレクトリまたはファイル名のいずれか、およびscpは、そのパスが存在し、すでにディレクトリまたはディレクトリへのリンクである場合にのみ、ディレクトリとして扱います)末尾にスラッシュを追加できます常にファイルではなくディレクトリとして扱われるようにする宛先パス。

1
l0b0

ファイル内の単純なパスワードは悪い考えです。私の箱のほかに私には選択肢がありません-p passwd

リモートホストにアクセスできるため、次のコマンドを使用してキー(プライベートおよびパブリック)を生成します。

ssh-keygen

(すべてデフォルトを受け入れ、パスワードを使用しないでください)

この手順は、すべてのユーザーに対して実行する必要があります

その後、一度

ssh-copy-id ngqa@lnx25

この手順は、すべてのユーザーとすべてのホストに対して実行する必要があります。

あなたのシェルでは、最後の行は

scp $FILE $USERNAME@$Host:$DEST_PATH
0
Archemar