Экран urxvt мигает при перерисовке

Прежде всего: ваши процессы поиска не экранируются, поэтому подстановочные знаки * преобразуются. Чтобы предотвратить это, вы можете использовать обратную косую черту \ или использовать одинарные кавычки '

Итак: найти . -type f -name '*-23May2017-10-00hrs.log' -print должно работать нормально.

Вернемся к вашим настоящим вопросам: Есть несколько способов решить эту проблему. Сначала вы можете использовать функцию find -mtime, чтобы просто прослушать каждый файл, последняя модификация которого была x минут назад. Предположим, ваш sip-сервер ведет журналы по адресу /var/log/sip/

find /var/log/sip/ -type f -name '*.log' -mmin +$((24*60)) - печать покажет вам каждый файл, оканчивающийся на .log и последнее изменение которого было 24*60 минут (1 день) назад.

Однако вы также можете использовать инструмент, предназначенный для обработки журналов, и это logrotate.

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

Я предлагаю использовать logrotate. Проверьте его простоту: https://linux.die.net/man/8/logrotate

0
01.08.2017, 19:11
2 ответа

Если вы не хотите мерцания, не сбрасывайте(ESC c)терминал в каждом цикле:

i=0
echo -e '\033c'
while : ; do
    echo -e '\033[H'"test$i"
    ((++i))
done
2
28.01.2020, 02:16

Непонятно, чего вы ожидаете от скрипта, постоянно пишет текст на экран и тут же его стирает. Похоже, вы заметили, что urxvt работает быстрее, чем xterm. Если вы хотите увидеть результат своего скрипта, добавьте файл sleep.

3
28.01.2020, 02:16

Теги

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