Судя по тому, что я вижу, logrotate запутался. Во-первых, вы должны быть более строгими с вашим шаблоном имени. Вместо вращения /var/log/remots/*/*
следует вращать:
/var/log/remots/*/*.log {
rotate 178
daily
maxage 178
compress
}
При изменении конфигурации не забудьте проверить /var/lib/logrotate/status
. Удалите все записи для файлов .*gz
.
Менее распространено смешивание logrotate с программами, меняющими собственные журналы. Вы настроили rsyslog для записи в устаревшие файлы журналов. Чаще используется статическое имя файла и позволяет logrotate добавлять даты за вас. Я заметил, что у других были проблемы с тем же типом настройки :https://stackoverflow.com/questions/8962477/logrotate-files-with-date-in-the-file-name
.
Более простой способ настроить это — записать журнал «remots» (rsyslog )в статическое место, например:
$template GuardaRemots, "/var/log/remots/%HOSTNAME%.log"
:source, !isequal, "localhost" -? GuardaRemots
Затем поверните:
/var/log/remots/*.log {
rotate 178
daily
maxage 178
compress
}
Logrotate будет автоматически добавлять дату при ротации.
Я могу кое-что предложить, пожалуйста, проверьте, может ли это быть полезным:
Что вы можете сделать, так это выбрать шлюз по умолчанию и установить переменную среды, а затем использовать для этого ConditionEnvironment.
Ниже приведены команды, которые могут получить IP-адрес шлюза и установить переменную среды.:
gw=$(ip r | grep default | grep -oE "([[:digit:]]+\.)+{3}[[:digit:]]")
if [ "$gw" == "192.168.X.X" ]; then export officeNetwork=1; else export officeNetwork=0; fi
Здесь замените 192.168.X.X на IP-адрес шлюза вашего офиса по умолчанию
Надеюсь, это поможет