一、crontab命令的基本介绍

crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语chronos(χρόνος),原意是时间。

通常,crontab储存的指令被守护进程激活,crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。

二、开启crontab日志

crontab默认情况下是不执行开启日志的,所以一开始写完后,不能执行,想查看日志,却找不到。所以先开启定时任务的日志来查看

修改rsyslog服务,将 /etc/rsyslog.d/50-default.conf 文件中的 #cron.* 前的 # 删掉;用以下命令重启rsyslog服务:

service rsyslog restart;
``
然后再重启crontab服务:

service cron restart;

网上很多人说开启,停止或者重启contab服务用命令 service crond restart,执行这个命令会报出 unrecognised service ,
这里把 crond 改成 cron 就可以了。 下面这个命令还可以查看crontab的状态

service crond status; //ubuntu,Debian使用cron,Redhat使用crond


# 三、cron相关操作
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
service crond status //查看crontab服务状态
service crond start //手动启动crontab服务 crontab -l 查看当前用户的定时任务
crontab -u root -l查看root用户的定时任务 crontab -e 编辑crontab 如果需要root用户执行的权限,需要用sudo crontab -e 写在另一个配置文件中
crontab -r 删除crontab # 四、创建bash脚本并设定cron定时执行

建立一个用定时任务跑的bash脚本:

[root@root test]# touch test.sh

[root@root test]# vim test.sh

编辑如下内容,将系统当前时间输出到 console.txt 文件然后保存,增加可执行权限

/bin/echo date > /home/admin/test/console.txt

[root@root test]# ll

total 8

-rw-r--r-- 1 root root 29 Mar 27 21:31 console.txt

-rwxr-xr-x 1 root root 48 Mar 27 21:28 test.sh

[root@root test]# chmod +x ./test.sh

追加 crontab 定时任务,每分钟触发:

[root@root test]# crontab -e

00 02 * * * sh /home/admin/optbash/dailyBackup.sh

00 02 * * * sh /home/admin/optbash/deleteDebugSql.sh

          • sh /home/admin/test/test.sh

            前面是已经存在的定时任务,后面执行test.sh脚本的是追加的

保存后提示已经装载了新的定时任务

"/tmp/crontab.HauiiV" 3L, 143C written

crontab: installing new crontab

再次查看定时任务列表,可以看到定时任务已经添加

[root@root test]# crontab -l

00 02 * * * sh /home/admin/optbash/dailyBackup.sh

00 02 * * * sh /home/admin/optbash/deleteDebugSql.sh

          • sh /home/admin/test/test.sh

            [root@root test]#

            查看console.txt有没有每分钟写入console.txt文件

[root@root test]# vim console.txt

Fri Mar 27 21:40:01 EDT 2015

可以看到最近一次的写入时间。



# 五、crontab时间设定理解

