Виснет скрипт bash - PullRequest
       1

Виснет скрипт bash

2 голосов
/ 07 августа 2011

У меня есть код ниже. В основном этот код ls -tr $FROM_DIRECTORY затем перенаправляет вывод на /tmp/msc.load.tmp. После этого цикл for будет выполнен и переместит первые 3000 файлов в другой каталог. Код работает нормально, но иногда он зависает. Я понятия не имею, почему он висит. Кто-нибудь знает в чем проблема скрипта?

ls -tr $FROM_DIRECTORY > /tmp/msc.load.tmp
echo "$sysdate -- Listing Diretory " >>$LOGFILE
# From the file list, get the 3000 from the top to move. Skip the remaining files in the list 
# in this iteration. 
# Version 1.1 - List the files from the temporary file.  
for file in $(cat /tmp/msc.load.tmp | grep 'MSCERC.*' | head -3000 )
do 
   mv $FROM_DIRECTORY/$file $DESTINATION_DIRECTORY
done
echo "$sysdate -- End of Script " >>$LOGFILE
exit 0
# End of script.

1 Ответ

3 голосов
/ 07 августа 2011

Да, попробуйте найти.

Также, если вы не знаете об этом, команда set -x полезна в подобных ситуациях. Мой подход состоит в том, чтобы добавить set -x в начало скрипта, а затем запустить его с перенаправлением вывода в файл. захват как стандартного выхода, так и стандартной ошибки

. / Script.sh> output.txt 2> & 1

Если вы хотите, вы можете задать -f output.txt в другом окне для отслеживания прогресса.

Установить -x выводит запущенные команды, а перенаправление помещает команду и вывод в хронологическом порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...