Автоматично изпълняване на дадена команда в bash на даден интервал

Много често се налага да се следи изхода на дадена команда през даден период от време. Типични примери са: преглеждане на съсдържанието на дадена директория, следене на размера на даден файл, следене на използването на паметта, дисковете или процесора. В такива случаи се налага да се пише отново и отново дадена команда. Ето два начина за автоматизиране на този процес в bash.


Добрия стар цикъл


Първият вариант е просто да се създаде един безкраен цикъл, който изпълнява командата, изчаква известно време посредством sleep, и изпълнява наново. Ето пример как да се следи съдържанието на директорията /some/dir през 3 секунди:

while true;
do
    clear
    ls -al /some/dir
    sleep 3
done


Програмата watch


Съществува програма за Linux, който прави почти същото както по-горе - watch. Просто добавяте вашата команда и готово. Освен това получаватте бонус от хедър, съдържащ командата, интервала и времето на последното изпълнение. Този пример проверява свободното място на диска всеки 10 секунди:

watch -n 10 df -h
 

Няма коментари

Обратно към списъка със статиите

Тази страница последно е променяна на 2024-04-29 02:48:59