Я думаю, что основной вопрос здесь - то, что Вы пытаетесь защитить.
Вы могли, очевидно, удостовериться, что Ваш сервер базы данных является очень выборочным, в каких соединениях он принимает, который обеспечит защиту для Ваших данных из доступа через другие хосты.
Вы могли ssl опции соединиться с сервером (см. mysql руководство для деталей).
Вы могли зашифровать данные в файле свойств и использовать ключ расшифровки, трудно кодированный в источник Вашего приложения.
Но в конечном счете, если у кого-то есть доступ к серверу, где выполнение приложения, затем у него есть доступ к Вашей базе данных.
Logrotate действительно является инструментом для этой работы, но если вы не можете его использовать, вы можете использовать find
и -ctime
patameter
find /var/logs/httpd/my.example.host.com/ -ctime +0 -not -name '*.gz' -exec gzip {} \;
должен делать то, что вы хотите, поскольку он находит еще не сжатые файлы, которые были изменены> 24 часов назад, и сжимает их.
Чтобы убедиться, что файл, с которым вы работаете, еще не открыт, вы можете сделать что-то вроде
#!/bin/bash
for file in $(find /var/logs/httpd/my.example.host.com/ -ctime +0 -not -name '*.gz')
do
lsof | grep $file
if [$? -eq 1 ]
then
gzip $file
fi
done