centos8上使用crond
一,查看crond的状态:
[root@yjweb crontab]# systemctl status crond
说明:和其他service的执行相同:
启动:systemctl start crond
停止:systemctl stop crond
说明:crond服务一般linux系统会默认安装,
如果不存在,可以用这个命令安装:
[root@yjweb crontab]# yum install crontabs
说明:刘宏缔的架构森林是一个专注架构的博客,
网站:https://blog.imgtouch.com
本文: https://blog.imgtouch.com/index.php/2023/05/20/centos8linux-shi-yong-crondcentos801905/
对应的源码可以访问这里获取: https://github.com/liuhongdi/
说明:作者:刘宏缔 邮箱: 371125307@qq.com
二,crond的日志位于何处?
默认位于/var/log目录下,cron打头
[root@yjweb crontab]# ll /var/log/cron* -rw------- 1 root root 35831 Mar 6 14:01 /var/log/cron -rw------- 1 root root 45705 Feb 9 03:01 /var/log/cron-20200209 -rw------- 1 root root 45596 Feb 16 03:01 /var/log/cron-20200216 -rw------- 1 root root 45227 Feb 23 03:01 /var/log/cron-20200223 -rw------- 1 root root 45429 Mar 1 03:01 /var/log/cron-20200301
三,crond的配置命令:
1,编辑配置
[root@yjweb crontab]# crontab -e
2,查看已添加的定时任务:
[root@yjweb crontab]# crontab -l
四,crontab命令编辑后的配置保存在哪里?
位于 /var/spool/cron这个目录下,
如果用root账户配置了定时任务,则可以看到有一个root文件:
[root@webserver1 cron]# ls /var/spool/cron/ root webop [root@webserver1 cron]# more /var/spool/cron/root
此处即为我们所添加的定时任务
五,crontab中命令的格式:
查看/etc/crontab文件可以看到crontab所定义的命令格式:
[root@yjweb crontab]# more /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
说明:5个*分别代表:
分钟
小时
天
月
周几
六,看例子:
1,每天的0点0分,执行一个切分日志的脚本程序
0 0 * * * sh /data/web/cmd/split_log_shell/splitlog.sh >> /data/logs/cronlogs/splitlog.log 2>&1
2,每15分钟,执行一个检查php日志中是否出现报错的程序
*/15 * * * * /data/software/php7/bin/php /data/web/cmd/check_php_error/check_error_for_php_log.php >> /data/logs/cronlogs/checkphperror.log 2>&1
3,在指定的分钟,运行一个导出数据的脚本
0,15,30,45 * * * * sh /usr/sbin/backupMysql.sh >> /data/logs/cronlogs/backupmysql.log 2>&1
说明: 2>&1的作用:把shell的错误输出2也转为输出到正常输出1,
否则如果程序运行出错时,错误信息不会被记录到命令行上所添加的日志文件中
七,生产环境中使用crond值得注意的地方:
应该有一个保存cron输出内容的日志目录,
用来记录下crond运行时的情况,
把数据输出到这里
crond自身的日志只记录了在相应的时间程序是否有执行,没有执行情况的反馈
创建cron的日志目录
[root@yjweb crontab]# mkdir /data/logs/cronlogs [root@yjweb crontab]# chmod 777 /data/logs/cronlogs/
八,查看当前crond的版本
[webop@yjweb ~]$ crontab -V cronie 1.5.2 [webop@yjweb ~]$ crond -V cronie 1.5.2
说明:用crontab crond两个命令均可
因为它们属于同一个安装包
用下面的命令可以查看:
[webop@yjweb ~]$ rpm -ql cronie
九,查看本地centos的版本:
[webop@yjweb ~]$ cat /etc/redhat-release CentOS Linux release 8.0.1905 (Core)