LINUX.ORG.RU

запуск скрипта через промежуток времени

 ,


0

2

Была такая тема (https://www.linux.org.ru/forum/general/168656, сейчас она в архиве). И там предложили использовать крон, что логично, но... А если мне надо запустить скрипт через 5 минут после старта системы? Можно конечно в крон добавить

*/5 * * * * root /usr/libexec/atrun
и каждую 5, 10, 15, 20, 25... минуту будет стартовать скрипт. Вроде нормально при условии,что система загрузилась ровно в 0, 5,10... минут, а если она загрузилась на 4 минуте, то скрипт сработает уже через минуту. Как быть,если нужно не каждые 5 минут, а через 5 минут? Если нужно однократное выполнение через 5 минут после каждого старта системы? Сейчас кроме старта скрипта в фоне из rc.local и «sleep 5m» других идей нет.

Или я что-то не недопонимаю?

PS 5 минут взято для примера, может 1 час, 2 часа любое время.

Ответ на: комментарий от redgremlin

Я ничего не понял.
Опять это слово. Что оно значит?
Что?

systemd, я вижу, схавал твой мозг. Я же говорил: он не просто создает зависимость. Он создает зависимость ПОЛЬЗОВАТЕЛЯ. А теперь еще выясняется что он размягчает мозги. Может лучше сторчаться было чем топить за него?

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

Попробую догадаться: оп решил воспитать кого-то из родственников. Либо следить за сестричкой. Может грабить снимки с экрана, когда мама лазит. В общем он не для себя старается.
ТС, я прав?

Не совсем.

Меня интересует, как без использования крона или sleep, можно выполнять то или иное действие через определенный промежуток времени (для автоматизации работы сервера).

Например, если сервер (не круглосуточно работающий,раздает инет, файлохранилище, торрент качалка и.т.д.) уже работает продолжительное время, значит можно выполнить какое-то длительное действие, т.к. его включили не только чтобы почту проверить (это особенности использования моего сервера).

Через определенные промежутки времени проверять наличие клиентов и при их отсутствии отключать сервер (с кроном, есть свои нюансы, по крайней мере у меня).

Наверняка, у многих знатоков, тут отписавшихся, есть свои решения и они будут конечно более верные, более логичные и более красивые,но у меня (см. мой ник) нет таких глубоких познаний, а потому выкручиваюсь как могу в меру моих познаний, моих догадок, советов знатоков.

LamerLinux
() автор топика
Ответ на: комментарий от redgremlin

Ладно, я не буду втаптывать твое самолюбие дальше. Надеюсь ты задумаешься. Пусть формально последнее слово будет за тобой. А все же

Покайся, брат; и выпей вместе с нами.

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

Я даже не буду тебе предлагать переконфигурировать хотя бы один ранлевел вручную, без помощи systemd

И правильно, что не предлагаешь, задача элементарная, было бы совершенно непонятно, что хотелось этим продемонстрировать.

Я тебя просто попрошу ХОТЯ БЫ системный журнал без него прочитать

journalctl -D /path/to/log

Да, не зря системный журнал утратил текстовый вид. Это тоже сделано затем чтобы без systemd ты не то что упрвлять системой, но даже узнать что в ней происходит — не мог без него. И плевать что журнал затем и существует, чтобы читать его на незапущенной системе, на проблемной системе. Тепрь, с systemd, журнал читается ТОЛЬКО если у тебя все в порядке. Не загрузился? — Целуй в сраку или мудохайся и пердолься с чрутами.

Я нихрена в этой наркомании не понял. Можно подумать, ты текстовые логи в незапущенной системе читаешь. Если ты можешь прочитать текстовые логи, значит раздел с логами примонтирован и и система находится в таком состоянии, что можно запустить cat/less/grep, а в этом случае ровно также можно запустить journalctl.

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

По сабжу выше отписался: at now + Если с момента старта. at понимает вагоны форматов времени, например в твоем случае можно m/min/minutes$ конкретные даты, дни недели, даты +/- смещения. man одним словом.

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

На чистом init невозможно построить хоть сколь-нибудь вменяемую систему управления сервисами

И не нужно. Это должна быть отдельная штука. Причём занимающаяся исключительно этим.

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

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

Представляешь, да. Они просто находятся на носителе, который просматривается из произвольной ОС, которая имеет право быть даже отличной от ОС семейства Linux.

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

> другим cgroup

Можно поинтересоваться нахера оно надо?

чтобы ядро корректно распределяло нагрузку CPU между различными задачами

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

> journalctl -D /path/to/log
> journalctl

Что и требовалось доказать. Без него — целуй в сраку.

ахахахаха!!

а как ты мог бы оказаться в такой гипотетической ситуации (реальной на практике, а не в лабораторных синтетических условиях) — чтобы у тебя не оказалось бы утилиты journalctl?!

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

> Можно подумать, ты текстовые логи в незапущенной системе читаешь.

Представляешь, да. Они просто находятся на носителе, который просматривается из произвольной ОС, которая имеет право быть даже отличной от ОС семейства Linux.

просматриваться на ОС отличной от семейства Linux?!?!

а зачем такое?

может что-то более правдоподобное придумаешь? то что реально может на практике встретиться?

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

Мне кажется ты втираешь мне какую-то дичь. На сколько я слышал это слово, оно обычно всегда звучало в контексте безопасности во-первых, и в связи с systemd во-вторых. И как я мог убедиться погуглив, никогда слака не имела по данному поводу проблем. Отдельные извращенцы есть которые с ней возились бы, что-то там устанавливали и настраивали, но не более того. Тоесть еще одна насосанная у дедушки Мороза проблема, спешал чтобы ее решал systemd

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

Прекратил бы уже кривляться. Текстовые логи читаются где угодно как угодно. Жордалд чтается только с запущенной функциональной системы. Причем про ключ -D впервые услышал итт. Видимо этим уродам таки поставили на вид, что журнал имеет смысл только когда он вообще читается. А изначально мне приходилось чрутиться чтобы эти сраные журналы почитать.

Csandriel_forever
()

#топик не читай, отвечай.

at умеет это делать, поэтому

man at

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

И не нужно. Это должна быть отдельная штука. Причём занимающаяся исключительно этим.

Ну, один (очень умный) гражданин уже другому (не столь умному) гражданину говорил, что ядро должно быть микроядерным, тем не менее, имеем то, что имеем. Может оно так и лучше, но OpenRC так за пределы gentoo-based так и не выбрался, а runit скорее мёртв, чем жив. А вот upstart и systemd взлетели сразу.

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

Оно, конечно, так. Если нет загрузочной флешки, но есть другая ос, если не используется btrfs, если система рухнула настолько, что не может войти даже в спасательный режим, но при этом её можно починить только редактируя конфиги, без выполнения команд, тогда да, текстовые логи предпочтительнее. Видимо, поэтому по дефолту journald транслируется в syslog и мне приходится это в свежеустановленных системах отключать. Но достаточно много «но», не находишь?

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

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

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

Ну прямо скажем я просто воспользовался случаем слегка прочирить по глобальным темам. Но сравнение твоего оппонента не более состоятельно чем сравнение члена с пожарной лестницей; я не брался этого отрицать. Смерть имеет смысл в проекте человека, и важный смысл она имеет, отсюда наличие точек отказа. Но если он хотел сказать что мол «точки отказа спроектированы» в рамках проекта systemd, я с этим тоже не могу не согласиться. На этом настаиваю изначально: это обфускация системы с целью упразднить пользователя от управления ею. Это создание глобальной зависимости — не прочих программ, а самого пользователя — от systemd. Цель — сделать все на столько сложно чтобы справлялась только автоматика. И эта цель уже достигнута, по факту. Грустно.

Он говорит

systemd will be win

Или как-то так. Очень печально. Это похоже на победу красных в 17-м. Они не знали что праздновали победу НАД СОБОЙ.

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

Видимо, поэтому по дефолту journald транслируется в syslog

Плюс, наверное, потому, что journald ещё и remote syslog не умеет.

и мне приходится это в свежеустановленных системах отключать.

Руки бы поотрывал таким выключальщикам... :-)

AS ★★★★★
()
Последнее исправление: AS (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.