1

Доброго времени суток.
Имеется проблема. Есть скрипт, который занимается синхронизацией гео-данных, скрипт такой:

cd /opt/www/geo/ && rm -f *.txt && rm -f *.tar.gz && wget http://ipgeobase.ru/files/db/Main/geo_files.tar.gz && tar xvf geo_files.tar.gz && php import_geobase.php
cd /opt/www/geo/ && rm -f *.sql && rm -f *.dbf && rm -f *.zip && wget http://info.russianpost.ru/database/PIndx.zip && unzip -o PIndx.zip && dbf2mysql *.DBF -h localhost -d BASE -t a_geo_indexes -P PASS -U USER -s INDEX=POST_INDEX -c -f -i post_index
cd /opt/www/geo/ && mysqldump -uUSER -pPASS --default-character-set=latin1 BASE a_geo_indexes > out.sql 
cd /opt/www/geo/ && iconv -f cp866 -t utf-8 out.sql>outtmp.sql 
cd /opt/www/geo/ && more outtmp.sql | sed 's/latin1/utf8/' > out.sql
cd /opt/www/geo/ && mysql -uUSER -pPASS BASE < out.sql

Скрипт прекрасно отрабатывает запуском из шелла:

sudo ./sync_geo.sh

Если я заношу его в крон из-под sudo:

sudo crontab -e
*/5 * * * * /opt/www/sync_geo.sh

,
то он тоже хорошо отрабатывает, но обрывается примерно на строке

cd /opt/www/geo/ && mysql -uUSER -pPASS BASE < out.sql

т.е. в базе я вижу кракозябры, хотя файлы предыдущие сформированны корректно.

Я не слишком глубокий администратор и пользователь линукс, но это поведение противоречит моим представлениям о том, как это должно работать. Прошу помочь.

Спасибо.

2

Разобрался.
Почему-то во при запуске из крона появлялась строка в самом верху out.sql вида

:::::::::::::
outmp.sql
:::::::::::::

и импорт стопорился из-за ошибки MySQL.
Убрал с помощью SED эту запись и все стало ок.