## 操作符号
在一个区域里填写多个数值的方法:
逗号(',')分开的值,例如:“1,3,4,7,8”
连词符('-')指定值的范围,例如:“1-6”,意思等同于“1,2,3,4,5,6”
星号('*')代表任何可能的值。例如,在“小时域”里的星号等于是“每一个小时”,等等
某些cron程序的扩展版本也支持斜线('/')操作符,用于表示跳过某些给定的数。例如,“*/3”在小时域中等于“0,3,6,9,12,15,18,21”等被3整除的数; ## crontab格式说明
![](http://images2017.cnblogs.com/blog/1225554/201710/1225554-20171009113944590-2129369827.png) 1.命令格式:
crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
2.命令功能:
通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常设合周期性的日志分析或数据备份等工作。
3.命令参数:
-u user:用来设定某个用户的crontab服务,例如,“-u ixdba”表示设定ixdba用户的crontab服务,此参数一般有root用户来运行。
file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。
-e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
-l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
-r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
-i:在删除用户的crontab文件时给确认提示。 # 五、crontab使用实例 实例1:每1分钟执行一次command
命令:
* * * * * command 实例2:每小时的第3和第15分钟执行
命令:
3,15 * * * * command 实例3:在上午8点到11点的第3和第15分钟执行
命令:
3,15 8-11 * * * command 实例4:每隔两天的上午8点到11点的第3和第15分钟执行
命令:
3,15 8-11 */2 * * command 实例5:每个星期一的上午8点到11点的第3和第15分钟执行
命令:
3,15 8-11 * * 1 command 实例6:每晚的21:30重启smb
命令:
30 21 * * * /etc/init.d/smb restart 实例7:每月1、10、22日的4 : 45重启smb
命令:
45 4 1,10,22 * * /etc/init.d/smb restart 实例8:每周六、周日的1 : 10重启smb
命令:
10 1 * * 6,0 /etc/init.d/smb restart 实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb
命令:
0,30 18-23 * * * /etc/init.d/smb restart 实例10:每星期六的晚上11 : 00 pm重启smb
命令:
0 23 * * 6 /etc/init.d/smb restart 实例11:每一小时重启smb
命令:
* */1 * * * /etc/init.d/smb restart 实例12:晚上11点到早上7点之间,每隔一小时重启smb
命令:
* 23-7/1 * * * /etc/init.d/smb restart 实例13:每月的4号与每周一到周三的11点重启smb
命令:
0 11 4 * mon-wed /etc/init.d/smb restart 实例14:一月一号的4点重启smb
命令:
0 4 1 jan * /etc/init.d/smb restart
实例15:每小时执行/etc/cron.hourly目录内的脚本
命令:
01 * * * * root run-parts /etc/cron.hourly
说明:
run-parts这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是目录名了 拓展阅读:
1、[每天一个linux命令(50):crontab命令](http://www.cnblogs.com/peida/archive/2013/01/08/2850483.html)
2、[Linux 下执行定时任务 crontab 命令详解](https://segmentfault.com/a/1190000002628040)
3、[cron维基百科](https://zh.wikipedia.org/wiki/Cron)
4、https://www.linuxidc.com/Linux/2015-10/124110.htm

[整理]Linux Crontab命令总结的更多相关文章

  1. linux crontab命令参数及用法详解--linux自动化定时任务cron

    声明:本文转自Linux 安全网,在此基础上加上自己的体会! crontab 命令 如果发现您的系统里没有这个命令,在ubuntu server 中用的是 sudo apt-get install c ...

  2. Linux crontab 命令详解

    在 Linux 中,任务可以被配置在指定的时间段.指定的日期.或系统平均载量低于指定的数量时自动运行.红帽企业 Linux 预配置了对重要系统任务的运行,以便使系统能够时时被更新.譬如,被 locat ...

  3. Linux crontab命令的使用方法

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

  4. linux crontab 命令

    Linux 系统提供了使用者控制计划任务的命令 :crontab 命令. 一.crond简介 crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划 ...

  5. Linux crontab 命令详解(含配置文件路径)

    编辑/etc/crontab 文件配置cron cron 服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用cron服 ...

  6. OSX系统添加定时任务 Linux crontab命令 定时执行py 文件 任务

    #输出日志 #将日志输入到2.log文件中无论错误还是正确02 15 * * * . ~/xad/pyenv/xadserver/bin/activate && cd /root/xa ...

  7. Linux crontab命令详解

    crontab:定时任务的守护进程,精确到分,设计秒的我们一般写脚本  -->相当于闹钟        日志文件:  ll /var/log/cron*        编辑文件: vim /et ...

  8. Linux crontab命令 定时任务 用法详解以及no crontab for root解决办法

    最近系统服务器进行搬迁,又恰好需要使用定时任务运行程序,而我的程序主要使用PHP写的,然后总结了下定时任务的用法,但是在这里主要写的是关于crontab命令的用法,使用过程中遇到不少问题,例如no c ...

  9. 定时任务工具Linux crontab命令详解

    crontab:定时任务的守护进程,精确到分,设计秒的我们一般写脚本  -->相当于闹钟        日志文件:  ll /var/log/cron*        编辑文件: vim /et ...

随机推荐

  1. Mac ssh 连接报错 Permission denied (publickey)

    用的阿里云服务器,如果直接连接,会报下面错误: $ ssh root@47.94.132.115 Permission denied (publickey). 创建服务器的时候,连接秘钥会生成并下载到 ...

  2. idea java 1.5 过时

    解决方案: 1.修改maven的setting.xml文件,添加以下内容,此设置为jdk1.8 <profile> <id>jdk-1.8</id> <act ...

  3. springMVC学习总结(一)快速入门

    springMVC学习总结(一)快速入门 一.初步认识 springMVC执行流程 主要组件 DispatcherServlet(中央控制器) 配置在web.xml中的前端控制器,客户端请求的入口,调 ...

  4. select的限制以及poll的使用

    1.先说select在多路IO中的限制:1)linux中每个程序能够打开的最多文件描述符是有限制的.默认是1024.可以通过ulimit -n进行查看和修改: xcy@xcy-virtual-mach ...

  5. .NET 构造Class返回多个json值

    上次总结使用DataTable返回多个值,后来看到一个小哥的返回方式和我的有所不同,便留意了一下.原来他构造一个Class,而我构造的是一个Table. 首先说说两者的区别:拿student举例,st ...

  6. 微信小程序教学第三章第四节(含视频):小程序中级实战教程:下拉更新、分享、阅读标识

    下拉更新.分享.阅读标识 本文配套视频地址: https://v.qq.com/x/page/h0554i4u5ob.html 开始前请把 ch3-4 分支中的 code/ 目录导入微信开发工具 这一 ...

  7. Fragment多重嵌套实现电影,影院展示页

    转载请标明出处: http://www.cnblogs.com/dingxiansen/p/8135888.html 本文出自:丁先森-博客园 公司以前的app是用H5封的,由于一个模块效果用H5实现 ...

  8. web.xml文件--编码注意事项

    写在前面: 最近发布项目的时候,要修改web.xml文件的内容,然后我在本机的web.xml文件中是有注释的,但是到了服务器上面,就说编码不同.我也没有怎么注意.就继续启动服务器,但是访问网站,一直报 ...

  9. 小白的Python之路 day1 表达式if ... else ,while循环,for循环

    表达式if ... else 一.用户登陆验证 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 # 提示输入用户名和密码    # 验 ...

  10. 聊天机器人(基于android)

    1.本人最近写了一个小项目关于语音聊天的,采用讯飞语音引擎和数据,看看效果 2.项目名称叫小秘书,它可以和你进行交互,可以通过语音聊天,蛮有意思的,聊天内容你也可以定制 3.如果想做这款应用,先看看我 ...