0

ここではコード全体ではなく一部を投稿しています。以下のコードでエラーが発生します。すべてのsftpコマンドを保存してから、実際のsftpを実行しようとしています。

export SFTP_BATCH_FILE='/var/tmp/SFTP_BATCH_FILE'

#------------------------------------------------------------------------
# Create sftp script
#------------------------------------------------------------------------
rm -f $SFTP_BATCH_FILE
echo "lcd $SOURCE_FILE_DIRECTORY " > $SFTP_BATCH_FILE
echo "cd $DESTINATION_FILE_DIRECTORY " >> $SFTP_BATCH_FILE
if [ -z $FILE_TO_UPLOAD_TESTD ] then
echo "put $FILE_TO_UPLOAD_TESTD " >> $SFTP_BATCH_FILE
fi
if [ -z $FILE_TO_UPLOAD_TESTDF ] then
echo "put $FILE_TO_UPLOAD_TESTDF " >> $SFTP_BATCH_FILE
fi
echo "bye" >> $SFTP_BATCH_FILE

#------------------------------------------------------------------------
# Do sftp
#------------------------------------------------------------------------
echo " Before SFTP " >> $LOG_FILE
if [[ -z $ FILE_TO_UPLOAD && -z $ FILE_TO_UPLOAD1 ]] then
 echo “No files to transfer” >> $LOG_FILE
       mv $LOG_FILE $LOG_DIRECTORY
 exit 1
else 
echo “Attempting to connect to  Remote Server $REMOTE_SERVER_PROD” >> $LOG_FILE
/usr/bin/sftp –v -oPort=$SFTP_PORT -b $SFTP_BATCH_FILE $SOURCE_FUNCTIONAL_ID@$REMOTE_SERVER_PROD >> $LOG_FILE 2 >> $LOG_FILE
fi

私が得ているエラー:

rm: /var/tmp/SFTP_BATCH_FILE is a directory

test.ksh[89]: /var/tmp/SFTP_BATCH_FILE: cannot create

test.ksh[90]: /var/tmp/SFTP_BATCH_FILE: cannot create

よろしく、

チャイ

4

1 に答える 1

1

手がかりはエラーメッセージにあります

rm: /var/tmp/SFTP_BATCH_FILE is a directory

ディレクトリはまだそこにあるので、後続のコマンドはSFTP_BATCH_FILEファイルを作成できません。

rm -fディレクトリを削除できません。rm -rf代わりに使用してください。

編集:

明確にするために、-rは再帰的であり、ディレクトリも削除されることを意味します。-fは強制的であり、存在しないファイル/ディレクトリがエラーを引き起こさず、コマンドがプロンプトを表示しないことを意味します。

于 2012-10-27T08:57:22.097 に答える