Crontab定时任务

通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常适合周期性的日志分析或数据备份等工作或日志清除。

常用命令

命令格式:crontab [ -e | -l | -r ]

  • -e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
  • -l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
  • -r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
  • -i:在删除用户的crontab文件时给确认提示。

crontab的文件格式
格式:分 时 日 月 星期 要运行的命令

  • 第1列分钟0~59
  • 第2列小时0~23(0表示子夜)
  • 第3列日1~31
  • 第4列月1~12
  • 第5列星期0~7(0和7表示星期天)
  • 第6列要运行的命令

列出crontab文件
使用-l参数列出crontab文件:

$ crontab -l
0,15,30,45 18-06 * * * /bin/echo `date` > dev/tty1

编辑crontab文件

crontab -e

可以像使用vi编辑其他任何文件那样修改crontab文件并退出。如果修改了某些条目或添加了新的条目,那么在保存该文件时, cron会对其进行必要的完整性检查。如果其中的某个域出现了超出允许范围的值,它会提示你。 我们在编辑crontab文件时,没准会加入新的条目。例如,加入下面的一条:

# DT:delete core files,at 3.30am on 1,7,14,21,26,26 days of each month
30 3 1,7,14,21,26 * * /bin/find -name 'core' -exec rm {} \;

保存并退出。

删除crontab文件

$crontab -r

使用实例

Cron表达式范例:

                 每隔5分钟执行一次:*/5 * * * * 

                 每隔1分钟执行一次:* * * * * 

                 每天23点执行一次:0 0 23 * * *

                 每天凌晨1点执行一次:0 0 1 * * *

                 每月1号凌晨1点执行一次:0 0 1 1 * *
          

说明:

  • “/”:为特别单位,表示为“每”如“0/15”表示每隔15分钟执行一次,“0”表示为从“0”分开始, “3/20”表示表示每隔20分钟执行一次,“3”表示从第3分钟开始执行
  • “?”:表示每月的某一天,或第周的某一天
  • “-”字符:指定一个值的范围
  • “,”字符:指定数个值

参考文章:
https://www.cnblogs.com/sunjie9606/archive/2012/03/15/2397626.html
https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/crontab.html

你可能感兴趣的:(Crontab定时任务)