LINUX.ORG.RU
ФорумAdmin

мониторинг на остановку прихода файлов....?

 , ,


1

1
приветствую!
есть система, в которой есть каталог /data, и под ним некоторые подкаталоги - /data/ecm, /data/rvs, /data/zli, итдп.

во все эти каталоги достаточно регулярно валятся файлы - идёт распределение и обработка.

возможно ли написать скрипт на баше, который будет караулить файлы, и скажем, если в последние десять минут с текущего момента ниодного свежего файла не появилось в дефинированных каталогах - будет отправлять мне письмо с сабджектом " шеф, всё пропало!" (ц)?

искал в гугле чтото такое, ненашёл ни одного решения такой проблемы...
mail -s «kaput» часть я сам наваяю, мне бы механизм который проверяет нет ли свежих фацлов в каталогах за х минут, и если их нет - то выполнение команды....

спасибо заранее....

while true ; do
	if ! find "$DATA_PATH" -type f -mmin -10 | grep -q . ; then
		echo "шеф, всё пропало!"
		sleep 10m
	fi
	sleep 2m
done
Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от dhameoelin

Аргументируй ненужность inotify

man find

Deleted
()
Ответ на: комментарий от dhameoelin

У дидов не было, неча и начинать. СистемГ!

anonymous
()
Ответ на: комментарий от dhameoelin

ему нужно отслеживать не приход файлов, а их отсутствие в период времени, т.е. все-равно придется как-то замерять интервал времени.

futurama ★★★★★
()
Ответ на: комментарий от futurama

Постоянно считать время, по событию от notify сбрасывать отсчёт. В твоём варианте всё равно придётся дёргать проверку по таймеру в цикле.

anonymous
()
Ответ на: комментарий от futurama

Каждый раз гонять find? Как-то не очень вариант, имхо. Лучше пусть incron после каждого нового файла триггер на нужный интервал перевзводит.

dhameoelin ★★★★★
()
Ответ на: комментарий от dhameoelin

Каждый раз гонять find? Как-то не очень вариант, имхо.

Боишься, что кэш инодов в ОЗУ перегреется?

Лучше пусть incron после каждого нового файла триггер на нужный интервал перевзводит.

Писать нечто event-driven на bash-е — ну просто мечта каждого админа.

Deleted
()
Ответ на: комментарий от Deleted

Пф, там три-четыре строчки будет, имхо

Лучше, конечно, админ будет пердолиться со своей реализацией крона и инкрона, ок...

dhameoelin ★★★★★
()
Ответ на: комментарий от dhameoelin

Какого крона, алло? man sleep, man find. Тут проблема высосана из пальца, решение из 3 строк кода. Я выше уже показал даже.

Deleted
()
Ответ на: комментарий от Radjah

incron

systemd.timer

Пердолиться с системно-зависимыми нестандартными компонентами — и всё это чтобы проверить сраный mtime файлов в каталоге? Да уж, а потом эти люди идут писать код, и получается KDE.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)

.

а что если «Запоминать» размер каталога и сравнивать предыдущее с последующим значением.

Dob
()
Ответ на: комментарий от anonymous

/data/ecm, /data/rvs, /data/zli, итдп.

итдп — это сколько (вопрос к ТС)?

ты (anon) хочешь рекурсивный inotify для /data?

Или для каждой директории по строчке в инкроне?

futurama ★★★★★
()
Ответ на: комментарий от Deleted

while true ; do
if ! find

о, спасибо большое.... попробую сегодня...

wisedraco ★★
() автор топика
Ответ на: комментарий от futurama

итдп — это сколько (вопрос к ТС)?

штук пятнадцать, но могут добавлятся. количество файлов в этих каталогах всех вместе врядли будет более пары - тройки сотен - старое будет раз в несколько часов удалятся другим скриптом...

wisedraco ★★
() автор топика
Последнее исправление: wisedraco (всего исправлений: 1)
Ответ на: . от Dob

