CentOS下使用crontab命令来定时执行任务

时间:2022-07-23 13:55:41

原文地址:http://www.centoscn.com/CentOS/help/2015/0424/5261.html

crontab命令 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的时程表。

cron crontab命令 在Linux中的的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:

/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置 # crontab基本格式
# +---------------- minute 分钟(0 - 59)
# | +------------- hour 小时(0 - 23)
# | | +---------- day 日期(1 - 31)
# | | | +------- month 月份(1 - 12)
# | | | | +---- week 星期(0 - 7) (星期天=0 or 7)
# | | | | |
# * * * * * 要运行的命令

除了数字还有几个个特殊的符号就是”*”、”/”和”-“、”,”,

代表所有的取值范围内的数字, “/”代表每的意思,”/5″表示每5个单位, “-“代表从某个数字到某个数字, “,”分开几个离散的数字。

很多时候,你没有办法重新启动crond,这个时候可以先killall crond 然后再crond restart就哦ok了。我就是这么干的。

你也可以将这个服务在系统启动的时候也自动启动,在/etc/rc.d/rc.local这个脚本的末尾追加一条命令。

echo /sbin/service crond start >> /etc/rc.d/rc.local

现在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的基本格式写。

编辑root下的定时任务
crontab -u root -e 每天早上6点追加一条字符串到一个文本。
0 6 * * * echo "Good morning." >> /tmp/test.txt 每两个小时追加一条字符串一个文本。
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 每月每天每小时的第 0 分钟执行一次 /bin/ls
0 * * * * /bin/ls 在 12 月内, 每天的早上 6 点到 12 点中,每隔 20 分钟执行一次 /usr/bin/backup
*/20 6-12 * 12 * /usr/bin/backup 周一到周五每天下午 5:00 寄一封信给 alex_mail_name :
0 17 * * 1-5 mail -s "hi" alex_mail_name < /tmp/maildata 每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha"
20 0-23/2 * * * echo "haha" 晚上11点到早上8点之间每两个小时,早上8点,显示时间
0 23-7/2,8 * * * date

每次编辑完某个用户的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
   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内的脚本
chkconfig crond on设置开机自启动
 

-END-

CentOS下使用crontab命令来定时执行任务

CentOS下使用crontab命令来定时执行任务的更多相关文章

  1. CentOS下使用crontab&plus;mysqldump实现定时自动备份数据库

    一 : 为什么要进行数据库的备份? 最主要的原因:尽可能地减少损失,包括时间上.精神上和金钱上的损失.很多人都不注意备份数据,以致在发生问题后丢失大量的重要数据.要知道,在地球上网是很危险的,即使做好 ...

  2. 使用linux下的crontab定时任务跑定时脚本

    使用linux下的crontab定时任务跑定时脚本 tags:定时任务 定时脚本 crontab linux定时脚本 linux 引言:应该有许多人曾经很好奇一些定时脚本是怎么做出来的.我们这次就来说 ...

  3. Oralce 导出脚本命令,定时执行

    原文:Oralce 导出脚本命令,定时执行 @echo off @echo ================================================ @echo  window ...

  4. Linux crontab命令:循环执行定时任务(详解版)

    前面学习了 at 命令,此命令在指定的时间仅能执行一次任务,但在实际工作中,系统的定时任务一般是需要重复执行的.而 at 命令显然无法满足需求,这是就需要使用 crontab 命令来执行循环定时任务. ...

  5. 【转】crontab命令 脚本定时运行

    一.crond简介 crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动cro ...

  6. CentOS下采用Crontab实现PHP脚本定时任务

    简单实现一个需求,每5分钟往特定表中插入2条数据.经过分析还是采用crontab方式靠谱,另外执行php脚本的方式,不用担心链接超时等问题. 1.准备工作,创建1个数据表“person”, CREAT ...

  7. CentOS&lpar;十二&rpar;--crontab命令的使用方法

    crontab命令常见于Unix和Linux的操作系统之中,用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于"crontab"文件中,以供之后读取和执行. 在 ...

  8. Linux学习之CentOS&lpar;十二&rpar;--crontab命令的使用方法

    http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/06/3002602.html crontab命令常见于Unix和Linux的操作系统之 ...

  9. CentOS 下使用yum 命令安装MySQL

    CentOS Linux下使用yum 命令安装MySQL过程记录. 1. 查看服务器中有没有安装过MySQL 1. 查看有没有安装包: yum list mysql* #移除已经安装的mysql yu ...

随机推荐

  1. Java 计算两个日期相差月数

    package com.myjava; import java.text.ParseException;import java.text.SimpleDateFormat;import java.ut ...

  2. &lbrack;Redux&rsqb; Implementing Store from Scratch

    Learn how to build a reasonable approximation of the Redux Store in 20 lines. No magic! const counte ...

  3. centos5&period;5上apache快速安装H264流媒体支持MP4-H264边下边播

    2013年的某一天,客户反馈北京同事做的广告视频下载速度好慢,几MB的视频在手机上要下载接近一分钟才能开始播放. 我分析后发现两点:1)托管的服务器没支持流媒体:2)广告视频MP4并非流媒体格式. 对 ...

  4. LFS,编译自己的Linux系统 - 完成准备工作

    $LFS 确保环境变量$LFS已被定义. 定义:export LFS=/mnt/lfs 检查:echo $LFS 建立目录 $LFS/tools $LFS/tools目录用于存放和编译一些临时使用的工 ...

  5. eclipse 搭建Robotium环境--apk 环境搭建

    1.配置好android sdk ,java环境 2.重新签名apk文件 在用户目录下,会有一个.android的目录,把re-sign.jar放在该目录下.执行命令 java -jar re-sig ...

  6. JDBC连接MySQL与Oracle

    JDBC连接MySQL .JDBC连接Oracle (跳转) JDBC连接MySQL import org.junit.Test; import java.sql.*; /** * JDBC连接MyS ...

  7. 剑指Offer 1&period; 二维数组中的查找 (数组)

    题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...

  8. spring,springmvc,mybatis整合ssm框架出现ORA-02289&colon;序列不存在问题

    今天整合了一个SSM项目,完了后部署到Tomcat服务器,正常启动.但是当我发送请求时,报错,,如下 报错说序列不存在,可是我明明创建了序列呀,然后我测试了一下,测试语句:select tb_user ...

  9. 1076 Forwards on Weibo (30 分)

    1076 Forwards on Weibo (30 分) Weibo is known as the Chinese version of Twitter. One user on Weibo ma ...

  10. 使用Visual C &plus;&plus;和Open Folder自定义环境

    使用Visual C ++和Open Folder自定义环境 来源 https://blogs.msdn.microsoft.com/vcblog/2016/10/05/bring-your-c-co ...