专栏首页梦魇小栈Ubuntu 使用 Cron 实现计划任务

Ubuntu 使用 Cron 实现计划任务

Windows 自带定时执行任务的工具叫做“计划任务”,Linux 下我们使用 Cron 实现这一功能。

安装 cron 服务

  • 通常 ubuntu 下自带 cron,如果没有也可以通过以下命令进行安装:apt-get install cron
  • 若已经安装,输入以下命令判断 cron 服务是否启动:pgrep cron
  • 如果有 pid (一串数字)输出则说明 cron 服务已经启动,没有任何输出说明需要手动启动 cron 服务。

启动 cron 服务

  • 启动服务 service cron start

编辑计划文件

crontab -e

来打开你的用户所属的crontab文件。第一次用这个命令,会让你选择文本编辑器,我选的是vim。选定的编辑器也可以使用

你也可以每次自己更改 select-editor

重启 cron 服务

每次保存了crontab之后,我们还需要重启cron来应用这个计划任务。使用命令:sudo service cron restart

管理任务计划文件

cron 的所有任务计划都记录在 crontab 任务计划文件中,通过 crontab 命令对该任务文件进行管理。

$ crontab -u root -e     #编辑用户 root 的计划任务文件

$ crontab -e            #编辑当前用户的计划任务文件

$ crontab -u root -l     #显示用户 root 的计划任务文件

$ crontab -l            #显示当前用户的计划任务文件

$ crontab -r            #删除当前用户的计划任务文件

cron 语法格式

m h dom mon dow   command
0-59 0-23 1-31 1-12 0-7  command
  • m: 表示分钟
  • h: 表示小时
  • dom: 表示日期
  • mon: 表示月份
  • dow: 表示星期
  • command: 预执行的命令

另外需要使用一些特殊符号实现灵活的配置:

  • * 代表所有值
  • / 代表“每”
  • - 代表范围
  • , 分割数字

任务示例

## 指定具体执行时间
2   *  *  *  * ls    #每个小时的第2分钟执行一次 ls 命令
30  7  *  *  * ls    #每天7:30执行一次 ls 命令
30 20  *  *  2 ls    #每周二,20:30执行一次 ls 命令(0和7表示星期天)

## 指定间隔时间
*/2 *  *  *  * ls    #每隔2分钟执行一次 ls 命令

## 指定时间段
30  7 3-6 *  * ls    #每个月的3,4,5,6号的7:30分各执行一次 ls 命令

## 指定多个时间
30  7 3,6 *  * ls    #每月的3号和6号的7:30分各执行一次 ls 命令

另外,使用 run-parts 可以运行指定目录下所有的脚本(注意脚本必须加上 “#!/bin/bash”,否则 run-parts 会调用失败)

30 7 * * * run-parts /home   #每天7:30运行 /home 目录下的所有脚本

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 为什么程序员都想拥有一台Mac电脑?

    苹果电脑在电子类产品中算是另类了,特别受到程序员的青睐,有一次跟一个刚入行不久的同事聊天,近期准备出手买一个苹果电脑,苹果电脑肯定不是性价比最高的,为啥一定选择...

    程序员互动联盟
  • 如何在Ubuntu 18.04上安装和配置VNC

    虚拟网络计算(VNC)是一种连接系统,允许您使用键盘和鼠标与远程服务器上的图形桌面环境进行交互。它使得对于不熟悉命令行的用户更容易管理远程服务器上的文件,软件和...

    独木桥先生
  • 深入理解Linux内核.pdf

    为了彻底理解是什么使得Linux能正常运行以及其为何能在各种不同的系统中运行良好,你需要深入研究内核最本质的部分。内核处理CPU与外界间的所有交互,并且决定哪些...

    用户3157710
  • 怎样快速调试linux内核?有哪些需要注意的问题?

    这个问题就比较专业了,linux内核调试还是在调试内核驱动的时候用过,涉及的程度不是特别深,但是可以说下大致的思路,linux虽然贵为操作系统,但是归根到底还是...

    程序员互动联盟
  • Linux习题练习

    1 在主目录下创建abc文件,并设置其权限为同组用户有执行权限,属主有全部权限,其它用户没有权限。

    东风冷雪
  • 从TCP协议的原理来谈谈rst复位攻击

    在谈RST攻击前,必须先了解TCP:如何通过三次握手建立TCP连接、四次握手怎样把全双工的连接关闭掉、滑动窗口是怎么传输数据的、TCP的flag标志位里RST在...

    范蠡
  • 使用Crontab定时执行Spark任务【面试+工作】

    第一个“#”表示是这一行是注释 第二个“!”表示这一行不是普通注释,而是解释器路径的声明行 后面的“/usr/bin/perl”是perl解释器的安装路径,...

    奋斗蒙
  • Linux入门很简单

    因为计划以后用Linux作为服务器操作系统,并购买了腾讯云的服务器,安装了CentOS。但由于自己对于Linux知之甚少,于是就想买一本比较简单的入门书。最后选...

    张子阳
  • 不限速 | 百度网盘命令行工具

    今天给大家分享一个开源的网盘下载项目BaiduPCS-Go。Go语言编写,仿 Linux shell 文件处理命令的百度网盘命令行客户端。多平台支持, 支持 W...

    用户2511396
  • Hadoop,zookeeper,HBase,Spack集群环境搭建【面试+工作】

    Hadoop,zookeeper,HBase,Spark集群环境搭建【面试+工作】

    奋斗蒙

扫码关注云+社区

领取腾讯云代金券