`

【转】crontab 配置 .

阅读更多

cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:
[/I][/I]


/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置

你也可以将这个服务在系统启动的时候自动启动:
在/etc/rc.d/rc.local这个脚本的末尾加上:
/sbin/service crond start

现在Cron这个服务已经在进程里面了,我们就可以用这个服务了,Cron服务提供以下几种接口供大家使用:

1、直接用crontab命令编辑

cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:

crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除某个用户的cron服务
crontab -e //编辑某个用户的cron服务

比如说root查看自己的cron设置:crontab -u root -l
再例如,root想删除fred的cron设置:crontab -u fred -r
在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e
进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt

这个格式的前一部分是对时间的设定,后面一部分是要执行的命令,如果要执行的命令太多,可以把这些命令写到一个脚本里面,然后在这里直接调用这个脚本就可以了,调用的时候记得写出命令的完整路径。时间的设定我们有一定的约定,前面五个*号代表五个数字,数字的取值范围和含义如下:

分钟(0-59)
小時(0-23)
日期(1-31)
月份(1-12)
星期(0-6)//0代表星期天

除了数字还有几个个特殊的符号就是"*"、"/"和"-"、",",*代表所有的取值范围内的数字,"/"代表每的意思,"*/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。以下举几个例子说明问题:

每天早上6点

0 6 * * * echo "Good morning." >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。

每两个小时

0 */2 * * * echo "Have a break now." >> /tmp/test.txt

晚上11点到早上8点之间每两个小时,早上八点

0 23-7/2,8 * * * echo "Have a good dream:)" >> /tmp/test.txt

每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点

0 11 4 * 1-3 command line

1月1日早上4点

0 4 1 1 * command line

每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用crontab -e 来编辑。cron启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。因此此文件修改后不需要重新启动cron服务。

2、编辑/etc/crontab 文件配置cron

cron 服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用 cron服务做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是:
SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin
[/I][/I]


MAILTO=root      //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号

HOME=/    //使用者运行的路径,这里是根目录

# run-parts

01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本
02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本
22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行/etc/cron.weekly内的脚本
42 4 1 * * root run-parts /etc/cron.monthly //每月去执行/etc/cron.monthly内的脚本

大家注意"run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。
--------------------------------------
基本格式 :
*****command
分时日月周命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
crontab文件的一些例子:
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重启lighttpd 。
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、10、22日的4 : 45重启lighttpd 。
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每周六、周日的1 : 10重启lighttpd 。
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启lighttpd 。
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每星期六的11 : 00 pm重启lighttpd 。
* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小时重启lighttpd
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11点到早上7点之间,每隔一小时重启lighttpd
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的4号与每周一到周三的11点重启lighttpd
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
一月一号的4点重启lighttpd

分享到:
评论

相关推荐

    删归档脚本及crontab配置.txt

    删归档脚本及crontab配置

    crontab-46.1.tar.gz

    执行`./configure`来配置项目,接着运行`make`编译源代码,最后使用`sudo make install`将`crontab`安装到系统路径。 6. **启动和管理cron服务**:在MACOSX上,可以使用`launchctl`来管理`cron`服务。通过`sudo ...

    如何在 Linux 中从备份恢复 Crontab?.docx

    当意外删除或丢失了 Crontab 配置时,恢复过程变得至关重要,以避免影响系统的自动化流程。这篇指南将详细解释如何备份和恢复 Crontab 配置。 首先,了解 Crontab 的备份过程是必要的。备份 Crontab 配置文件通常...

    unix Crontab实例.

    - `service crond reload`:重新加载Crontab配置而不重启服务。 #### Crontab文件的编辑与管理 每个用户都有自己的crontab文件,用于存储个人的定时任务设置。这些文件默认存储在`/var/spool/cron`目录下。用户...

    crontab详解.docx

    系统任务调度通过`/etc/crontab`文件进行配置,包含了系统周期性执行的工作,如数据备份、日志清理等。而用户任务调度则允许用户通过`crontab`命令创建个人的计划任务,这些任务的配置文件保存在`/var/spool/cron`...

    PyPI 官网下载 | crontab-0.23.0.tar.gz

    标签中提到了"zookeeper",这是一款分布式协调服务,常用于管理大型分布式系统的配置信息、命名服务、集群同步等。在云原生(Cloud Native)环境中,Zookeeper常作为服务发现和分布式锁的基础组件,与Kubernetes等...

    Yii2+Swoole开发的定时任务管理系统,带预警邮件通知(Crontab).zip

    Yii2+Swoole开发的定时任务管理系统,带预警邮件通知(Crontab).zip 功能列表 用户管理 权限管理 邮件预警 立即执行任务 (python+shell) 定时任务(python+shell),支持秒级定时任务,服务稳定完美运行 定时...

    aix下crontab命令.rar

    编辑完成后保存并退出编辑器,新的cron配置将被加载。 3. **删除所有cron作业**:执行`crontab -r`会移除所有当前用户的cron任务。 ### `crontab`语法 - **时间格式**:cron作业的格式通常为5个字段,分别代表...

    Linux运维-2系统管理-15系统管理-175定时任务之crontab配置文件.avi

    Linux运维-2系统管理-15系统管理-175定时任务之crontab配置文件.avi

    Go开发的crontab 代替linux原生crontab.zip

    2. 项目配置文件:如`go.mod`和`go.sum`,用于Go模块管理和依赖管理。 3. 测试文件:为了确保代码的正确性,开发者可能会提供测试用例来验证程序的行为。 4. 读取和使用指南:可能包含一个README文件,解释如何编译...

    结合 Etcd 与 MongoDB 实现一个基于 Master-Worker 分布式 架构的 crontab 系统.zip

    在这个系统中,MongoDB 主要用来存储 crontab 任务定义、任务历史记录以及系统配置等信息。通过 MongoDB 的灵活查询能力,可以方便地获取和更新任务状态,同时支持大数据量的存储和检索,满足系统的扩展性和持久化...

    springboot的定时任务配置和linux的crontab一样例子.zip

    springboot的定时任务配置和linux的crontab一样例子.zipspringboot的定时任务配置和linux的crontab一样例子.zipspringboot的定时任务配置和linux的crontab一样例子.zip

    linux C7 crontab离线安装包

    5. **配置和使用Crontab**:编辑crontab文件,如`crontab -e`,根据需求添加定时任务。任务的格式由5个字段组成:分钟、小时、日期、月份和星期,以及要执行的命令。 了解了这些基本知识后,我们还需要掌握一些...

    linux定时执行crontab.pdf

    本文将详细介绍`crontab`的使用方法和配置规则。 首先,`crontab`的配置通常涉及到以下几个命令: 1. `crontab -e`: 打开编辑器(通常是vi或vim)来编辑当前用户的`crontab`配置文件。 2. `crontab -l`: 列出当前...

    时间同步服务器NTP和crontab.docx

    crontab 配置 要实现每天同步两次时间,可以使用 crontab 来实现。首先,需要编辑 crontab 文件: `sudo crontab -e` 然后,在文件中添加以下内容: `0 8,16 * * * /usr/sbin/ntpdate 192.168.1.79` 这将每天 8...

    crontab.rar

    在Linux环境中,`cron`守护进程负责监控和执行由`crontab`配置的定时任务。 一、Crontab的基本结构 Crontab文件由一系列行组成,每行代表一个任务。每个任务行包含六个字段,依次表示分钟、小时、日期、月份、星期...

    在windows下配置crontab

    【在Windows下配置crontab】的知识点主要集中在如何在Windows环境中使用Cygwin来实现类似于Linux中的计划任务管理。Crontab是Linux和Unix系统中用于管理周期性任务的工具,而在Windows系统中,由于Dos Scripts的功能...

    基于PHP的定时任务管理器Zebra-Crontab.zip

    基于以上几点原因,我们迫切的需要一个可以集中化管理的、可配置的定时任务管理器 但自己开发一套分布式的定时任务系统何其复杂,所以作者采用crontab服务做辅助,使用php实现对定时任务的配置管理 使用php管理...

Global site tag (gtag.js) - Google Analytics