定时任务crond、crontab
crontab命令是用来设置定时任务规则的配置命令,配置文件/etc/crontab 与/var/spool/cron/目录下当前用户名的文件。
-l 显示当前定时任务
-e 编辑定时任务
对于root用户:
crontab -l 等同于 cat /var/spool/cron/root
crontab -e 等同于 vim /var/spool/cron/root
/etc/crontab 配置文件介绍:
[root@55test /etc]# cat /etc/crontab
SHELL=/bin/bash
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
- 第一列*:分钟(0-59)
- 第二列*:时(0-23)
- 第三列*:日(1-31)
- 第四列*:月(1-12)
- 第五列*:周(0-6)
表示法:
- - 用于表示连续区间,比如:1-10 可表示1点到10点
- ,用于表示不连续区间,比如:1,3,9,22 可表示1点,3点,9点,22点
- /n用于时间间隔,比如:/5 可表示每5分钟或每5小时等
- 在指定用户下执行定时任务
- 在定时任务及脚本中,命令使用全路径格式
- /etc/crontab 中,特殊符号(%)需使用转义字符;写入脚本文件时,不需要使用转义字符
- 定时任务的脚本前需加/bin/sh
- 不要随意打印输出信息,定时任务结尾加 &>/dev/null (>/dev/null 2>&1),避免定时任务给root用户发邮件,防止产生大量报错信息占用过多inode。
- 定时任务使用非登录的shell执行,与用户登录shell环境变量可能不同,PATH、PS1 等变量需重新export。
举例
时间:
*/1 * * * * /bin/sh /scripts/data.sh #每个一分钟执行
30 3,12 * * * /bin/sh /scripts/boy.sh #3:30与12:30执行
30 */6 * * * /bin/sh /scripts/boy.sh #每隔6小时的半点执行
30 8-18/2 * * * /bin/sh /scripts/boy.sh #8-18之间每隔2小时的半点执行
30 21 * * * #每天21点半执行
45 4 1,10,22 * * /application/apache/bin/apachectl graceful #每月1、10、22号4点45分执行
10 1 * * 6,0 /application/apache/bin/apachectl graceful #每周六周日1点10分执行
0,30 18-23 * * * /application/apache/bin/apachectl graceful #18-23点之间整点、半点执行
00 */1 * * * /application/apache/bin/apachectl graceful #每小时整点执行
常见错误:
* 23,0-7/1 * * * /application/apache/bin/apachectl graceful #23点及0-7点间每分钟执行一次
命令:
[root@55test ~]# crontab -l
*/2 * * * * /usr/bin/tar zcf /mnt/mm_`date +\%F_\%T`bak1.tz mm* &>/dev/null
*/3 * * * * /usr/bin/tar zcf /mnt/mm_$(date +\%F_\%T)bak2.tz mm* &>/dev/null
*/5 * * * * /bin/sh /work/sh-file/mm_bak.sh &>/dev/null
[root@55test /work/sh-file]# vi mm_bak.sh
/usr/bin/cd /root&&/usr/bin/tar zcf /mnt/mm_$(date +%F_%T)bak3.tz ./mm* # 使用&&将两条命令关联,第一条执行成功后,再执行第二条命令
也可以使用如下格式:
/usr/bin/cd /root&&\ #使用\换行,方便阅读
/usr/bin/tar zcf /mnt/mm_$(date +%F_%T)bak3.tz ./mm*
定时任务调试思路:
1、查看错误日志/var/log/cron,可以先清空日志(echo >/var/log/cron)后再查看新报错
2、调整系统时间日期(间隔大于5分钟)、定时任务时间或定时任务执行频率,加快命令执行。
3、通过脚本日志输出,调试定时任务,/bin/sh /server/scripts/bak.sh &>/tmp/bak.log
定时任务crond、crontab的更多相关文章
- linux 定时任务 Crond Crontab
定时任务http://www.cnblogs.com/chensiqiqi/p/6367890.html http://www.cnblogs.com/chensiqiqi/p/6389611.htm ...
- linux定时任务crond export变量问题
linux定时任务crond export变量问题 1)我写了一个重启resin的脚本,由于业务原因,需要定时在某一个时间重启下resin服务器,于是就在 crontab里配置了如下内容: 50 17 ...
- linux下系统定时任务配置----crontab(mysql定时备份)
crontab命令用于设置周期性被执行的指令,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任 ...
- linux定时任务crond那些事!
1.定时任务crond介绍 1.1 crond是什么 crond是linux系统中用来定期执行命令或指定程序任务的一种服务或软件. 特殊需求:(秒级别)crond服务就无法搞定了,一般工作中写脚本守护 ...
- 定时任务之crontab命令
1.简介 crontab用于设置周期性被执行的命令 Linux系统中Linux调动工作分为两大类: 1.系统执行的工作:系统周期性所要执行的工作,如备份系统数据.清理缓存 2.个人执行的工作:某个用户 ...
- Linux之定时任务Crond使用
Linux之定时任务Crond使用 一.用法 crond服务是linux系统自带的服务,是不需要手动安装的: crond服务是一种守护进程: Linux中的用户使用contab命令来配置corn任务: ...
- L017-linux系统定时任务crond入门小节
L017-linux系统定时任务crond入门小节 oh my god!how old are you? 怎么老是你?没错,我又来了,哈哈哈,今天是我的生日呢,在这么重要的日子里,必须要更一篇学习小节 ...
- linux定时任务:crontab命令
crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查 ...
- Linux系统定时任务crond那些事
1 Linux系统定时任务 1.1 定时任务介绍 1.1.1 Crond是什么? Crond是linux系统中用来定期执行命令或指定程序任务的一种服务或软件.Centos5/ linux系统安装完操作 ...
- Linux之定时任务Crond介绍
Linux之定时任务 定时任务Crond介绍 Crond是linux系统中用来定期执行命令/脚本或指定程序任务的一种服务或软件,一般情况下,我们安装完Centos5/6 linux操作系统之后,默认便 ...
随机推荐
- Spring下面的@Transactional注解的讲解
摘自: https://www.cnblogs.com/xiohao/p/4808088.html Spring下面的@Transactional注解标志的讲解 最近在开发中对Spring中的事务标记 ...
- ActiveMQ从入门到精通(一)
这是关于消息中间件ActiveMQ的一个系列专题文章,将涵盖JMS.ActiveMQ的初步入门及API详细使用.两种经典的消息模式(PTP and Pub/Sub).与Spring整合.ActiveM ...
- 百度编辑器ueditor上传图片失败,显示上传错误,实际上图片已经传到服务器或者本地
报错,上传失败,图片没有显示,且调试response没有信息,但是图片已经上传到了本地 这个问题是因为ueditor里面的Upload.class.php里面__construct()方法里面的ico ...
- 十九、RF接口测试汇总(一)
搭建项目:转自 http://chuansong.me/n/1858477 A.请求方式为get请求 方式一:导入RequestsLibrary库,get request [ alias | ...
- Jmeter之循环控制器
在使用Jmeter测试时,部分接口需要循环执行多次,这时候就可以使用循环控制器去控制执行. 循环控制器如下图: 说明 : (1.名称:标识,建议明确此循环控制器的使用的作用是什么(如:登录循环控制) ...
- 乱入Spring+Mybatis
新进入一个项目,写了一个功能,就是提供一个服务(service),该服务能够查询和插入.完成后,想要用junit测试一下:发现到了DAO底层注入的SqlSession字段为空:才意识到这是一个Spri ...
- visual studio 在windows远程调试 linux 程序 cout 输出乱码
转载:https://www.cnblogs.com/findumars/p/6627255.html 反正是解决了. 以gcc为例,它有三个命令选项:-finput-charset=gb18030- ...
- jmeter线程组基本设置
线程组基本设置 在线程组界面中可以设置以下数据,进行控制线程组: 1.取样器错误后要执行的动作: 继续:忽略错误,继续执行 Start Next Thread Loop: 忽略错误,线程当前循环终止, ...
- pandas DataFram的insert函数
原文链接:https://blog.csdn.net/yanwucao/article/details/80211984 DataFrame.insert(loc, column, value, al ...
- Redis为什么不能使用一主一从哨兵
哨兵机制 识别挂掉的主节点 quorum(法定人数) 是判定主节点不能访问所需要的最少哨兵数量 执行失效备援perform a failover 其中一个哨兵需要被选为救援的领导,并被授权执行救援,而 ...