工作中常用的Linux命令:crontab命令

  crontab是一个用来设置、删除或显示供守护进程cron执行的定时任务的命令。每一个用户都可以拥有属于自己的定时任务,定时任务文件默认以用户名命名,并放在/var/spool/cron目录,该目录普通用户无访问权限。

  可以通过cron.allow 和 cron.deny文件管理用户使用crontab的权限。如果cron.allow存在,用户必须列在其中才会被允许使用cron;如果cron.deny存在,被列在其中的用户禁止使用cron;如果两者都不存在,只有超级用户才能使用cron。在CentOS中,这两个文件放在/etc中,默认只存在cron.deny文件,且为空。这就表示在CentOS中,默认所有的用户均有cron的使用权限。

1. 命令格式

  crontab [-u user] file
  crontab [-u user] [-l | -r | -e] [-i] [-s]
  crontab -n [ hostname ]
  crontab -c

2. 命令功能

  为个人用户维护定时任务文件

3. 命令选项

  -u user

    编辑某个用户的cron,只用root可以使用此参数为别的用户设置cron服务。也可用于给用户指定crontab文件。

  -l

    列出当前用户的crontab。

  -r

    删除当前用户的crontab。

  -e

    编辑当前用户的crontab,默认使用vi,或者是由 VISUAL或EDITOR环境变量指定的编辑器。

  -i

    与-r一起使用,用来询问用户是否直接删除crontab。

4. 实例

  实例1:列出当前用户的定时任务

[22:30:17][[email protected] ~]$ crontab -l
0 1 * * 1 $HOME/.DailyShell/hislogclear.sh
0 * * * * $HOME/.DailyShell/mvcdr2bak.sh $HOME/data/message/voice
20 * * * * $HOME/.DailyShell/mvcdr2bak.sh $HOME/data/message/data/
40 * * * * $HOME/.DailyShell/mvcdr2bak.sh $HOME/data/message/sms/

  实例2:root用户编辑用户martin的定时任务

[22:30:17][[email protected] ~]# crontab -u martin -e

  实例3:为用户martin指定定时任务文件

[22:30:17][[email protected] ~]# crontab -u martin martincron

5. cron文件语法

  首先,我们打开/etc/crontab文件,我们将会看到如下内容:

[20:40:30][[email protected] etc]$ cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

  该文件是存放系统执行的定时计划,其中前四行用于设置cron服务运行的环境变量:SHELL、PATH、HOME分别指定了cron服务运行时的SHELL环境变量、PATH环境变量和HOME环境变量,这里不再赘述。MAILTO则表示cron运行的任务输出以电子邮件的形式发送到指定用户,如果该变量的值为空,则不会发送邮件。余下几行的内容说明了系统定时任务的具体书写格式。

 minute  分钟,取值范围0-59
 hour  小时,取值范围0-23
 day of month  日,取值范围1-31
 month  月,取值范围1-12,或者使用英文缩写jan,feb,mar,apr ...
 day of week  星期,取值范围0-6,0或7表示星期日,或者使用英文缩写sun,mon,tue,wed,thu,fri,sat
 user-name  执行该定时任务的用户
 command  具体执行的命令,可以是一个简单的命令,也可以是一个脚本,或者是一个目录。如果是一个文件夹,则表示执行该文件夹中的所有脚本,文件目录的前面必须加上run-parts。

  1)星号(*)表示取值范围内的所有值。例如,*在hour的位置,表示每小时执行一次。

  2)连字符(-)表示一个范围。例如,8-12表示8、9、10、11、12。

  3)逗号(,)表示分割指定的数值。例如:3,5-7,9表示3,5,6,7,9。

  4)正斜杠(/)表示步进值。例如,分钟的位置为*/5,表示每五分钟执行一次。

  除了root用户以外的所有用户定义的crontab计划任务都存放在/var/spool/cron目录,通过crontab -e命令编辑,格式与/etc/crontab相同,可以不用指定user-name。

  cron服务会每分钟检查一次/etc/crontab、/etc/cron.d/和/var/spool/cron/中的所有文件,并依此执行。

6. 实例

  实例1:每周末的凌晨一点钟执行一次系统的raid-check

0 1 * * Sun root /usr/sbin/raid-check

  实例2:每天的4:02am分root用户执行/etc/cron.daily目录下的所有脚本,run-parts参数表示执行后面目录中的所有脚本。

02 4 * * * root run-parts /etc/cron.daily

  实例3:每天的8-18每四小时,dodmaster用户执行hislogclear.sh脚本,即8:44,12:44,16:44,20:44四个时间点,会执行该脚本。

[21:57:56][[email protected] ~]$ crontab -l
44 8-20/4 * * * $HOME/.DailyShell/hislogclear.sh 

  实例4:每五分钟执行一次(两种写法)

*/5 * * * * echo "every five minute to do it" >> time.txt
5 * * * * echo "every five minute to do it" >> time.txt

  实例5:每个工作日下午八点执行

0 20 * * 1-5 echo "every workday 20:00 to do it" >> time.txt

  实例6:每分钟的30秒时执行,因为cron服务是每分钟被唤醒一次,所以要执行精确到秒的任务需要借助sleep命令。

* * * * * sleep 30; echo "every minute 30 second to do it" >> time.txt

  实例7:每20秒执行一次,即表示在每分钟的0秒、20秒、40秒各执行一次(也可以是其他的步长是20秒的值,例如:5s、25s、45s)

* * * * * echo "every 20 second to do it" >> time.txt
* * * * * sleep 20; echo "every 20 second to do it" >> time.txt
* * * * * sleep 40; echo "every 20 second to do it" >> time.txt

参考资料:

http://www.cnblogs.com/dingyingsi/archive/2013/04/16/3023623.html

http://blog.csdn.net/xiyuan1999/article/details/8160998

http://blog.chinaunix.net/uid-7552018-id-182133.html

时间: 2024-08-07 04:19:16

工作中常用的Linux命令:crontab命令的相关文章

软件测试工程师工作中常用的Linux命令

Linux系统有着众多的优点,比方开源.非商业版本免费.多任务多用户操作,因而Linux系统在非桌面范畴占有压倒性的市场份额.关于互联网技术工作者来说,控制常用的Linux命令也是一门必修课.下面罗列一些笔者在工作中常用的Linux命令. cd 切换目录 cd .. 返回上一层目录 cd . 进入当前目录 cd - 返回前一次的目录,即上一次的目录不是上一层目录 ls 查看文件与目录 用法: ls [参数][文件] 参数: ls –l 显示文件的权限和属性 ls –a 列出所有的文件,包含隐藏文

工作中常用的Linux命令(2):ipcs/ipcrm命令

ipcs 1. 命令格式 ipcs [resource-option] [output-format] ipcs [resource-option] -i id 2. 命令功能 提供IPC设备的信息 3. 使用方法 resource选项: ipcs -m 查看系统共享内存信息 ipcs -q 查看系统消息队列信息 ipcs -s 查看系统信号量信息 ipcs [-a] 系统默认输出信息,显示系统内所有的IPC信息 [[email protected] data]$ ipcs -a ------

工作中常用的Linux命令:目录

工作两三年,每天都和Linux打交道,但每每使用Linux命令的时候却会像提笔忘字般不知如何使用,常常查手册或到网上找资料.此系列文章主要是为了方便自己在使用命令时随时可查阅.鄙人才疏学浅,文中若有任何错误可在留言中指正,以供大家共同进步.学习的主要参考资料: 1. <Unix环境高级编程>.<shell脚本学习指南>... 2. 我使用过的Linux命令系列 3. 每天一个Linux命令 4. 网上的其他资料 1. 工作中常用的Linux命令(1):find命令 2. 工作中常用

日常工作中常用的Linux命令

以下Linux命令是我日常工作中常用到的: sudo su - :切换为临时的root权限; chmod +x * :用于改变linux系统文件或目录的访问权限; ps -ef |grep dubbo-account :查看进程; ./ shutdown.sh : 关闭某个服务; tar -zxf nginx-1.6.tar.gz: 解压; less all.log : 查看当天的日志; tail -f all.log: 监控日志; ls -lh: 查看各个文件的大小; sz all.log:

工作中常用的linux命令

grep grep  -5 "待查找内容" club.log  #查找的文件名为club.log tail tail  -100f club.log #查找文件的最新100行 tail  -100f club.log |grep 'INFO' #查看最新100行有关键字"INFO"的行 free free–m #查看内存 ,单位MB free–g # 查看内容,单位GB df -h # 查看磁盘占用 fdisk –l#查看内存分区 find find/etc/ na

工作中常用的linux命令总结(1)

这是我的第一篇博文,鉴于互联互通.技术分享的精神,想想就激动! 来点日常工作的干货吧:) 1.复制文本时候  cat和vi复制的文件格式不一样  vi会有多出空行来; 2.gdb rc core.10006  rc是程序目录bin下面的程序文件 core.10006是core文件: 3.SHOW MASTER LOGS:查看目前的master binlog日志 PURGE MASTER LOGS TO 'mysql-bin.010':删除日志从最久的到mysql-bin.010 PURGE MA

工作中常用的Linux命令(不断更新中)

最近工作中用到linux命令,简单总结如下: 1. pwd 查看当前所在的文件路径 2. cd 切换目录 cd .. 切换到上一级目录 3. ls 列出当前文件路径下的所有文件和文件夹 4. ll 是ls -l的一个别名,列出文件的详细属性 5. mkdir 创建新文件夹 6. cp 复制文件 7. rm 删除文件 rm -rf 删除文件夹

工作中常用的linux命令大全

文章内容参考:https://www.cnblogs.com/yjd_hycf_space/p/7730690.html  谢谢大佬的分享 系统信息  date  显示系统日期 cal + 年份 显示该年份的日历表 date 041217002007.00 设置日期和时间 - 月日时分年.秒 clock -w 将时间修改保存到 BIOS 文件和目录 cd 回到根目录 cd .. 回到上一级目录 cd ../.. 回到上两级目录 pwd 当前工作路径 ls 查看目录中的文件 ls -l 显示目录和

工作中常用的linux命令(持续更新)

一.top 实时动态地查看系统的整体运行情况1.在top命令后 > < 切换排序方式,根据cpu排名或者内存排名查看 2.top -p 进程pid 查看某一进程的整体运行情况 二.解压缩 tar格式: 1.压缩命令:tar  -zcvf   压缩文件名.tar.gz   被压缩文件名 2.解压命令:tar  -zxvf   压缩文件名.tar.gz 三.创建新用户 1.useradd -d /home/laowang -m laowang . passwd laowang 原文地址:https