当前位置: 首页 > news >正文

crontab命令:定时任务,周期执行

一、crontab 命令简介

crontab​ 是 Linux 系统中用于调度任务的工具,它允许用户按照预定的时间自动运行脚本或命令。通过 crontab​ 命令可以添加、修改、列出和删除用户的(周期性)定时任务。

守护进程:corn

● cron.service - Regular background program processing daemonLoaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)Active: active (running) since Wed 2024-08-14 15:09:39 UTC; 4 weeks 0 days agoDocs: man:cron(8)Main PID: 593 (cron)Tasks: 1 (limit: 2219)Memory: 3.0MCPU: 31.463sCGroup: /system.slice/cron.service└─593 /usr/sbin/cron -f -P

二、crontab 命令参数

crontab [选项] [文件]
  • 选项:

    crontab [-u user] -e      # 编辑 crontab
    crontab [-u user] -l      # 列出 crontab
    crontab [-u user] -r      # 删除 crontab
    crontab [-u user] -i -r   # 删除前提示确认
    
  • 参数:

    • file​:指定 crontab 文件。

crontab 表位置:/var/spool/cron/crontabs

root@ubuntu:/var/spool/cron/crontabs# ls
soulio

每个设置了 cron 任务的用户在此目录下拥有一个同名文件。

查看用户 soulio 的 cron 任务:

root@ubuntu:/var/spool/cron/crontabs# cat soulio
0 5 * * 1 tar -zcf /var/backups/home.tgz /home/

编辑文件:使用 crontab -e​ 编辑当前用户的 crontab。你也可以切换到 root 用户,使用 vim​ ​编辑任意用户的 crontab。

格式:文件每行代表一个 cron 作业,每行的格式为 分钟 小时 天 月 星期 命令​,例如:

0 5 * * 1 tar -zcf /var/backups/home.tar.gz /home/

含义:每个星期一的凌晨 5 点 0 分,将 /home/​ 目录打包并压缩成名为 home.tar.gz​ 的文件,并将该文件存储在 /var/backups/​ 目录下。

时间调度可以用[0-9]表示具体的时间,也可以用符号表示范围:

  • *​:匹配该字段的所有值。
  • ,​:用于指定值的列表,例如,1,2,3 ​代表第 1、2、3 分钟。
  • -​:用于指定值的范围,例如,1-5 ​代表第 1 到第 5 分钟。
  • /​:用于指定值的步长,例如,*/2 ​代表每两分钟。

星号 * ​处在不同位置时的含义:

  • 分钟(0-59)
  • 小时(0-23)
  • 日(1-31)
  • 月(1-12)
  • 星期几(0-7,其中 0 和 7 都代表星期天)

更多细节(不用记,先收藏,用时查)

  • 计划任务可以包含多个命令,用 ;​ 分割。
  • 计划任务可以使用 环境变量​,例如 HOME 和 PATH。
  • 计划任务可以使用 username ​ 和 password ​ 来指定执行计划任务的用户和密码。
  • 计划任务可以使用 output​ 和 error​ 来指定输出和错误文件。
  • 计划任务可以使用 env​ 命令来设置环境变量。
  • 计划任务可以使用 nice​ 命令来设置执行优先级。
  • 计划任务可以使用 ionice 命令来 nice I/O 设置 input/output 优先级。

三、crontab 命令示例

1.编辑 crontab 表

crontab -e

2.编辑任务


* * * * * /usr/bin/command# 每小时执行一次命令
0 * * * * /usr/bin/command# 每天凌晨1点执行命令
0 1 * * * /usr/bin/command# 每周一凌晨1点执行命令
0 1 * * 1 /usr/bin/command# 每月的第一天凌晨1点执行命令
0 1 1 * * /usr/bin/command# 每季度的第一天凌晨1点执行命令
0 1 1 */3 * /usr/bin/command# 每个工作日的上午9点执行命令
0 9 * * 1-5 /usr/bin/command# 每5分钟执行一次命令
*/5 * * * * /usr/bin/command# 每两小时执行一次命令
0 */2 * * * /usr/bin/command# 每星期六和星期日的凌晨1点执行命令
0 1 * * 6,0 /usr/bin/command# 每小时的第5分钟和第10分钟执行命令
5,10 * * * * /usr/bin/command# 每天的凌晨2点到早上6点,每半小时执行一次命令
*/30 2-6 * * * /usr/bin/command

3. 查看当前用户的 crontab

crontab -l

4. 删除当前用户的 crontab

crontab -r

serv00 保活案例

serv00 是一个公益虚拟主机,我们希望主机重启后能够自动执行脚本,启用我们的程序。

1.进入 crontab 表

crontab -e

2.添加用户任务:系统重启后自动执行指定脚本

@reboot ~/script.sh

在脚本中启动你的程序。

结尾 tips

crontab 有个兄弟命令 at :执行一次性定时任务。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • ROS2仿真之两轮差速
  • 纵切车床和走心机的区别
  • C/C++ 网络编程之关于多核利用问题
  • x11vnc卡顿问题,debian11编译x11vnc
  • 数学建模笔记—— 模糊综合评价
  • k8s防火墙networkPolicy,的核心是“自己”
  • 中关村科金推出得助音视频鸿蒙SDK,助力金融业务系统鸿蒙化提速
  • HTTP 之 响应头信息(二十三)
  • ozon免费选品工具,OZON免费选品神器
  • 鸿蒙轻内核M核源码分析系列二一 02 文件系统LittleFS
  • AI为云游戏带来的革新及解决方案:深度技术剖析与未来展望
  • Android Framework(五)WMS-窗口显示流程——窗口布局与绘制显示
  • element UI学习使用(1)
  • Html、Css3动画效果
  • 1 MATLAB 绘图函数函数: plot
  • [译]如何构建服务器端web组件,为何要构建?
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • 【译】React性能工程(下) -- 深入研究React性能调试
  •  D - 粉碎叛乱F - 其他起义
  • Docker 笔记(2):Dockerfile
  • httpie使用详解
  • JavaScript设计模式与开发实践系列之策略模式
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • Map集合、散列表、红黑树介绍
  • SpiderData 2019年2月25日 DApp数据排行榜
  • vue脚手架vue-cli
  • 初识 webpack
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 学习ES6 变量的解构赋值
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 用element的upload组件实现多图片上传和压缩
  • 由插件封装引出的一丢丢思考
  • 运行时添加log4j2的appender
  • 正则与JS中的正则
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​批处理文件中的errorlevel用法
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • #define与typedef区别
  • #git 撤消对文件的更改
  • #java学习笔记(面向对象)----(未完结)
  • (14)Hive调优——合并小文件
  • (ISPRS,2021)具有遥感知识图谱的鲁棒深度对齐网络用于零样本和广义零样本遥感图像场景分类
  • (翻译)terry crowley: 写给程序员
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (附源码)springboot教学评价 毕业设计 641310
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • *2 echo、printf、mkdir命令的应用
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .CSS-hover 的解释