Linux命令——crontab
来源:互联网 发布:入侵服务器修改数据 编辑:程序博客网 时间:2024/06/04 09:01
Linux命令——crontab
- Linux命令crontab
- 命令简介
- 命令格式
- 选项详解
- 使用方法
- 一些命令
- 两种使用方式
- 示例
- 注意
命令简介
crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程。通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。
命令格式
crontab使用格式说明
如图所示:
- 第1列分钟0~59
- 第2列小时0~23(0表示子夜)
- 第3列日1~31
- 第4列月1~12
- 第5列星期0~7(0和7表示星期天)
- 第6列要运行的命令
TIPS
每一列之间用空格隔开。
破折号 -
表示一个整数范围。例如:“2-4”表示“2,3,4”。
逗号 ,
表示枚举的意思,一个指定的集合。例如:“1,5,8”。
正向斜杠 /
表示间隔频率。例如:“8-20/2”表示从8点到20点每2小时执行一次。
/
可以和 *
一起使用。例如*/5
,如果用在minute字段,表示每五分钟执行一次。* */1 * * *
表示每一小时执行一次。
命令格式
crontab [-u user] file crontab [-u user][ -e | -l | -r ]
选项详解
- -u user:用来设定某个用户的crontab服务;
- file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。
- -e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
- -l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
- -r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
- -i:在删除用户的crontab文件时给确认提示。
使用方法
一些命令
1、创建crontab文件
$ crontab yourcron
2、列出crontab文件
$ crontab -l0 */3 * * * command >/dev/null 2>&1
3、编辑crontab文件
$ crontab -e
4、删除crontab文件
$crontab -r
5、ubuntu下启动、停止与重启cron
$sudo /etc/init.d/cron start$sudo /etc/init.d/cron stop$sudo /etc/init.d/cron restart
6、清理用户的邮件日志
0 */3 * * * command >/dev/null 2>&1
> /dev/null 2>&1
表示先将标准输出重定向到/dev/null,然后将标准错误重定向到标准输出,由于标准输出已经重定向到了/dev/null,因此标准错误也会重定向到/dev/null,这样日志输出问题就解决了。
每条任务调度执行完毕,系统都会将任务输出信息通过电子邮件的形式发送给当前系统用户,这样日积月累,日志信息会非常大,可能会影响系统的正常运行,因此,将每条任务进行重定向处理非常重要
两种使用方式
一种是新建crontab任务,然后重启cron服务
第一步、创建一个crontab文件
设置环境变量EDITOR。cron进程根据它来确定使用哪个编辑器编辑crontab文件。使用vi的话,在$HOME目录下的. profile文件中加入一行:
EDITOR=vi; export EDITOR
创建一个比如名为 testcron 的文件,在其中加入自己想要执行的命令,如
0 */3 * * * command >/dev/null 2>&1
把这个新创建的文件作为cron命令的参数,用来创建crontab任务
$ crontab testcron
第二步、重启cron服务
$sudo /etc/init.d/cron restart
失败!
试过多次,不知道为啥这种通过自己创建crontab文件的方式不行,查资料也未果。后续有机会再试试,就暂时先用后一种可用的方法吧。有知道的忘不吝指教。
另一种是把要执行的命令直接写入 /etc/crontab
中,然后重启cron服务
第一步、直接编辑 /etc/crontab
vim /etc/crontab添加自己的任务* * * * * root sh myjob.sh >/dev/null 2>&1
第二步、重启cron服务
$sudo /etc/init.d/cron restart
成功!
如果需要停止该任务的话
$sudo /etc/init.d/cron stop
示例
实例1:每1分钟执行一次myCommand
* * * * * myCommand
实例2:每小时的第3和第15分钟执行
3,15 * * * * myCommand
实例3:在上午8点到11点的第3和第15分钟执行
3,15 8-11 * * * myCommand
实例4:每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * myCommand
实例5:每周一上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 myCommand
实例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
0 23-7 * * * /etc/init.d/smb restart
注意
1、如果要定义一个定时重启系统的任务,就必须将任务放到/etc/crontab文件中。
2、新创建的cron job,不会马上执行,至少要过2分钟才执行。如果重启cron则马上执行。
3、crontab -r
将从Crontab目录(/var/spool/cron)中删除用户的Crontab文件,该用户的所有crontab都将被删除。
4、在crontab中 %
表示换行的意思。使用的时候必须进行转义%。比如经常使用的 date ‘+%Y%m%d’
在crontab里是不会执行的,应该换成 date ‘+\%Y\%m\%d’’
。
参考资料:crontab 定时任务
- Linux命令——crontab
- Linux定时器—crontab命令
- Linux命令——crontab命令
- linux命令详解——crontab
- linux定时任务命令——crontab
- linux基本命令(50)——crontab命令
- linux命令应用—crontab每秒执行一次命令
- linux命令:crontab命令
- linux命令------crontab命令
- 【Linux命令】crontab命令
- crontab命令-linux命令
- linux定时运行命令脚本——crontab
- linux定时运行命令脚本——crontab
- linux定时运行命令脚本——crontab
- linux定时运行命令脚本——crontab
- linux定时运行命令脚本——crontab
- linux定时运行命令脚本shell——crontab配置
- Linux定时运行命令脚本——crontab
- 加密机变更CheckList
- jQuery获取多种input值的方法
- 第1.2章 web基础
- 关闭windows服务器的“windows update”功能
- 并发编程Disruptor入门
- Linux命令——crontab
- java poi 生成多个sheet(表格导出)
- redis简单使用(勿看)
- 引导页-ViewFlipper与手势
- AndroidMainfest.xml详解——<compatible-screens>
- Atom
- STS (Spring tools stuite)使用Gradle创建Spring Boot整合templates做网站示例
- mongoDB 3.0 安全权限访问
- iptables详解