Вариант для распечатки |
Пред. тема | След. тема | ||
Форум Разговоры, обсуждение новостей | |||
---|---|---|---|
Изначальное сообщение | [ Отслеживать ] |
"Раздел полезных советов: Случайная задержка в shell-скрипте, выполняемом из crontab" | +3 +/– | |
Сообщение от auto_tips (??), 27-Июл-22, 14:45 | ||
применимо в системах без anacron, без /etc/cron.[hourly|daily|weekly|monthly] и без systemd. | ||
Ответить | Правка | Cообщить модератору |
Оглавление |
Сообщения | [Сортировка по ответам | RSS] |
1. Сообщение от Аноним (1), 27-Июл-22, 14:45 | +2 +/– | |
Чего только люди не придумают, чтобы jot не ставить | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #7, #12 |
2. Сообщение от grayich (ok), 27-Июл-22, 14:52 | +15 +/– | |
sleep $((RANDOM % 3600))и ещё десяток более коротких вариантов, в зависимости от системы и имеющихся утилит | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #3, #5 |
3. Сообщение от Аноним (3), 27-Июл-22, 21:02 | –1 +/– | |
Это баш, кореутилс, перл, питон. В какой-нибудь фряхе tcsh вот и попробуй с ним сделать что-нибудь. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #2 Ответы: #4, #60 |
4. Сообщение от grayich (ok), 27-Июл-22, 22:41 | +3 +/– | |
в фряхе в базовой системе(из коробки) есть jot, как выше предлагалиjot -r 1 1 3600 | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #3 Ответы: #48 |
5. Сообщение от john_erohin (?), 28-Июл-22, 04:37 | +1 +/– | |
> продвинутого шела, | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #2 Ответы: #6 |
6. Сообщение от grayich (ok), 28-Июл-22, 10:22 | +3 +/– | |
> написал "без башизмов". но дорогая редакция не пропустила. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #5 Ответы: #14 |
7. Сообщение от Аноним (7), 28-Июл-22, 10:54 | +/– | |
Люди про неё не знают. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #1 Ответы: #46 |
8. Сообщение от OpenEcho (?), 28-Июл-22, 11:58 | +4 +/– | |
Plain C: | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #18, #67 |
9. Сообщение от OpenEcho (?), 28-Июл-22, 12:05 | +3 +/– | |
#!/bin/sh | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
10. Сообщение от Аноним (-), 28-Июл-22, 17:46 | –1 +/– | |
гыг, это типа как суть плоского анекдота объяснять кому-то | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
11. Сообщение от Аноним (11), 28-Июл-22, 23:24 | +/– | |
bc значит у него есть, а shuf нет... Вероятно, недоучили баш, недоучили шелл, недоучили всё. Но это не мешает радоваться изобретенному велосипеду и учить других. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #17, #32 |
12. Сообщение от Аноним (12), 28-Июл-22, 23:46 | +3 +/– | |
> Чего только люди не придумают, чтобы systemd не ставить | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #1 Ответы: #66 |
13. Сообщение от Аноним (11), 28-Июл-22, 23:47 | +2 +/– | |
`echo 3600 '*' $(od -An -N2 -i /dev/urandom) / 65536 | bc` | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
14. Сообщение от Аноним (-), 28-Июл-22, 23:52 | +1 +/– | |
Повесить в памяти жирный интерпретер, да еще с немеряными модулями/стдлибами чтобы задержку отмерять это конечно круто. Надо было не мелочиться и V8 для этого заюзать, чего уж там. Или JVM накрайняк. Иначе недостаточно энтерпрайзно. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #6 Ответы: #15 |
15. Сообщение от john_erohin (?), 29-Июл-22, 06:33 | +1 +/– | |
> Можно еще Менеджер Рандомных Задержек накодить | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #14 Ответы: #16 |
16. Сообщение от Аноним (-), 29-Июл-22, 13:13 | +/– | |
А может, просто man systemd.timer? Он умеет и это и намного больше :). Заодно крон можно отправить на свалку - в системде хотя-бы можно посмотреть активные таймеры ОДНОЙ командой. Сразу. Без велосипедизма. С кроном так почему-то не катит. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #15 Ответы: #27 |
17. Сообщение от OpenEcho (?), 29-Июл-22, 16:01 | +/– | |
Многие дистрибутивы делают рэндомный запуск скриптов апдейта, чтобы уменшить ударную нагрузку от массы клиентов | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #11 Ответы: #19 |
18. Сообщение от Аноним (18), 29-Июл-22, 16:14 | +/– | |
> srand(time(NULL)) | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #8 Ответы: #20 |
19. Сообщение от Аноним (11), 29-Июл-22, 17:00 | –3 +/– | |
Значит им тоже надо головой подумать и понять, что рандомные задержки проблему не решают. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #17 Ответы: #21, #33, #62 |
20. Сообщение от OpenEcho (?), 29-Июл-22, 18:10 | +/– | |
>> srand(time(NULL)) | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #18 Ответы: #24 |
21. Сообщение от OpenEcho (?), 29-Июл-22, 18:16 | –1 +/– | |
> Значит им тоже надо головой подумать и понять, что рандомные задержки проблему | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #19 Ответы: #22 |
22. Сообщение от Аноним (22), 29-Июл-22, 19:59 | –1 +/– | |
А, вы про это. Что будет, если клиенты отключат задержку, чтобы получить обновления раньше? | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #21 Ответы: #23, #63 |
23. Сообщение от OpenEcho (?), 29-Июл-22, 21:11 | +/– | |
> А, вы про это. Что будет, если клиенты отключат задержку, чтобы получить | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #22 |
24. Сообщение от Аноним (24), 30-Июл-22, 00:28 | +/– | |
Ну вот запустил крон 10 штук процессов в одну и ту же секунду. Все 10 процессов выполнили time и получили одинаковое значение. И у всех процессов будет одинаковый начальный random seed (например, у меня сейчас 1659129796). И все 10 потом стартанут через одинаковую паузу... | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #20 Ответы: #25, #26 |
25. Сообщение от OpenEcho (?), 30-Июл-22, 13:48 | –1 +/– | |
> Ну вот запустил крон 10 штук процессов в одну и ту же | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #24 |
26. Сообщение от Аноним (26), 30-Июл-22, 16:54 | –1 +/– | |
Про 10 параллельно запускаемых задач нет ни слова. Это была моя попытка проиллюстрировать почему решение получилось не очень на конкретном примере. Неудачная попытка. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #24 |
27. Сообщение от john_erohin (?), 30-Июл-22, 21:34 | +2 +/– | |
> в системде хотя-бы можно посмотреть активные таймеры ОДНОЙ командой. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #16 Ответы: #28, #61 |
28. Сообщение от Аноним (28), 31-Июл-22, 17:25 | +/– | |
В системде есть юниты с типом .timer и их в типовом случае таки более одного. Это очень логичное название т.к. описывает что оно делает и как себя ведет. И кроме всего прочего там достаточно фич чтобы заодно описать и вон ту хотелку, без изобретения велика с квадратными колесами самому. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #27 |
29. Сообщение от ABATAPA (ok), 03-Авг-22, 20:47 | +3 +/– | |
root@OpenWrt:~# od | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #38 |
30. Сообщение от aa (?), 04-Авг-22, 06:47 | +4 +/– | |
man 5 crontab | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #31, #36 |
31. Сообщение от Аноним (31), 04-Авг-22, 10:41 | +1 +/– | |
не мешай человек НЕ читать маны и изобретать велосипеды | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #30 |
32. Сообщение от gapsf2 (ok), 04-Авг-22, 15:15 | +/– | |
> ls dir/with/scripts/*sh | xargs -L1 -P4 sh | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #11 Ответы: #34 |
33. Сообщение от Kuromi (ok), 05-Авг-22, 15:30 | +1 +/– | |
Вспомните что происходит когда условная Убунта релизит новый выпуск - серверы пусть и не лежат, но ощутимо перегружены. Умные чукчи сами ждут недельку, если не ностальгируют по дайлапу | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #19 |
34. Сообщение от Аноним (11), 05-Авг-22, 23:35 | +/– | |
Любители засирать шелл-скрипты бессмысленными флажками такие любители. Лишь бы пять копеек вставить. Скрипты в папку кладет администратор, он же дает имена файлам. Администратор-дебил создаст файл с именем, часть которого превратится в команду? Кстати, сможешь составить такое имя файла? Или как всегда, лишь бы квакнуть? | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #32 Ответы: #52 |
35. Сообщение от бублички (?), 07-Авг-22, 20:35 | –2 +/– | |
> dd if=/dev/urandom bs=1 count=4 status=none | od -t u4 | head -1 | cut -c 8- | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #37 |
36. Сообщение от john_erohin (?), 08-Авг-22, 11:20 | +3 +/– | |
devuan: | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #30 Ответы: #51, #65 |
37. Сообщение от john_erohin (?), 08-Авг-22, 11:24 | +/– | |
ваша конструкция почему-то не способна выдать больше чем 65535. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #35 Ответы: #39, #40, #41 |
38. Сообщение от john_erohin (?), 08-Авг-22, 11:29 | +/– | |
> md5sum | sed 's/[a-f]//g' | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #29 Ответы: #47 |
39. Сообщение от vodz (ok), 08-Авг-22, 13:03 | +1 +/– | |
Ну надо -N4, да и для scale=0 bc не надо: | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #37 |
40. Сообщение от Аноним (11), 08-Авг-22, 13:15 | +/– | |
Для практических нужд это запредельно много. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #37 |
41. Сообщение от бублички (?), 09-Авг-22, 15:17 | +3 +/– | |
в задании итого меньше требовалось (от 0 до 3600) | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #37 Ответы: #42 |
42. Сообщение от john_erohin (?), 09-Авг-22, 15:43 | –3 +/– | |
> в задании итого меньше требовалось | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #41 Ответы: #44, #56 |
44. Сообщение от бублички (?), 09-Авг-22, 17:00 | +2 +/– | |
>> в задании итого меньше требовалось | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #42 |
45. Сообщение от snarkx (?), 12-Авг-22, 07:53 | +4 +/– | |
А ведь где-то для этого используют jvm, и обязательно, обязательно Spring Boot. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
46. Сообщение от A (?), 17-Авг-22, 19:23 | +/– | |
Ведь из примитивов можно всё соорудить быстро. Остальное интересно, полезно, нужно, но необходимости нет. Т.к. из примитивов соорудить можно. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #7 |
47. Сообщение от ABATAPA (ok), 23-Авг-22, 12:26 | +1 +/– | |
А зачем равномерность распределения при организации задержки?! :-D | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #38 Ответы: #49 |
48. Сообщение от _ (??), 23-Авг-22, 20:10 | +4 +/– | |
В опёнке в самом crontab(5) заложен функционал случайного времени выполнения команды | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #4 Ответы: #59 |
49. Сообщение от john_erohin (?), 25-Авг-22, 08:16 | +/– | |
а затем чтобы задержки от всех локалхостов были равномерно распределены в заданном интервале, | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #47 |
50. Сообщение от pavlinux (ok), 02-Сен-22, 20:06 | +/– | |
Баян https://www.opennet.ru/openforum/vsluhforumID9/9132.html | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #70 |
51. Сообщение от Аноним (52), 23-Сен-22, 04:42 | +/– | |
У меня есть такая строчка в мане от cronie, который вроде бы форк викси крона, на что прозрачно намекает подпись Paul Vixie ⟨vixie@isc.org⟩ в этом же мане. Но греп её там не находит, так что больше смахивает на проблему с командой поиска. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #36 Ответы: #53 |
52. Сообщение от Аноним (52), 23-Сен-22, 15:32 | +/– | |
Администратор тоже человек и может ошибиться. Я уже сталкивался с тем, что кастомный джоб где-то не запускался. В содержании (простенький шелл скрипт) или имени не было ничего подозретельного (файл назывался, условно, /etc/cron.daily/run.foo). После долгих поисков проблем со всеми сервисами оказалось, что файлы из cron.daily дебиан пропускает через велосипед по имени run-parts, который не принимает т.о.ч.к.и в именах и наш сервис это животное просто игнорировало. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #34 Ответы: #64 |
53. Сообщение от john_erohin (?), 24-Сен-22, 12:02 | +/– | |
или проблемы с маном. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #51 Ответы: #54 |
54. Сообщение от Аноним (52), 25-Сен-22, 12:48 | +1 +/– | |
Минутка занудства, раз мы тут учим правильно башскриптить: wc -l с грепом не нужен, он уже сам умеет считать количество совпадений (grep -c RANDOM_DELAY). У тебя там ноль может быть ещё из-за того, что выполняемый бинарник называется crond. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #53 Ответы: #57 |
55. Сообщение от playnet (ok), 26-Сен-22, 12:38 | +/– | |
"крон без башизмов" на мега башизме. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
56. Сообщение от playnet (ok), 26-Сен-22, 12:41 | +/– | |
кому может? | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #42 Ответы: #58 |
57. Сообщение от john_erohin (?), 26-Сен-22, 13:18 | +/– | |
> может быть ещё из-за того, что | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #54 |
58. Сообщение от john_erohin (?), 26-Сен-22, 13:20 | +/– | |
> В часе 3600 секунд, всё остальное - влажные юношеские фантазии. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #56 |
59. Сообщение от Michael Shigorin (ok), 09-Окт-22, 13:00 | +2 +/– | |
Занятно, хорошо бы потырить. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #48 |
60. Сообщение от Michael Shigorin (ok), 09-Окт-22, 13:00 | +/– | |
Так-то head(1), cut(1) и куча других форков в предложенном варианте -- тоже coreutils; если бы оказался заперт на дебиане и таких кроновых заданий было бы [по контейнерам/виртуалкам] достаточно много/часто, ну или по красоте -- то форкнул бы уже какой-нить лёгкий bash (а на альте /bin/sh и есть лёгкий баш без readline и всего прочего). | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #3 |
61. Сообщение от Michael Shigorin (ok), 09-Окт-22, 13:02 | +1 +/– | |
> все начинается с нестандартной терминологии, а заканчивается переходом отработавшего | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #27 |
62. Сообщение от Michael Shigorin (ok), 09-Окт-22, 13:05 | +1 +/– | |
> Значит им тоже надо головой подумать и понять, что рандомные задержки проблему | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #19 |
63. Сообщение от Michael Shigorin (ok), 09-Окт-22, 13:06 | –1 +/– | |
> Что будет, если клиенты отключат задержку, чтобы получить обновления раньше? | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #22 |
64. Сообщение от Michael Shigorin (ok), 09-Окт-22, 13:07 | +/– | |
> После долгих поисков проблем со всеми сервисами оказалось, что файлы из | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #52 |
65. Сообщение от sshutdown0w (?), 15-Ноя-22, 14:59 | +/– | |
вот для FreeBSD | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #36 |
66. Сообщение от Аноним (66), 19-Ноя-22, 15:23 | +/– | |
Придумывали и будем придумывать, чтобы эту какашку не ставить. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #12 |
67. Сообщение от Аноним (66), 19-Ноя-22, 15:26 | +/– | |
Нафига козе этот баян, если такое простое действо можно/нужно на скриптоте? | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #8 Ответы: #68 |
68. Сообщение от OpenEcho (?), 20-Ноя-22, 13:17 | +/– | |
> Нафига козе этот баян, если такое простое действо можно/нужно на скриптоте? | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #67 |
69. Сообщение от qwas (??), 26-Дек-22, 15:05 | +/– | |
sleep $(($$%3600)) | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
70. Сообщение от Алексей (??), 24-Июл-23, 18:07 | +/– | |
Тема "кто виноват" раскрыта. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #50 |
Архив | Удалить |
Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема |
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |