ubuntu crontab 在时间段内随机执行一次
crontab 在linux下做定时任务的命令,
1. 基本格式
* * * * * cmd
第一个表示:分钟 1-59, 每分钟用 */1
第二个表示:小时 023
第三个表示:日期1-31
第四个表示:月份1-12
第五个表示:星期几0-6(0表示星期日)
几个说明例子
*/1 * * * * /path/xx.sh 每分钟执行一次脚本
0 3 * * 5-6 /path/xx.sh 每周五,周六早上3点执行一次脚本
可以使用在线的工具来模拟测试写的crontab任务
2. crontab 命令
NAME crontab -- maintain crontab files for individual users (V3) SYNOPSIS crontab [-u user] file crontab [-u user] { -l | -r | -e }
基本用法:
crontab -h 查看帮助
crontab -l 查看当前定时任务列表
crontab -r 删除当前用户下的定时任务
crontab -e 进入编辑模式添加定时任务
crontab file 添加指定配置文件到定时任务(上面使用-e命令,会在/var/spool/cron/crontabs/user 下生成当前用户名的文件)
可以此命令预先脚本生成配置文件然后添加到定时任务;
示例,测试使用的ubuntu server 14
echo "0 3 * * 1-5 /path/xx.sh" >/var/spool/cron/crontabs/user chmod 777 /var/spool/cron/crontabs/user crontab /var/spool/cron/crontabs/user service crontab restart
3. 关于定时任务在某一个时间段随机执行一次
crontab 只能设定定时任务,不能直接设定随机(有知道直接的留言告诉我)
于是想到了一个 shell脚本随机,然后生成一个随机数,把这个随机数设定在定时任务的时间上,这样每次执行一次,随机一次时间,并重新设定定时任务;任务执行完成删除当前任务,随机一数,并重新配置任务
这样就达到了在某一个时间段随执行一次任务的想法。
如下脚本逻辑
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #!/bin/bash #随机数,表示随机一个30以内的数 randNum=$(($RANDOM%30)) #user 表示当前登陆的用户 #path /var/spool/cron/crontabs #生成crontab 任务配置文件 #表示在 每周一到周五早上3点到3点30之间,随机一个时间执行一次数据备份 echo $[randNum] " 3 * * 1-5 /path/backdb.sh" > /path/user #设置可执行权限 sudo chmod 777 /path/user #使用crontab 命令添加到定时任务 sudo crontab /path/user #重启服务 sudo service cron restart |
参考:http://www.jb51.net/LINUXjishu/151805.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具