Linux的学习--crontab
之前了解过一点crontab,前段时间比较闲,就熟悉了一下,今天总结记录一下。
crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于"crontab"文件中,以供之后读取和执行。
什么时候需要用到crontab呢?如下就是几个很好的应用场景
- 每分钟需要执行一个程序检查系统运行状态
- 每天凌晨需要对过去一天的业务数据进行统计
- 每个星期需要把日志文件备份
- 每个月需要把数据库进行备份
安装crontab
在ubuntu系统中的安装如下:
sudo apt-get install cron
时间设置
# 文件格式说明 # ——分钟 (0 - 59) # | ——小时 (0 - 23) # | | ——日 (1 - 31) # | | | ——月 (1 - 12) # | | | | ——星期 (0 - 7)(星期日=0或7) # | | | | | # * * * * * 被执行的命令
注:
- 在“星期域”(第五个域),0和7都被视为星期日。
- 不很直观的用法:如果日期和星期同时被设定,那么其中的一个条件被满足时,指令便会被执行。
- 前5个域称之分时日月周,可方便个人记忆。
从第六个域起,指明要执行的命令。
crontab命令
crontab [ -u user ] [ -i ] { -e | -l | -r } (default operation is replace, per 1003.2) -e (edit user's crontab) -l (list user's crontab) -r (delete user's crontab) -i (prompt before deleting user's crontab)
crontab例子
每晚21:30重启nginx
30 21 * * * service nginx restart
每月1, 10, 22日的4:45重启nginx
45 4 1,10,22 * * service nginx restart
每月1到10日4:45重启nginx
45 4 1-10 * * service nginx restart
每隔2分钟重启nginx服务器
*/2 * * * * service nginx restart
1-59/2 * * * * service nginx restart
晚上11点到早上7点之间,每隔一小时重启nginx
0 23-7/1 * * * service nginx restart
每天18:00到23:00之间每隔30分钟重启nginx
0,30 18-23 * * * service nginx restart
0-59/30 18-23 * * * service nginx restart
小结
- *表示任何时候到匹配
- 可以用"A,B,C"表示A或者B或者C时执行命令
- 可以用"A-B"表示A到B之间时执行命令
- 可以用"*/A"表示每A分钟(小时等)执行一次命令
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?