Cirry's Blog

linux中的计划任务—CRONTAB(11)

2016-08-04
linux
4分钟
630字

Crontab 是一个用于设置周期性被执行任务的工具

被周期性执行的任务是Cron job

被周期性执行的任务列表是Cron table

putty:一个免费易用的SSH链接工具

http://www.putty.org

检查cron 服务

  • 检查Crontab 工具是否安装: crowtab -l
  • 检查crond 服务是否启动:service crond status

安装cron

  • yum install vixie-cron
  • yum install crontabs

一个简单的例子

1
crontab -e
2
* /1 * * * * data >> /tmp/log.txt
3
crontab -l
4
5
tail -f /tmp/log.txt

Crontab 的基本格式:

系统服务:Crond 配置工具crontab

每分钟都会以配置文件刷新定时任务

Crontab 的配置文件格式:

***** COMMAND

  • 第一个* 代表的是分钟 (0~59)
  • 第二个*代表的是小时(0~23)
  • 第三个*代表的是日期(0~31)
  • 第四个*代表的是月份(0~12)
  • 第五个*代表的是星期(0~7 | 0, 7 都是代表星期天)

每晚21:30 重启 apache

30 21 * * * service httpd restart

每月1, 10, 22日的 4:45 重启apache

45 4 1,10,22 * * service httpd restart

每月1-10日的4:45重启apache

45 4 1-10 * * service httpd restart

每隔两分钟重启apache

1
* /2 * *** service httpd restart
2
1-59/2 * * * * service httpd restart

晚上11点到早上七点, 每隔1小时重启apache

0 23-7/1 * * * service httpd restart

每天18:00到23:00之间每隔30分钟重启apache

0,30 18-23 * * * service httpd restart

0-59/30 18-23 * * * service httpd restart

*/A表示每A分钟,A-B表示A到B 之前,*表示任何时候,A,B,C 表示A,B,C时

Crotnab 工具的使用:

1
crontab --help
2
crontab -l
3
crontab -e
4
5
1-59/2 * * * * echo "JISHU*****"
6
7
useradd crontester
8
crontab -e -u
9
0-58/2 * * * * echo "JISHU*****"
10
11
crontab -l -u crontester
12
tail -f /var/log/corn

Crontab配置文件

全局(系统)配置文件

-/etc/crontab/

注意格式

1
cd /etc/
2
ls cron*
3
vi crontab # 修改后:wq
4
tail -f /var/log/corn
5
6
cd corn.d
7
ls
8
cat sysstat
9
crontab sysstat
10
crontab -l
11
12
vi crontst
13
*/1 * * * * crontab echo “File in /etc/crond/crontst”
14
crontab -l -u crontester
15
4 collapsed lines
16
crontab -l
17
cat /var/spool/cron/root 目录所在位置
18
19
tail -f /var/log/cron

Crontab 常见错误

坏境变量

1
cd
2
ls -a
3
vi .bash_profile
4
source .bash_profile # (改变后在crontab中并不能用)

命令行中双引号中未加入反斜扛

第三和第五个域之间的执行的是“或”操作

59 1 1-7 4 0 /root/a.sh (错误)

四月的第一个星期日早晨1时59分运行a.sh

59 1 1-7 4 *testdate+\%w-eq 0 && /root/a.sh (正确)

data +%w

test date +%w -eq 0

echo $? (1表示失败, 0表示成功)

test 1=1

test 1=0

分钟设置误用

1
* 0,2,4...22 * * * date # (X)
2
0 */2 * * * date # (√)
3
# 每两分钟运行一次

综合案例:

半分钟执行命令:

date;sleep 0.5s;date

本文标题:linux中的计划任务—CRONTAB(11)
文章作者:Cirry
发布时间:2016-08-04
感谢大佬送来的咖啡☕
alipayQRCode
wechatQRCode
总访问量
总访客数人次