crontab 介绍

Linux crontab 是用来定期执行程序的命令。

当安装完成操作系统之后,默认便会启动此任务调度命令。

crond 命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。

注意:新创建的 cron 任务,不会马上执行,至少要过 2 分钟后才可以,当然你可以重启 cron 来马上执行。

而 linux 任务调度的工作主要分为以下两类:

  • 系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
  • 个人执行的工作:某个用户定期要做的工作,例如每隔 10 分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置

crontab 格式说明


在以上各个字段中,还可以使用以下特殊字符:

  1. "* "代表所有的取值范围内的数字,如月份字段为*,则表示1到12个月;
  2. "/"代表每一定时间间隔的意思,如分钟字段为*/10,表示每10分钟执行1次。
  3. "-"代表从某个区间范围,是闭区间。如“2-5”表示“2,3,4,5”,小时字段中0-23/2表示在0~23点范围内每2个小时执行一次。
  4. ","分散的数字(不一定连续),如1,2,3,4,7,9。

注:由于各个地方每周第一天不一样,因此Sunday=0(第一天)或Sunday=7(最后1天)。

crontab 语法

crontab [ -u user ] file

crontab [ -u user ] { -l | -r | -e }

参数说明:

  • -u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的时程表。

  • -e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)

  • -r : 删除目前的时程表

  • -l : 列出目前的时程表

实例1

//每一分钟执行一次 /bin/ls:
* * * * * /bin/ls//在 12 月内, 每天的早上 6 点到 12 点,每隔 3 个小时 0 分钟执行一次 /usr/bin/backup:
0 6-12/3 * 12 * /usr/bin/backup//周一到周五每天下午 5:00 寄一封信给 alex@domain.name:
0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata

实际配置

以自己电脑为例:

crontab -e

结果:

# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').
#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command

在文件最后写入自己想要执行的操作

54 21 * * * rm -r /home/ubuntu/log  #每天晚上九点54删除日志

注意:第一次进行编辑的时候会选一下编辑器,根据自己的情况选择即可

实例2

1.删除文件命令:

find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \;

实例命令:

find /export/Logs/ -mtime +2 -name "*.log" -exec rm -rf {} \;
#将/export/Logs/目录下所有2天前带".log"的文件全部删除。
find /export/log/ -mtime +2 -name "*.20*.log" -exec rm -rf {} \;
#将/export/Logs/目录下所有2天前带*.20*.log的文件全部删除。

具体参数说明如下:

  • find:linux的查找命令,用户查找指定条件的文件;
  • /export/Logs/:想要进行清理的任意目录;
  • -mtime:标准语句写法;
  • +2:查找2天前的文件,这里用数字代表天数;
  • .log"、".20*.log”:希望查找的数据类型,".log"表示查找扩展名为log的所有文件,""表示查找所有文件,以此类推,灵活使用
  • -exec:固定写法;
  • rm -rf:强制删除文件,包括目录;
  • {} \ ; :固定写法,一对大括号+空格+\ ;

crontab的定时操作相关推荐

  1. 怎么恢复linux定时器任务,定时操作 crontab at 以及恢复定时操作

    1.crontab 2.Linux下实现秒级定时任务的三种方案(crontab 每秒运行) 3.apscheduler 定时任务框架(python实现) 1.定时模块crontab Example o ...

  2. ubuntu 系统crontab定时操作PHP

    什么是Cron和Crontab Unix和Linux系统的各个发行版本基本都支持Cron,Cron /Crontab允许我们在设定的时间自动执行或定时执行某个任务,如应用程序或脚本.更详细的概念和使用 ...

  3. Flink程序 Timer实现定时操作

    Flink程序中 Timer实现定时操作 有时候,我们在计算任务中需要使用到定时器来帮助我们处理业务,例如 订单的自动结算?自动好评? 定时收集?等等- 但需要注意的 我们无法为计算任务灵活的配置CR ...

  4. linux centos设置定时重启,Linux CentOS使用crontab设置定时重启的方法

    本篇介绍 crontab 设置定时任务,并且把 crontab 加入到开机自启动中. 1.配置一个每天自动重启的功能: 如果支持crontab 可直接 crontab -l 查看目前已有的定时任务 如 ...

  5. linux下crontab实现定时服务详解

    http://www.jb51.net/LINUXjishu/151805.html 任务调度的crond常驻命令  crond 是linux用来定期执行程序的命令.当安装完成操作系统之后,默认便会启 ...

  6. linux使用crontab命令定时重启服务器

    服务器不重启的情况下定时自动重启apache及mysql服务,其实也大同小异.具体步骤如下: 一.每天的12点及16点重启apache及mysql服务 [root@www bin]# cd /opt/ ...

  7. Ubuntu使用notify-send 与 crontab 实现定时提醒

    notify-send是系统自带的工具,用于在桌面弹出提醒弹窗,使用方法: $ notify-send "test" 也可以使用-i参数指定icon: $ notify-send ...

  8. windows中定时操作(SetTimer函数用法)

    最近需要在服务端定时执行某个操作,于是需要用到SetTimer函数.当你需要每个一段时间执行一件事的的时候就需要使用SetTimer函数了. 使用定时器的方法比较简单,通常告诉WINDOWS一个时间间 ...

  9. java定时操作之Timer和TimerTas

    Timer类是一种线程设施,可以用来实现某一个时间或某一段时间后安排某一个任务执行一次或定期重复执行.该功能和TimerTask配合使用.TimerTask类用于实现由Timer安排的一次或重复执行的 ...

最新文章

  1. 我在MongoDB年终大会上获二等奖文章:由数据迁移至MongoDB导致的数据不一致问题及解决方案...
  2. Leangoo产品白皮书
  3. uniapp中搜索输入与频繁点击(防抖节流)
  4. 说出一些数据库优化方面的经验?
  5. 挖矿木马的战略战术分析
  6. 007_logback配置
  7. select 移动端 第一个无法选中_总结在移动端碰到的坑
  8. C++Builder编程中动态更改自定义打印纸张
  9. 在字典中根据条件来筛选数据
  10. ubuntu15.04 php版本,在ubuntu下安装php版本问题
  11. 马斯克一说特斯拉“全自动驾驶”,大家就想笑
  12. vue组件系列3、查询下载
  13. 解决windows下的mysql匿名登陆无法使用mysql数据库的问题
  14. 浙江大学-机器学习-ppt截图
  15. java替换图片_Java 替换 PPT 中的图片
  16. 父亲节,各大产品借势宣传文案,每一句都“爸”气十足
  17. SaaS之光照亮经济型酒店信息化道路
  18. Android各种屏幕尺寸
  19. Java第一个程序的相关解释
  20. jav常用类-时间处理相关类

热门文章

  1. MBA 工商管理硕士适合哪些人考?
  2. 王建宙为何言必称iPhone
  3. win/lose by a hair 差之毫厘,谬以千里
  4. 初学者用js是怎么敲九九乘法表的
  5. An Overview of Cross-media Retrieval: Concepts, Methodologies, Benchmarks and Challenges 笔记
  6. 非常精美的QQ桌面Web桌面模板(上)
  7. 【厚积薄发】Unity UI 显隐(共存)关系的优化处理方案
  8. 理解SetCapture、ReleaseCapture、GetCapture
  9. DRF访问控制(RBAC)、JWT认证
  10. 代理ip会不会影响网络速度和稳定性