文章詳情頁
Crontab和Shell腳本切割Nginx日志使用詳解
瀏覽:2日期:2023-08-07 20:15:49
目錄一、配置 Crontab 定時任務(wù)二、編寫 shell 腳本三、遇到的問題一、配置 Crontab 定時任務(wù)配置文件路徑:/var/spool/cron/root添加定時任務(wù)59 23 * * * /root/app/shell/nginx-log-slice.sh
配置解釋:在 每天的23時59分 執(zhí)行 /root/app/shell/nginx-log-slice.sh 腳本。
配置其他自定義時間可以參考:Linux強大的定時任務(wù)-Crontab,有詳細(xì)的配置說明。
二、編寫 shell 腳本文件路徑:/root/app/shell/nginx-log-slice.shnginx-log-slice.sh 完整代碼#!/bin/bash. /etc/profilesource /etc/profilesource ~/.bash_profilePATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin# 當(dāng)發(fā)生錯誤時中止腳本set -ebase='/usr/local/nginx/logs/'day='`date '+%Y%m%d'`'curDir='${base}${day}'accessLog=${base}access.logerrorLog=${base}error.logms='`date '+%s'`'# 判斷以當(dāng)天日期為名的文件夾是否存在,存在打印輸出,不存在就創(chuàng)建if [ -d ${curDir} ];then echo '${curDir} 文件夾存在' else echo '${curDir} 文件夾不存在' mkdir ${curDir}fi# 復(fù)制當(dāng)前的 access.log 和 error.log 日志文件,文件名加上時間戳,并存入以當(dāng)天日期為名的文件夾\cp -rf ${accessLog} ${curDir}/access-${ms}.log\cp -rf ${errorLog} ${curDir}/error-${ms}.log# 復(fù)制完成后清空原本的 access.log 和 error.log 日志文件> ${accessLog}> ${errorLog}# 輸出成功或失敗的信息if [ $? == 0 ]; then echo 'nginx slice 成功 (${curDir}/access-${ms}.log)' else echo 'nginx slice 失敗 (${curDir}/access-${ms}.log)'fi三、遇到的問題問題:crontab 定時任務(wù)執(zhí)行 shell 腳本時,可能遇到這種報錯:/bin/sh: /root/app/shell/nginx-log-slice.sh: Permission denied,這就說明 shell 腳本權(quán)限不足。解決:執(zhí)行以下命令為 nginx-log-slice.sh 文件授權(quán)。
chmod 777 /root/app/shell/nginx-log-slice.sh使用 ll 命令查看文件權(quán)限
cd /root/app/shellll在授權(quán)前會輸出:
[root@VM-8-12-centos shell]# ll總用量 8-rwxrwxrwx 1 root root 404 10月 15 2021 test.sh-rw-r--r-- 1 root root 610 10月 9 2022 nginx-log-slice.sh在授權(quán)后會輸出:
[root@VM-8-12-centos shell]# ll總用量 8-rwxrwxrwx 1 root root 404 10月 15 2021 test.sh-rwxrwxrwx 1 root root 610 10月 9 2022 nginx-log-slice.sh一切就緒后建議執(zhí)行 nginx -s reload 重啟 Nginx 服務(wù)
以上就是Crontab和Shell腳本切割Nginx日志的詳細(xì)內(nèi)容,更多關(guān)于Crontab Shell切割Nginx的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
標(biāo)簽:
Nginx
排行榜
