bash – Cron工作和随机时间,在给定的时间内
发布时间:2020-12-16 01:40:28 所属栏目:安全 来源:网络整理
导读:我需要能够在完全随机的时间内每天运行20次 PHP脚本.我也希望它只在上午9点到晚上11点之间运行. 我熟悉在linux中创建cron作业. 解决方法 如果我理解你在寻找什么,你需要做一些有点混乱的事情,比如有一个运行bash脚本的cron作业,随机化运行时间……这样的事情
我需要能够在完全随机的时间内每天运行20次
PHP脚本.我也希望它只在上午9点到晚上11点之间运行.
我熟悉在linux中创建cron作业. 解决方法
如果我理解你在寻找什么,你需要做一些有点混乱的事情,比如有一个运行bash脚本的cron作业,随机化运行时间……这样的事情:
crontab中: 0 9 * * * /path/to/bashscript 并在/ 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 一些注意事项:这种方法有点浪费资源,因为它在早上9点触发了20个后台进程,每个进程等待一个随机的分钟数(最多14个小时,即晚上11点),然后启动php脚本和退出.此外,由于它使用随机分钟数(而不是秒数),因此开始时间并不像它们那样随机.但是$RANDOM只上升到32,767,并且在上午9点到晚上11点之间有50,400秒,将秒数随机化也会有点复杂.最后,由于开始时间是随机的并且彼此独立,因此可能(但不太可能)将同时启动脚本的两个或更多个实例. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |