Linux命令之crontab
crontab [-u user] file
crontab [-u user] [-l | -r | -e] [-i] [-s]
crontab命令被用来提交和管理用户需要周期性执行的任务,与windows下的计划任务类似。
当安装完操作系统后,默认安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则会自动执行该任务。
在固定的间隔时间执行指定的系统指令或shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常适合周期性的日志分析或数据库备份等工作。
注意:crontab命令的服务名叫crond。
(1).常用选项
-u user 指定要设定计时器的用户
-l 列出计时器的设置,查看定时运行的程序(没有指定用户时,默认显示当前用户)
-r 删除用户的计时器设置
-e 编辑用户的计时器设置
-i 在删除用户的计时器设置之前提示
注意:crontab的文件内容格式为“M H D m d command”,其中M代表分钟(0~59),H代表小时(0~23),D代表日期(1~31),m代表月份(1~12),d星期几(0~6,0代表星期天)。在以上的各个时间字段中,还可以使用一些特殊字符。'*'代表所有可能的值;','可以用来隔开并指定列表范围,例如'1,2,3,4';'-'可以表示两个整数之间的所有值,例如'1-4'就是'1,2,3,4'; '/'表示指定时间的间隔频率,例如分钟字段'*/10',意思就是每隔10分钟执行一次command表示要执行的程序,它被送入shell执行,这个command只有USER、HOME、SHELL三个环境变量。
(2).实例
以下内容是crontab -e进入到编辑计时器中才可使用
* * * * * command //每分钟执行一次
*/5 * * * * command //每五分钟执行一次
3,5 * * * * command //1小时中的第3分钟和第5分钟执行
0 17 * * * command //每天中的17:00执行一次
3 2-12/2 * * * command //每天的2:03,4:03,6:03,8:03,10:03,12:03各执行一次
0 * * * * /etc/init.d/smb restart //每小时执行一次/etc/init.d/smb重启
0 0 * * 0 root run-parts /etc/cron.hourly //每周日00:00使用root用户身份执行/etc/cron.hourly当前脚本(或目录下所有脚本)
其他的请自己类推吧
下面来尝试创建一个crontab文件,注意/var/spool/cron是用户任务,/etc/crontab是系统任务
[ root@CentOS6 桌面]# cd /var/spool/cron
[ root@CentOS6 cron]# ll //目录为空表明当前系统没有任何Linux计划任务需要执行
总用量 0
[ root@CentOS6 cron]# crontab –l //自带的crontab -l一样没有
No crontab for root
[ root@CentOS6 cron]# crontab -e //如果目录已经存在指定的文件(文件名为当前用户名),crontab -e则会编辑文件,否则将会以当前用户名创建文件。
输入一些文件内容
*/2 * * * * ls -l /root/桌面 > root.txt //这个文件会出现在/root文件夹下,为什么暂时不清楚
(3).crond服务
以下是CentOS6的操作方式:
service crond status //状态
service crond start //启动
service crond stop //停止
service crond restart //重新启动
service crond reload //重新加载配置
(4).扩展:如何排查所有用户的周期性计划任务(crontab)
周期性计划任务分为用户级和系统级。所有用户级周期性计划任务都会在/var/spool/cron/目录下产生相应的文件,文件名为创建计划任务的用户名。系统级周期性计划任务调度的是配置文件,直接在/etc/crontab文件中编辑,添加。
/etc/crontab文件内容如下:
[root@xuexi cron]# cat /etc/crontab
SHELL=/bin/bash //指定操作系统使用哪个shell
PATH=/sbin:/bin:/usr/sbin:/usr/bin //系统执行命令的所有路径
MAILTO=root //将执行任务的信息通过邮件发送给指定用户 # 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
//以下可以添加计划任务
使用crontab命令的注意事项:
环境变量问题,例如:路径需要使用绝对路径等。
不想产生邮件日志时,可以使用&>/dev/null重定向
用户级和系统级需要分开
%在crontab中被认为newline,需要使用\转义
系统级周期性计划任务还可以写在如下地方:
/etc/cron.d/ 系统自动定期需要执行的任务,但又不是按小时、天、星期、月来执行,那么就放在这个目录下。
/etc/deny 控制用户是否能做计划任务
/etc/monthly/ 每月执行的脚本
/etc/weekly/ 每周执行的脚本
/etc/daily/ 每天执行的脚本
/etc/hourly/ 每小时执行的脚本
/etc/contab 主配置文件,也可添加任务。
(5).扩展2:crontab命令不支持每秒执行。那么该如何实现每两秒执行一次脚本?
这需要在脚本中创建一个死循环,使用命令sleep 2,每执行一次沉睡2秒,执行30次。然后周期性计划任务如下格式:* * * * * [脚本](每分钟执行一次)
Linux命令之crontab的更多相关文章
- Linux命令之Crontab定时任务,利用Crontab定时执行spark任务
Linux命令之Crontab定时任务,利用Crontab定时执行spark任务 一.Linux命令之Crontab定时任务 1.1 常见Crontab任务 1.1.1 安装crontab 1.1.2 ...
- 工作中常用的Linux命令:crontab命令
本文链接:http://www.cnblogs.com/MartinChentf/p/6060252.html (转载请注明出处) crontab是一个用来设置.删除或显示供守护进程cron执行的定时 ...
- 每天一个linux命令(56)--crontab命令
上一节学习了 at 命令是针对仅运行一次的任务,循环运行的例行性计划任务,Linux 系统则是由 cron(crond)这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个 ...
- Linux 命令之 crontab
crontab 简介 crontab 主要用于需要管理周期执行定时任务的场景 crontab 安装 (有些系统默认已经带了 crontab,无需安装的朋友可以直接跳过本节) 安装: yum insta ...
- linux命令之crontab详解
crontab命令: crontab -l : 显示定时任务列表 crontab -e: 编辑定时任务 crontab -r : 删除所有定时任务 基本格式 : * * * * * command ...
- linux命令之crontab定时执行任务
一.crond简介 crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动c ...
- linux命令之crontab定时执行任务【转】
本文转载自:https://www.cnblogs.com/coffy/p/5608095.html 一.crond简介 crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护 ...
- linux命令:crontab命令(转)
一.crond简介 crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动cro ...
- linux 命令:crontab
一.crond简介 crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动c ...
随机推荐
- [洛谷P2590][ZJOI2008]树的统计
题目大意:一棵树,支持三个操作, $CHANGE\;u\;t:$ 把结点$u$的权值改为$t$ $QMAX\;u\;v:$ 询问从点$u$到点$v$的路径上的节点的最大权值 $QSUM\;u\;v:$ ...
- 写一个JavaScript“返回顶部”功能
在web页面中,如果页面较高,为了方便用户快速地返回顶部,都会添加一个返回顶部按钮. 效果演示可以查看本页.如果页面有滚动高度,右下角就会有一个含有“返回顶部”字样的黑色背景半透明的小条条.点击这里“ ...
- PHP 5.4语法改进与弃用特性
PHP 5.4于本月尘埃落定,它是 PHP 自 2009 年以来的首次重大更新.该版本对语言部分进行了增强,包括支持 Traits 和移除部分争议特性. Traits 同 Java 和 .NET 一样 ...
- 妮可妮可妮 [Hash]
妮可妮可妮 题目描述 小P特别喜欢动画Love Live中的角色妮可,每当他听到妮可说"niconiconi"时,他总会感到特别兴奋,还会露出绅士般的微笑. 作为一名理论计算机科学 ...
- Centos7下redis设置密码、开放远程访问权限
redis的安装与启动可参考前一篇文章:http://www.cnblogs.com/zuidongfeng/p/8032505.html redis安装成功后,默认是没有设置密码的启动redis-c ...
- Linux引导过程
早期时,启动一台计算机意味着要给计算机喂一条包含引导程序的纸带,或者手工使用前端面板地址/数据/控制开关来加载引导程序.尽管目前的计算机已经装备了很多工具来简化引导过程,但是这一切并没有对整个过程进行 ...
- uva 11427
题目大意:每天晚上你都玩纸牌,如果第一次赢了就高高兴兴地去睡觉:如果输了就接着玩,假设每盘游戏获胜的的概率都是p,且各盘游戏相互独立.你是一个固执的完美主义者,因此会一直玩到当晚获胜局数的比例严格大于 ...
- python3 json、logging、sys模块
json模块 import json dic = {'name':'egon','age':32} # ------------------------------>序列化 f = open(' ...
- 小苏的Shell编程笔记之六--Shell中的函数
http://xiaosu.blog.51cto.com/2914416/531247 Shell函数类似于Shell脚本,里面存放了一系列的指令,不过Shell的函数存在于内存,而不是硬盘文件,所以 ...
- Linux下进程描述(1)—进程控制块【转】
转自:http://www.cnblogs.com/33debug/p/6705391.html 进程概念介绍 进程是操作系统对运行程序的一种抽象. • 一个正在执行的程序: • 一个正在计算机上执行 ...