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://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) 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM