logrotate и prerotate
Проблемма с ротацией логов, точнее при ротации, в общем конфиги
/etc/logrotate.conf
include /etc/logrotate.d
/etc/logrotate.d/cron_info
/var/log/syslog-ng/cron_info.log {
weekly
mailfirst
rotate 12
compress
create 640 root log
olddir /var/log/old
missingok
prerotate
cat /var/log/syslog-ng/cron_info.log |gpg -a -e -r AAAAAAAA --bzip2-decompress-lowmem --bzip2-compress-level 9|mailx -s "cron_info $(date)"
endscript
postrotate
/etc/init.d/syslog-ng reload > /dev/null 2>&1 || true
endscript
}
В итоге логи то ротируются, а вот сообщение на почту приходит но полностью пустое, хотя должно приходить с шифрованными логами. Где моя ошибка?
- Для комментирования войдите или зарегистрируйтесь

Командаcat
Команда
данная в консоли работает так, как вы хотите?
Надеюсь, значение AAAAAAAA из этой команды соответствует значению uid, из
gpg -k?P.S. Если значение AAAAAAAA содержит пробелы, возьмите его в кавычки - 'AAAAAAAA'.
Я ♥ Gentoo & Funtoo
В консоле работает все
В консоле работает все хорошо, а вот в логротате, как то нет. Такое чувство, что она пытается отправить логи, уже после того как она файл почистила.
ТоварищЪ
Меня глючит, или ты таки забыл строчку в конфиге?
В правильном случае (с последней/актуальной версией logrotate) оно должно бы выглядеть так:
sharedscripts prerotate cat /var/log/syslog-ng/cron_info.log |gpg -a -e -r AAAAAAAA --bzip2-decompress-lowmem --bzip2-compress-level 9|mailx -s "cron_info $(date)" endscript postrotate /etc/init.d/syslog-ng reload > /dev/null 2>&1 || true endscriptЗЫ: Что лично мне не понятно, так это почему оно вообще работает...
ЗЗЫ: А ещё он (точнее --- евонный парсер конфигурационных файлов) не любит [частично] комментированных строк в объявлении команд обработки конкретного лог-файла.
:wq
--
Live free or die
Anarchist написал(а):Меня
На основании чего, сделано это утверждение, ведь согласно man logrotate
sharedscripts Normally, prerotate and postrotate scripts are run for each log which is rotated, meaning that a single script may be run multiple times for log file entries which match multiple files (such as the /var/log/news/* example). If sharedscript is specified, the scripts are only run once, no matter how many logs match the wildcarded pat- tern. However, if none of the logs in the pattern require rotating, the scripts will not be run at all. If the scripts exit with error, the remaining actions will not be executed for any logs. This option overrides the nosharedscripts option and implies create option.Я ♥ Gentoo & Funtoo
Попробуйте сначала
Попробуйте сначала максимально упростить конфигурационный файл, тем более, как мне кажется, опция mailfirst явно лишняя:
mailfirst When using the mail command, mail the just-rotated file, instead of the about-to-expire file.И, возможно, стоит оформить команду шифрования и отправки на почту в виде отдельного скрипта, который и запускать из /etc/logrotate.d/cron_info.
Я ♥ Gentoo & Funtoo