LINUX.ORG.RU

Выполнять действия каждые 10 дней.

 , ,


0

1

Система должна каждые десять дней выполнять определенные действия.
Напрашивается бесконечный цикл с использованием sleep.
Типа такого:

#!/bin/sh
CHECK_INTERVAL=864000
while [ true ]; do
   sleep $CHECK_INTERVAL
done
Однако немного пугает астрономическое количество секунд. Если более православный путь? Или только так и делается?
Забыл сказать, crona нет.



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

cron не предлагать?

ass ★★★★
()

Забей на доки@фигач костыли.

Есть хоть одна причина по которой не устроил cron?

phoen ★★
()

Что-то вспомнилось, в антивирусе Попова что ли, или каком-то аналогичном, задержки были пингами реализованы. И ведь работало!

orm-i-auga ★★★★★
()
Ответ на: комментарий от orm-i-auga

Могу на Си что-нибудь слабать. Но там же ведь те же слипы. И бесконечный цикл.

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

Вопрос собственно в том, сильно ли навредит системе такой sleep МИЛЛИАРД_СЕКУНД.

Спите спокойно, совсем не навредит.

# Гнутый sleep умеет сразу указать 10d.

d_a ★★★★★
()

Если более православный путь?

в настенном календаре дни(декады) красным отметить

anTaRes ★★★★
()

пугает астрономическое количество секунд

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

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

Неправда, процессор изнашивается сильнее

zolden ★★★★★
()

это была шутка? Или на самом деле вообще ничего о планировщиках не слышал? ВНЕЗАПНО, в венде тоже есть планировщик, да.

Как это «крона нет»? Добавь.

targitaj ★★★★★
()
Последнее исправление: targitaj (всего исправлений: 1)
$ date +%s; sleep 100; date +%s
1488375140
1488375240
$

так, кстати, и ребуты разные обработать проще
не благодари

anonymous
()
Ответ на: комментарий от orm-i-auga

Антивирусе Бабушкина, наверное, сделанном на bat-файлах.

Это потому что в мастдайном cmd нет встроенной команды sleep. Задержки пингами - это официальный костыль, ЕМНИП, рекомендованный какой-то учёной обезьяной из самого некрософта.

// Мне очень стыдно, что я это знаю.

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

Гнутый sleep умеет сразу указать 10d

Два чая этому господину!

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

Ноль часов, ноль минут, 10-го числа, 20-го числа и одинадцать раз в год 30-го числа — (строго) каждые 10 дней не выходит.

К сожалению одним кроном поставленная задача не решабельна.

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

В лучшем случае:

0 0 * * * test $((`date +%-j` % 10)) -eq 0 && echo yes
Но и тогда в конце года период сбивается.

Ещё как вариант:

0 0 * * * test $((`date +%s` / 86400 % 10)) -eq 0 && echo yes
Но это всё грязные хаки.

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

черт, да :(
через неделю кончатся такие времена, под конец праздника:

$ date +%s | cut -b 1-4
1488
$ date -d @1489000000
Ср мар  8 22:06:40 MSK 2017
$

anonymous
()
[dan@dan-desktop ~]$ sleep 5s
^C
[dan@dan-desktop ~]$ sleep 5m
^C
[dan@dan-desktop ~]$ sleep 5h
^C
[dan@dan-desktop ~]$ sleep 5d
^C
[dan@dan-desktop ~]$ sleep 5w
sleep: invalid time interval ‘5w’
Try 'sleep --help' for more information.
[dan@dan-desktop ~]$ sleep 5y
sleep: invalid time interval ‘5y’
Try 'sleep --help' for more information.
melkor217 ★★★★★
()
Ответ на: комментарий от orm-i-auga

То был антивирус иммунитет от бабушкина.

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

Не православно же. Он признаёт только портянки на оригинальной борншел из UNIX V7, всё, что новее — заговор жидомассонов по уничтожению «духа юникса»™®©.

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

Так вот ещё в чём жидомассонов не обвиняли. Они всё, да.

podovalov5
() автор топика

Выполнять действия каждые 10 дней.
sleep

Боже правый, да вы же легендарная личность!

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