URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 8799
[ Назад ]

Исходное сообщение
"ubuntu cron unzip"

Отправлено mikus , 11-Июл-10 11:50 
Добрый.
Задача : разархивировать архив при его наличии.

#!/bin/dash
cd /home/ftpuser/www_base/
if [ -f www_base.zip ]
then
/bin/rm -rf /home/ftpuser/www_base/www_base/
/usr/bin/unzip www_base.zip
/bin/rm www_base.zip
fi


Проблема такая, что запуская руками скрипт, он отрабатывает правильно, а помещая его в cron, разпаковывается лишь часть архива.
В логе ничего странного нет.
Собственно почему через cron разпаковывается лишь часть архива?


Содержание

Сообщения в этом обсуждении
"ubuntu cron unzip"
Отправлено allez , 11-Июл-10 14:01 
>[оверквотинг удален]
>/bin/rm -rf /home/ftpuser/www_base/www_base/
>/usr/bin/unzip www_base.zip
>/bin/rm www_base.zip
>fi
>
>
>Проблема такая, что запуская руками скрипт, он отрабатывает правильно, а помещая его
>в cron, разпаковывается лишь часть архива.
>В логе ничего странного нет.
>Собственно почему через cron разпаковывается лишь часть архива?

Честно признаться, у меня нет полной уверенности в том, что я правильно понял причину
ваших бед, но попробуйте изменить скрипт вот так:


#!/bin/dash

cd /home/ftpuser/www_base/
if [ -f www_base.zip ]
then
  /bin/rm -rf /home/ftpuser/www_base/www_base/
  /usr/bin/unzip www_base.zip && /bin/rm www_base.zip
fi



"ubuntu cron unzip"
Отправлено mikus , 11-Июл-10 17:22 
Там так и получается, что команда unzip обрывается раньше чем она заканчивает свою работу.
я пробывал уже вставлять "&&" и sleep между unzip  удалением.
Вообще отключал удаление, т.е. после unzip никаких команд больше не было.
Но не отрабатывает корректно, из архива в котором ~10к файликов, разпаковываються лишь пару сотен.
А в ручную запуская, всё отрабатывает как положено.

"ubuntu cron unzip"
Отправлено anonymous , 11-Июл-10 20:51 
>Там так и получается, что команда unzip обрывается раньше чем она заканчивает
>свою работу.
>я пробывал уже вставлять "&&" и sleep между unzip  удалением.
>Вообще отключал удаление, т.е. после unzip никаких команд больше не было.
>Но не отрабатывает корректно, из архива в котором ~10к файликов, разпаковываються лишь
>пару сотен.
>А в ручную запуская, всё отрабатывает как положено.

может unzip xxx.zip &>/dev/null


"ubuntu cron unzip"
Отправлено mikus , 12-Июл-10 13:17 
>может unzip xxx.zip &>/dev/null

Именно.
Или unzip xxx.zip &>/dev/null
или unzip -q xxx.zip

cron doesn't like jobs that generate a lot of stdout output, beyond a certain number of bytes and the process terminates. unzip will echo the name of every file it is unzipping to stdout, you can suppress this either by using the -q flag, or else by redirecting the output (to /dev/null for example)