Как ограничить размер файла журнала экрана

#!/bin/bash

# Array of root folders
folders=("a" "b")

# Search all specified root folders
for f in ${folders[@]}; do
    # Descend hierarchy and retrieve modification date of each file with "stat"
    find $f -type f -exec stat -f "%m,%N" {} ';' | \
        # sort by date, most recent first
        sort -gr | \
        # extract first (most recent) file
        head -1 | \
        # return file name only
        cut -d, -f2
done
4
15.03.2017, 14:40
1 ответ

Если вы не хотите контролировать размер файлов в реальном времени журнал, вы можете использовать logrotate с cron для этого.

Предполагая, что вы хотите повернуть screenlog.log в каталоге / home / username / , вы должны создать что-то вроде этого файла конфигурации:

screenlog-rotate.conf :

/home/username/screenlog.log {
  size 100k
}

затем либо запустите logrotate /home/username/screenlog-rotate.conf, либо настройте его как задание cron для периодического запуска.Имейте в виду, что logrotate по умолчанию должен запускаться как root, а файл конфигурации ( screenlog-rotate.conf выше) также должен быть chown от root , в противном случае он будет жаловаться на неправильные разрешения в конфигурации. Проверьте, запустив logrotate с флагом -v , чтобы убедиться, что он понял, что вы имели в виду.

Приведенный выше файл конфигурации прост и не будет хранить старые файлы журнала . Он просто удалит файл, если он превышает указанный размер, в то время как экран по-прежнему выводит свой журнал как обычно (я тестировал это). Если вы хотите сохранить старые журналы, вам нужно добавить rotate N , где N - это количество повернутых журналов, которое вы хотите сохранить.

Ознакомьтесь с man 8 logrotate , чтобы узнать, как настроить logrotate . Вот связанный с этим вопрос: Как ограничить размер файла журнала с помощью >>

logrotate , кажется, включен по умолчанию в Arch Linux, но я не уверен в других дистрибутивах. Я ожидал, что по крайней мере Debian установит его по умолчанию, и его должно быть легко установить с помощью диспетчера пакетов.

2
27.01.2020, 21:01

Теги

Похожие вопросы