2012-10-27 79 views
0

我不是在這裏發佈整個代碼,但它的一部分。下面的代碼給錯誤。我試圖存儲所有的sftp命令,然後執行實際的sftp。unix 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 [email protected]$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 

問候,

回答

1

的線索是在錯誤消息

rm: /var/tmp/SFTP_BATCH_FILE is a directory 

由於目錄仍然存在你的分sequent命令不能創建SFTP_BATCH_FILE文件。

rm -f無法刪除目錄。改爲使用rm -rf

編輯:

只是爲了澄清,-r是遞歸的含義目錄中刪除,以及,-f就是力量,這意味着不存在的文件/目錄不會導致錯誤,命令不提示。