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

crontab详解

目录

  • 表达式格式
  • 系统运行的调度程序
  • 用户任务文件
  • 查看日志
  • 延伸

表达式格式

image

命令格式

crontab [-u user] file
或者
crontab [-u username]     //可选,省略则表示操作当前用户的crontab
        -e        //编辑crontab定时任务
        -l        //列出crontab里的内容
        -r        //删除crontab
  • -u user:用来设定某个用户的crontab服务;
  • file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。
  • -e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
  • -l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
  • -r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
  • -i:在删除用户的crontab文件时给确认提示。

crontab的命令由时间和命令构成,其时间由分、时、日、月、周五种按顺序排列,操作符有:

*:任何时间
/:每隔多久
-:连续时间
,:不连续的时间

实例说明

每分钟执行一次命令

* * * * * 命令
每小时的第10分钟和第30分钟执行

10,30 * * * * 命令
在8点到10点的每分钟执行

* 8-10 * * * 命令
每月15号每隔10分钟执行

*/10 * 15 * * 命令
每周一的六点三十分执行

30 6 * * 1 命令

系统运行的调度程序

/etc/crontab

同时在/etc目录下还存放了/etc/cron.deny 和 /etc/cron.allow 文件
/etc/cron.deny 表示不能使用crontab 命令的用户
/etc/cron.allow 表示能使用crontab的用户。
如果两个文件同时存在,那么/etc/cron.allow 优先。
如果两个文件都不存在,那么只有root用户可以安排作业。

用户任务文件

/var/apool/cron/用户

查看日志

记录是否执行了某些计划的脚本

$ less /var/log/cron

具体执行是否正确以及脚本执行过程中的一些信息则linux会每次都发邮件到/var/spool/mail下面

$ cd  /var/spool/mail

通过这些就可以判断脚本执行正确与否,及执行过程中是否正确以及一些错误的信息,除此之外 cron 还可以添加邮件通知

#你的命令要在哪运行
SHELL=/bin/bash
#为这个shell添加环境变量,如你的命令需要java环境
PATH=$PATH:/your_jdk_path
#当运行出错将邮件发送给谁
MAILTO=user_name或者你的qq邮箱

延伸

通过这些了解,我们可以做个调度系统,通过脚本设定定时任务。当我有十几台甚至上百台服务器,通过这个系统,可以极大解放劳动力,便于管理。



如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
 
 

转载于:https://www.cnblogs.com/applelife/p/10490042.html

相关文章:

  • call、apply、bind的用法
  • Perl的简单联网操作
  • [svc]NFS存储企业场景及nfs最佳实战探究
  • 1安装Linux
  • underscore源码剖析之整体架构
  • HDU-2087-剪花布条
  • 关于线性基的一丢丢理解
  • 基于阿里雲Oracle12cR2(Linux)實例靜默安装Cloud Control 13c 13.3
  • Spring Boot + thymeleaf 后台与页面(二)
  • vue学习系列(二)vue-cli
  • java8简短教程(持续更新含部分9,10,11)
  • Kali linux 2018安装后全屏乱码解决
  • SAP云平台对Kubernetes的支持
  • Centos6.5配置DNS
  • 机器学习你要了解的5件事
  • Angular4 模板式表单用法以及验证
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • ESLint简单操作
  • Java面向对象及其三大特征
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • webpack4 一点通
  • 大快搜索数据爬虫技术实例安装教学篇
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 利用DataURL技术在网页上显示图片
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • #微信小程序:微信小程序常见的配置传值
  • $$$$GB2312-80区位编码表$$$$
  • (04)odoo视图操作
  • (C语言)逆序输出字符串
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (LeetCode C++)盛最多水的容器
  • (SpringBoot)第二章:Spring创建和使用
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (算法二)滑动窗口
  • (学习日记)2024.01.09
  • .net framework profiles /.net framework 配置
  • .NET 命令行参数包含应用程序路径吗?
  • .net 无限分类
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .Net多线程总结
  • .so文件(linux系统)
  • /etc/fstab和/etc/mtab的区别
  • @FeignClient注解,fallback和fallbackFactory
  • @modelattribute注解用postman测试怎么传参_接口测试之问题挖掘
  • @在php中起什么作用?
  • [ vulhub漏洞复现篇 ] Django SQL注入漏洞复现 CVE-2021-35042
  • []串口通信 零星笔记
  • [2015][note]基于薄向列液晶层的可调谐THz fishnet超材料快速开关——