а что если «Запоминать» размер каталога и сравнивать предыдущее с последующим значением.

Мы не знаем будут ли создаваться файлы нулевой длинны.

ashot ★★★★
()
Ответ на: комментарий от dhameoelin

Каждый раз гонять find?

достаточно проверить время директорий, если нет аутпута, то сигнализировать

find /data -maxdepth 1 -type d -mmin -10 ....

futurama ★★★★★
()
Ответ на: комментарий от Deleted

Пердолиться с системно-зависимыми нестандартными компонентами — и всё это чтобы проверить сраный mtime файлов в каталоге?

Ты не модный и не современный хейтер прогресса.

ashot ★★★★
()
Ответ на: . от Dob

И ещё вдогонку, ТС пишет, что старые файлы будут удаляться. Поэтому возможен вариант: сколько ушло - столько пришло.

ashot ★★★★
()
Ответ на: комментарий от ashot

ага в комментах нашел уточнение. спасибо

Dob
()
Ответ на: комментарий от dhameoelin

Да гонять find, но не по огромному дереву, а по одной директории с 15 объектами. Это лучше incron + ГОНЯТЬ по cron'у скрипт проверки результатов incron

futurama ★★★★★
()
Ответ на: комментарий от futurama

Разве что ты вечером напомнишь. На работе у меня нет ни линуксов ни интернетов нормальных. А с мобилки я тебе много не напишу.

dhameoelin ★★★★★
()
Последнее исправление: dhameoelin (всего исправлений: 1)
Ответ на: комментарий от dhameoelin

Нет, блин, надо написать свой велосипед без сиденья, зато на гусеничном ходу...

Не обязательно докладывать мне о своих сливах.

Deleted
()
Ответ на: комментарий от futurama

Incron, при появлении файла, запускает скрипт с отсроченным алармом, который убивает себя предыдущего по pid.

dhameoelin ★★★★★
()
Ответ на: комментарий от dhameoelin

Да, можно и так, но ГОНЯТЬ будешь кучу скриптов, если много файлов приходит, вместо одного раз в 10 мин.

futurama ★★★★★
()
Ответ на: комментарий от dhameoelin

кого ты слил? человек поставил задачу на 5 строк (на деле 2), получил 5 строк готовой реализации.
ты же предлагаешь пердолинг и чешешь языком по телефону.
когда эта мегазадача дойдет до опакечивания и CI - позови.

SevikL ★★★★★
()
Ответ на: комментарий от SevikL

Ты следом можешь идти. На личности переход начал не я.

dhameoelin ★★★★★
()
Ответ на: комментарий от futurama

Я не знаю, насколько ТС критично знать точное время отвала, так что перестраховываюсь. Уж слишком он неясно сформулировал условие.

dhameoelin ★★★★★
()
Ответ на: комментарий от dhameoelin

если в последние десять минут с текущего момента ниодного свежего файла не появилось в дефинированных каталогах - будет отправлять мне письмо

futurama ★★★★★
()
Ответ на: комментарий от dhameoelin

критично знать точное время отвала

в пределах пары минут - достаточно.

кстати, если ещё и както добыть время последнего пришедшего файла при сбое, и вставить в письмо, было бы вообще шикарно....

wisedraco ★★
() автор топика
Ответ на: комментарий от futurama

Текущего момента относительно чего? Если с момента появления последнего файла, то мой вариант больше подходит, если просто относительно текущего времени, то твой более подходящий.

dhameoelin ★★★★★
()
Ответ на: комментарий от dhameoelin

более чем терпит, ничего мегаспещшного там нет, просто интересно такой скрипт ввести в продукцию, а также увидеть разные методы решения такой задачи, спасибо. кастану.

wisedraco ★★
() автор топика
Ответ на: комментарий от dhameoelin

ты главное удели внимание убийству лишних скриптов в условиях множества одновременно приходящих файлов, а то убьете друг друга и будет эпик фейл

futurama ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.