В этой статье я покажу как очищать устаревшие логи из Loganalyzer.
Смотрим ID источника, например в моем случае это Source1, его конфигурация описана в конце файла /var/www/loganalyzer/src/config.php, укажем его в скрипте, а также укажем правильный путь к директории и время в секундах сколько хранить историю, например 86400 это 24 часа, 2592000 — 30 дней, 15552000 — 6 месяцев:
#!/bin/sh
cd /var/www/loganalyzer/src/cron/
php ./maintenance.php cleandata Source1 olderthan 15552000
Сделаем файл скрипта выполняемым:
chmod u+x maintenance.sh
После этого его можно выполнять вручную или добавить в планировщик /etc/crontab, чтобы он выполнялся автоматически, например ежедневно ночью в 01:15:
15 1 * * * root /var/www/loganalyzer/src/cron/maintenance.sh >/dev/null 2>&1
Также приведу пример ручного удаления записей из базы данных:
mysql
show databases;
use Syslog;
show tables;
select count(*) FROM SystemEvents;
select count(*) FROM SystemEventsProperties;
select * FROM SystemEvents LIMIT 10;
DELETE FROM SystemEvents WHERE ReceivedAt LIKE '2021-02%';
Смотрите также мои статьи:
Установка Rsyslog + Loganalyzer + MySQL
Использование CRON