Я пытаюсь написать сценарий оболочки, который захватывает набор параметров из текстового файла, а затем выполняет 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
99 раз из 100 проблема в том, что один из параметров в строке sftp.pl имеет в нем пробел, в результате чего параметры заканчиваются не в порядке. Попробуйте инкапсулировать все параметры в sftp.pl в двойных qoutes '' ' – Petesh