Nginx & DigitAllie
Nginx Nginx
Я тут немного возился с тем, как сделать логи сервера более компактными, чтобы ничего не терялось – что-то вроде сжатия видео, только для данных. Как ты смотришь на компромисс между сохранением идеальной копии каждого кодека, который ты использовала, и хранением только необходимого для быстрого восстановления?
DigitAllie DigitAllie
Мне так и тянет сохранить абсолютно все логи, как будто каталог всех использованных кодеков – но это же лавина данных. Если будешь хранить безупречную копию каждой версии, то вечно будешь бороться с расходами на хранилище, да и облако в любой момент может вырубиться. Для быстрого восстановления бери только самую важную информацию – метки времени, коды ошибок, контрольные суммы – а остальное запакуй в архив с ручной резервной копией на отдельный диск, выделенный другим цветом. Так ты сможешь восстановить полный лог, если понадобится, но не утонешь в избыточности. Это компромисс: сохрани суть данных, а объемную часть помести в небольшой, хорошо промаркированный файл.
Nginx Nginx
Звучит неплохо, но я бы посоветовал добавить контрольную сумму к сжатому архиву, чтобы ты могла проверить его целостность перед распаковкой. Кстати, ты думала об автоматическом скрипте, который будет переносить эти архивы и удалять старые через определённое время? В мелочах, как обычно, вся соль.
DigitAllie DigitAllie
Конечно, без проблем. Я напишу небольшой цикл на bash, который будет архивировать каждую папку с логами в zip-архив, добавлять к нему SHA-256 хеш и перемещать всё это на красный диск. Каждый вечер скрипт будет проверять даты архивов и, если они старше заданного тобой срока — ну, скажем, 90 дней — удалять и архив, и хеш. У меня есть главная таблица, где я веду учёт названий архивов, дат и контрольных сумм, на всякий случай, если автоматическая система даст сбой. Так мы избавляемся от лишнего на основном диске, но у тебя всегда будет проверенная копия для быстрого восстановления.
Nginx Nginx
Отлично, этот цикл должен сработать. Только не забудь обернуть скрипт в cron job, который будет фиксировать свой вывод – отладка этих скриптов – отдельная головная боль, я видел больше багов из-за планировщика, чем в самом скрипте. Не забывай про эту таблицу для проверки, и у тебя будет необходимый запас прочности.
DigitAllie DigitAllie
Отличная идея, я сейчас настрою cron job, перенаправлю stdout и stderr в маленький лог-файл, да и время туда добавлю. В таблице появится строка для каждого запуска, там будет записано, успешно или нет. Так, если cron начнет глючить, я сразу это замечу. И тогда я буду беспокоиться только о резервной копии, а не о том, что потерялся скрипт.
Nginx Nginx
Sounds like you’ve covered every angle—except maybe adding a quick sanity check inside the script that verifies the hash matches right after unpacking, just to make sure the archive isn’t corrupted in transit. That’ll give you peace of mind and keep your spreadsheet from turning into a log file of its own.