Прежде всего: ваши процессы поиска не экранируются, поэтому подстановочные знаки *
преобразуются.
Чтобы предотвратить это, вы можете использовать обратную косую черту \
или использовать одинарные кавычки '
Итак:
найти . -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
Если вы не хотите мерцания, не сбрасывайте(ESC c
)терминал в каждом цикле:
i=0
echo -e '\033c'
while : ; do
echo -e '\033[H'"test$i"
((++i))
done
Непонятно, чего вы ожидаете от скрипта, постоянно пишет текст на экран и тут же его стирает. Похоже, вы заметили, что urxvt работает быстрее, чем xterm. Если вы хотите увидеть результат своего скрипта, добавьте файл sleep.