случайная работа cron

0

Мне нужен скрипт1, который будет запускать скрипт2 случайным образом в день. Я ищу, чтобы выполнить скрипт2 примерно 30 раз в день в случайные моменты. script1 будет установлен в задании cron. Может ли кто-нибудь помочь, чтобы это произошло? PS Я не программист, поэтому мне нужно что-то готовое, пожалуйста,

Теги:
cron

2 ответа

4

Решение Seth, безусловно, работает, но количество исполнений в день будет отличаться. Если вы хотите определенно 30 исполнений, не больше и не меньше, я предлагаю использовать запись cron, например

0 0 * * * gen-executions.sh

и script gen-executions.sh:

#!/bin/bash
for number in $(seq 30)
do
    hour=$(( ${RANDOM}*24/32768 ))
    minute=$(( ${RANDOM}*60/32768 ))
    at -f /path/to/script.sh $(printf "%02d" ${hour}):$(printf "%02d" ${minute})
done

Это генерирует ровно 30 исполнений /path/to/script.sh в случайные моменты дня, используя at.

2
* * * * * script1.sh

#!/bin/bash
if [ $(($RANDOM*100/32768)) -gt 2 ]; then exit; fi
exec PHP скрипт2.php
  • 0
    Итак, я должен сохранить начало части #! / bin / bash как script1.sh? Кроме того, как я могу настроить случайность времени? что такое 32768? прости нуб.
  • 0
    @Henry: $ RANDOM генерирует случайное число от 0 до 32767. 30 [число выполнений / день] / (60 * 24) [минуты / день] == .02 [число выполнений в минуту] или 2% -ный шанс выполнения один раз в минуту. Да, сохраните строки, начинающиеся с #! / Bin / bash, в файле с именем script1.sh и вставьте эти строки в ваш crontab.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню