Tâches Cron et horaires aléatoires, dans des heures données
J'ai besoin de la capacité d'exécuter un script PHP 20 fois par jour à des moments complètement aléatoires. Je veux également qu'il ne fonctionne qu'entre 9h et 23h. Je suis familier avec la création de tâches cron sous Linux. Crontab toutes les heures paris. Réponses:
Si je comprends ce que vous cherchez, vous devrez faire quelque chose d'un peu compliqué, comme avoir un travail cron qui exécute un script bash qui randomise les temps d'exécution... Quelque chose comme ceci:
crontab:
0 9 * * * / path / to / bashscript
et dans / path / to / bashscript:
#! /bin/bash
maxdelay = $ (( 14 * 60)) # 14 hours from 9am to 11pm, converted to minutes
for (( i = 1; i <= 20; i ++)); do
delay = $ (( $RANDOM% maxdelay)) # pick an independent random delay for each of the 20 runs
( sleep $ (( delay * 60)); / path / to / phpscript. php) & # background a subshell to wait, then run the php script
done
Quelques notes: cette approche est un peu un gaspillage de ressources, car elle déclenche 20 processus d'arrière-plan à 9h, chacun attend pendant un nombre aléatoire de minutes (jusqu'à 14 heures, soit 23h), puis lance le script php et sorties.
Crontab Toutes Les Heures Paris
Je me rends compte que c'est un fil plus ancien, mais je veux ajouter un élément lié à une valeur aléatoire que j'utilise beaucoup. Au lieu d'utiliser la variable $ RANDOM avec une plage fixe et limitée, je crée souvent des valeurs aléatoires de plage arbitraire dans le shell avec
dd if =/ dev / urandom bs = 4 count = 1 2 >/ dev / null | od - N4 - t u4 - A none
afin que vous puissiez faire, par exemple,
FULLRANDOM = $ ( dd if =/ dev / urandom bs = 4 count = 1 2 >/ dev / null | od - N4 - t u4 - A none)
et surmonter certaines des restrictions qui ont été discutées dans ce fil.
Crontab Toutes Les Heures De La
310
Vous avez oublié un *, et vous avez trop de champs, et c'est l'heure vous devez vous préoccuper de
0 */6 * * * /path/to/mycommand
Cela signifie que toutes les 6 heures à partir de 0, c'est à dire à l'heure 0, 6, 12 et 18 ans, vous pouvez écrire comme
0 0, 6, 12, 18 * * * /path/to/mycommand
merci beaucoup pour la réponse, c'est toutes les 6 heures à partir de quelle heure? le moment où le cron est créé? merci, donc si je veux l'exécuter à partir de 15:00 toutes les 6 heures, il serait 15 15, 23, 05, 11 * * * /path/to/mycommand? Crontab toutes les heures d. Oui, si le premier champ est la minute, qui vous ai mis à 15, de sorte que vous écopez d'15:15, 23:15, 05:15 et 11:15. (ce qui n'est pas tous les 6 heures btw, vous pourriez dire 0 15, 21, 3, 9 * * *)
Quelqu'un pourrait-il me dire comment redémarrer un processus toutes les 4 heures à l'aide de crontab? J'ai un serveur Starbound en cours d'exécution (qui est un jeu comme Terarria qui a récemment sorti) et il prend beaucoup de ressources, donc je voudrais tuer le processus de redémarrage de sauvegarder toutes les 6 heures. Crontab - Comment redémarrer un processus toutes les 4 heures à l'aide de crontab?. Ce que je pense que j'aurais besoin de faire dans la crontab est:
kill -9 | grep starbound_server
cd /home/vapeur/starbound/linux64 && écran -S starbound -d-m. /
Mais je ne suis pas sûr à ce sujet et ne comprennent pas les temps de truc. J'espère que quelqu'un pourra m'aider 🙂
Original L'auteur user3079979 | 2013-12-08