一,查看crond的狀態:
[root@yjweb crontab]# systemctl status crond
說明:和其他service的執行相同:
啟動:systemctl start crond
停止:systemctl stop crond
說明:crond服務一般linux系統會默認安裝,
如果不存在,可以用這個命令安裝:
[root@yjweb crontab]# yum install crontabs
說明:劉宏締的架構森林是一個專注架構的博客,地址:https://www.cnblogs.com/architectforest
對應的源碼可以訪問這里獲取: 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)