LINUX.ORG.RU

Лог скрипта

 , ,


0

1

Есть скрипт, который рассылает смс. Запускается и проверяеться с крона, одновременно работает 3 процесса параллельно. Все 3 срут в один лог, на лог натравил logrotate. По причине засирания ошибками симфони пришлось ротировать логи раз в час и момент ротации периодически перестает писать лог до перезапуска скрипта. Что это может быть и как такого избежать?



Последнее исправление: demjanok (всего исправлений: 2)

А почему бы не писать 3 разных лога, различающихся пидами?

Просто заменить в скрипте:

echo что-то >> sms.log
на
echo что-то >> sms_$$.log

Да и размер лога можно контролировать из скрипта и переименовывать из sms_PID.log в sms_PID_BНомер_от_1.log, начиная новый лог. А ещё один процесс может сжимать логи с именами sms_1234_B1.log sms_1234_B2.log и т. д. gzip'ом или чем-то ещё при необходимости.

aureliano15 ★★
()
Ответ на: комментарий от aureliano15

Можно конечно попробовать, но все же удобней когда все пишет в один файл + pid будет периодически меняться

demjanok
() автор топика
Ответ на: комментарий от demjanok

Можно конечно попробовать, но все же удобней когда все пишет в один файл

Ну тогда попробовать так же переименовывать из скрипта, но без пида, коли logrotate не справляется. Операция переименования очень быстрая.

+ pid будет периодически меняться

Т. е. они не круглосуточно висят, а постоянно вырубаются и снова запускаются? Тогда можно задать для них доп. параметр типа 1, 2, 3 или что-то ещё произвольное и добавлять его к имени как-то так:

echo log message >> sms_$1.log

Но это имеет смысл, если разные экземпляры скрипта выполняют разную работу (например, шлют разные смски или разным абонентам или есть другие различия). Если же они делают абсолютно одно и то же, то 3 лога действительно будут только путать. Тогда лучше писать пид внутри самого лога в каждой строке, чтоб знать, от какого задания сообщение.

aureliano15 ★★
()

момент ротации периодически перестает писать лог до перезапуска скрипта

Очевидно, создаётся новый файл с иным файловым дескриптором. В логротейте есть опция copytruncate?

pod ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.