0
テキストファイルから一連のパラメータを取得し、それらのパラメータに基づいてSFTPを実行するシェルスクリプトを作成しようとしています。基本的に、私は毎日のwebstatsログを取って中央の場所に移動しています。変数を割り当てるとSFTPが失敗する
問題は、SFTPが変数を割り当てる方法に基づいて失敗するという問題です。私はデバッグして、whileループが変数のループをエコーアウトすることによって正しく動作することを発見しました。私が得るエラーは、接続が閉じていることです。
#!/bin/sh
source /home/ntadmin/webstats/bin/webstats.profile
source /home/ntadmin/webstats/bin/webstats.blogs.profile
DATE=`date +%m%d%Y`
SOURCE_FILE="`echo $WS_BC_SOURCE_FILE | sed -e 's/mmddyyyy/'$DATE'/'`"
IFS=","
while read WS_BLOG_NAME WS_BLOG_SOURCE_VAR WS_BLOG_DEST_VAR WS_BC_SERVER1;
do
#Step 1 SFTP
cd $PERL_DIR
if $PERL_DIR/sftp.pl $WS_BC_SERVER1 $WS_BC_ID $WS_BC_PW $WS_BLOG_SOURCE_VAR/$SOURCE_FILE $WS_BLOG_DEST_VAR/$SOURCE_FILE
then
echo 'SFTP complete'
else
echo 'SFTP failed!'
exit 1
fi
#Step 2 - Check that ftp was successful (that the files exist)
if [ -e $WS_BLOG_DEST_VAR/$SOURCE_FILE ]
then
echo "FTP of $WS_BLOG_SOURCE_VAR/$SOURCE_FILE from $WS_BC_SERVER1 was successful"
else
echo "FTP of $WS_BLOG_SOURCE_VAR/$SOURCE_FILE from $WS_BC_SERVER1 was not successful!"
exit 1
fi
done < blogs_array.txt
exit 0
「sftp.pl」は正しく動作していると思いますか?あなたは 'stfp.pl'へのリンクを投稿したいですか(それとも十分に短い場合はスクリプト自体です)? – thb
100回中99回問題は、sftp.plの行にあるパラメータの1つにスペースがあり、パラメータの順序が乱れることです。すべてのパラメータをsftp.plに二重のqoutesでカプセル化してみてください。 '' ' – Petesh