centos 7 crontab定时器及开机自启

crontab 建议直接采用centos7 自带得cronteb包,
定时器:就是定时去执行干某一件事
在这里我以脚本为媒介


1 当然是创建一个脚本,创建目录随意但是你一定要记得。。
直接通过vi来创建一个test.sh脚本!
vi /etc/test.sh
编辑脚本内容:

#!/bin/bash
# chkconfig: 2345 10 90
# description: test
2345表示系统运行级别是2,3,4或者5时都启动此服务,20,是启动的优先级,80是关闭的优先级,如果启动优先级配置的数太小时如0时,则有可能启动不成功,因为此时可能其依赖的网络服务还没有启动,从而导致自启动失败

命令 参数and执行文件 日志输出位置
/home/jdk1.8.0_161/bin/java -jar /home/jdk1.8.0_161/java/lilu.jar >> /home/log/test.log

在这里多插入点知识就是开机运行自己写的脚本,
开机运行自己的脚本配置:
1,创建一个test.sh脚本,
mkdir /etc/test.sh
给该文件可执行权限
chmod +x /etc/test.sh
2,在开机加载的配置项中添加test.sh脚本
vi etc/rc.d/rc.local
在其中添加创建好脚本的位置 /etc/test.sh
然后再给该文件可执行权限
chmod +x /etc/rc.d/rc.local
这样就可以在开机的时候执行该脚本了,以后就可以再rc.local中添加服务就是了

如果开机启动未成功可以查看chkconfig命令

好了,言归正传 :
脚本我们已经创建好了然后就只需要配置在crontab中就可以了↓↓
vi /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
这个就是定时任务 每天晚上20点30执行test.sh脚本
30 20 * * * /etc/test.sh

当我们编辑好定时任务后记得保存:wq
得装载一遍才生效哦crontab /etc/crontab
crontab -l查看任务
crontab -e便捷定时编辑任务

当我们编辑完定时任务过后,记得重载一遍crond
systemctl reload crond.service

启动、停止、重启服务↓
systemctl start crond.service

systemctl stop crond.service

systemctl restart crond.service

为了方便我们可以把crontab设置成开机自启 在 /etc/rc.d/rc.local 脚本中加入 systemctl start crond.service即可

 

 

每10秒执行定时任务-crontab

* * * * * /data/crontab.sh
* * * * * sleep 10; /data/crontab.sh
* * * * * sleep 20; /data/crontab.sh
* * * * * sleep 30; /data/crontab.sh
* * * * * sleep 40; /data/crontab.sh
* * * * * sleep 50; /data/crontab.sh

1
2
3
4
5
6

通过以上方式实现定时任务每10秒执行一次脚本。

根据自己业务逻辑,可以灵活修改时间,如果要改成每5分钟或7分钟执行一次的话,改成这种格式:

*/5 * * * * /data/crontab.sh
*/7 * * * * /data/crontab.sh

1
2

crontab的格式: 分 时 日 月 周 命令

crontab的常用的命令如下:

crontab [-u username]

1

//省略用户表表示操作当前用户的crontab
-e (编辑工作表)
-l (列出工作表里的命令)
-r (删除工作作)

我们用crontab -e进入当前用户的工作表编辑,是常见的vim界面。每行是一条命令。

crontab的命令构成为 时间+动作,其时间有分、时、日、月、周五种,操作符有

* 取值范围内的所有数字
/ 每过多少个数字
– 从X到Z
,散列数字

1
2
3
4

实例1:每1分钟执行一次myCommand

* * * * * myCommand

1

实例2:每小时的第3和第15分钟执行

3,15 * * * * myCommand

1

实例3:在上午8点到11点的第3和第15分钟执行

3,15 8-11 * * * myCommand

1

实例4:每隔两天的上午8点到11点的第3和第15分钟执行

3,15 8-11 */2 * * myCommand

1

实例5:每周一上午8点到11点的第3和第15分钟执行

3,15 8-11 * * 1 myCommand

1

实例6:每晚的21:30重启smb

30 21 * * * /etc/init.d/smb restart

1

实例7:每月1、10、22日的4 : 45重启smb

45 4 1,10,22 * * /etc/init.d/smb restart

1

实例8:每周六、周日的1 : 10重启smb

10 1 * * 6,0 /etc/init.d/smb restart

1

实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb

0,30 18-23 * * * /etc/init.d/smb restart

1

实例10:每星期六的晚上11 : 00 pm重启smb

0 23 * * 6 /etc/init.d/smb restart

1

实例11:每一小时重启smb

* */1 * * * /etc/init.d/smb restart

1

实例12:晚上11点到早上7点之间,每隔一小时重启smb

23-7/1 * * * /etc/init.d/smb restart

————————————————
版权声明:本文为CSDN博主「abiao1981」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/happyzhlb/article/details/106220280

发表回复