linux crontab使用

8-16 6,827

1. crontab命令简介

crontab命令用于设置周期性被执行的指令,该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。每个用户可以拥有自己的crontab文件,同时,操作系统保存一个针对整个系统的crontab文件,该文件通常存放于/etc或者/etc之下的子目录中。crontab储存的指令通常被cron守护进程激活,cron守护进程是一个后台进程,按预定时间自动执行任务,每一分钟检查是否有预定的作业需要执行。

2. 修改crontab默认编辑器

在终端输入 select-editor,然后选择自己熟悉的编辑器

alexzhou@alexzhou:~$ select-editor

Select an editor.  To change later, run 'select-editor'.
  1. /bin/ed
  2. /bin/nano        <---- easiest
  3. /usr/bin/vim.basic
  4. /usr/bin/vim.tiny

Choose 1-4 [2]: 3

3. 查看当前用户定时任务

alexzhou@alexzhou:~$ crontab -l
no crontab for alexzhou

4. 编辑当前用户定时任务

alexzhou@alexzhou:~$ crontab -e
crontab: installing new crontab
alexzhou@alexzhou:~$ crontab -l
*/30 * * * * python /home/alexzhou/send_email.py

输入crontab -e会打开vim编辑窗口,输入上面命令,上面命令的意思是:每隔30分钟执行send_email.py程序一次。

5. crontab语法格式

格式如下:
f1 f2 f3 f4 f5 program
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。值的范围分别对应0-59,0-23,1-31,1-12,0-7(0和7都代表星期天),任何一个字段中的一个星号都是一个通配符。如果第一个字段含有一个星号,那个作业每分钟运行一次,以此类推,第二个字段含有通配符那就是每小时执行一次。program 表示要执行的程式。
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推
当 f1 为 */n 时表示每 n 分钟执行一次,f2 为 */n 表示每 n 小时执行一次,其余类推
当 f1 为 a, b, c,… 时表示第 a, b, c,… 分钟要执行,f2 为 a, b, c,… 时表示第 a, b, c…个小时要执行,其余类推
下面是两个例子:
(1)每周六早上10点重启应用。

0 10 * * 6 sh /home/alexzhou/bin/restart_tuli.sh

(2)每周二和每月的初一,十五的早上2点钟,更新solr索引。

0 2 1,15 * 2 python /home/alexzhou/update_index.py

简明 Vim 练级攻略

本文转载自:酷壳 – CoolShell.cn vim的学习曲线相当的大,所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。下面的文章翻...

阅读全文

Mysql问题汇总(持续更新中)

1. 设置编码 编辑mysql安装目录下my.cnf文件 在[client]下添加: default-character-set=utf8 mysql老版本 [mysqld]下添加: default-character-set=utf8 mys...

阅读全文

Flask+Nginx+Gunicorn+Redis+Mysql搭建一个小站

首先简单介绍一下这几个东东。 Flask是一个轻量级的Web应用框架, 基于Werkzeug和 Jinja2 模板引擎,使用 Python编写,可扩展强。 Nginx是一个高性能的 HTTP ...

阅读全文

欢迎留言