欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Crontab+Shell做Nginx日志切割腳本實(shí)例代碼

 更新時(shí)間:2017年05月03日 08:48:57   投稿:zx  
本篇文章主要介紹了Crontab+Shell做Nginx日志切割腳本實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

平日里,我們需要把 Nginx 的錯(cuò)誤日志輸出到文件里,但是時(shí)間一長,文件就特別大,之前我服務(wù)器上日志就一周沒管它,今天一看日志文件都32個(gè)G了,大的嚇人。于是就寫了個(gè)日志切割的腳本。

原理

其實(shí)日志切割腳本的原理很簡單

  1. 先將原來的日志文件移動(dòng)到指定文件夾中
  2. 向 Nginx 發(fā)送 USR1 信號,讓 Nginx 重新加載配置文件 [如果不發(fā)送信號的話,nginx 還是會(huì)將日志寫到你移動(dòng)的文件里去
#!/bin/bash

LOGS_PATH=/home/wwwlogs 
DATE=$(date +%Y-%m-%d) 
TIME=$(date +%H)

if [ ! -d ${LOGS_PATH}/${DATE}]; then 
 mkdir ${LOGS_PATH}/${DATE}
fi

mv ${LOGS_PATH}/error.log ${LOGS_PATH}/${DATE}/error_${TIME}.log 
# 向 nginx 發(fā)送信號,讓其重新加載配置文件
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)

上面的代碼其實(shí)挺簡單的,也就是按照日期生成文件夾,再將文件移動(dòng)到新的文件夾中,最后用 Kill 發(fā)送重新加載配置的信號。USR1 信號一般是用戶自定義信號,開發(fā)者可以自行定義如何處理該信號,在 Nginx 中就是重新加載了配置。

讓腳本在指定的時(shí)間里跑起來

說到定時(shí)任務(wù),在 Linux 里,沒有比 Crontab 更加大名鼎鼎了。下面簡單介紹下 Crontab 的使用。

啟動(dòng) crontab 服務(wù)

一般是 /sbin/service crond start

查看服務(wù)是否已經(jīng)運(yùn)行

$ ps -ax | grep cron

crontab 命令

crontab -u : 設(shè)定某個(gè)用戶的cron服務(wù),一般root用戶在執(zhí)行這個(gè)命令的時(shí)候需要此參數(shù)

crontab -l : 列出某個(gè)用戶cron服務(wù)的詳細(xì)內(nèi)容 crontab -r : 刪除沒個(gè)用戶的cron服務(wù) crontab -e : 編輯某個(gè)用戶的cron服務(wù)

crontab 語法

小時(shí) 星期 命令
0-59 0-23 1-31 1-12 0-6 command

幾個(gè)特殊符號的含義: - * 代表取之范圍內(nèi)的數(shù)字 - / 代表每 - - 代表從某個(gè)數(shù)字到某個(gè)數(shù)字 - , 分開幾個(gè)離散的數(shù)字

示例

小時(shí) 星期 命令
5 * * * * ls 指定每小時(shí)的第5分鐘執(zhí)行一次ls命令
30 5 * * * ls 指定每天的 5:30 執(zhí)行l(wèi)s命令
30 7 8 * * ls 指定每月8號的7:30分執(zhí)行l(wèi)s命令
30 5 8 6 * ls 指定每年的6月8日5:30執(zhí)行l(wèi)s命令
30 6 * * 0 ls 指定每星期日的6:30執(zhí)行l(wèi)s命令[注:0表示星期天,1表示星期1
30 3 10,20 * * ls 每月10號及20號的3:30執(zhí)行l(wèi)s命令[注:“,”用來連接多個(gè)不連續(xù)的時(shí)段]
25 8-11 * * * ls 每天8-11點(diǎn)的第25分鐘執(zhí)行l(wèi)s命令[注:“-”用來連接連續(xù)的時(shí)段]
*/15 * * * * ls 每15分鐘執(zhí)行一次ls命令 [即每個(gè)小時(shí)的第0 15 30 45 60分鐘執(zhí)行l(wèi)s命令 ]
30 6 */10 * * ls 每個(gè)月中,每隔10天6:30執(zhí)行一次ls命令[即每月的1、11、21、31日的6:30執(zhí)行一次ls 命令。 ]
50 7 * * * root run-parts /etc/cron.daily [ 注:run-parts參數(shù)表示,執(zhí)行后面目錄中的所有可執(zhí)行文件。 ]

用 crontab 執(zhí)行我們的腳本

簡單的了解了下 crontab 后,可以開始用 crontab 來定時(shí)執(zhí)行我們的腳本了。

用 crontab -e 打開編輯器

在編輯器中輸入下面內(nèi)容:

59 23 * * * /home/nginx-cut.sh

上面的意思是,每天的23:59分開始執(zhí)行腳本。 - 保存文件,然后用 crontab -l 就可以看到我們添加的定時(shí)任務(wù)了

這里需要注意的是,nginx 需要 root 權(quán)限向它發(fā)送信號,所以需要在 root 下執(zhí)行 crontab -e

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • nginx下如何設(shè)置上傳文件大小

    nginx下如何設(shè)置上傳文件大小

    這篇文章主要介紹了nginx下如何設(shè)置上傳文件大小問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • keepalived?+?nginx?實(shí)現(xiàn)高可用方案

    keepalived?+?nginx?實(shí)現(xiàn)高可用方案

    這篇文章主要介紹了keepalived?+?nginx?實(shí)現(xiàn)高可用方案的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • Nginx解決vue項(xiàng)目服務(wù)器部署及跨域訪問后端詳解

    Nginx解決vue項(xiàng)目服務(wù)器部署及跨域訪問后端詳解

    跨域問題在前后端分離項(xiàng)目很常見,至于為什么會(huì)跨域,同源策略,百度各種博客都很詳細(xì),這里不再介紹,這篇文章主要給大家介紹了關(guān)于Nginx解決vue項(xiàng)目服務(wù)器部署及跨域訪問后端的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • nginx 多個(gè)location轉(zhuǎn)發(fā)任意請求或訪問靜態(tài)資源文件的實(shí)現(xiàn)

    nginx 多個(gè)location轉(zhuǎn)發(fā)任意請求或訪問靜態(tài)資源文件的實(shí)現(xiàn)

    這篇文章主要介紹了nginx 多個(gè)location轉(zhuǎn)發(fā)任意請求或訪問靜態(tài)資源文件的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Linux Nginx VPS下簡單解決CC攻擊

    Linux Nginx VPS下簡單解決CC攻擊

    Linux Nginx VPS下簡單解決CC攻擊,使用Nginx與php的朋友可以參考下。
    2010-12-12
  • 解決nginx 503 Service Temporarily Unavailable方法示例

    解決nginx 503 Service Temporarily Unavailable方法示例

    這篇文章主要介紹了解決nginx 503 Service Temporarily Unavailable方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • 修改Nginx源碼實(shí)現(xiàn)worker進(jìn)程隔離實(shí)現(xiàn)詳解

    修改Nginx源碼實(shí)現(xiàn)worker進(jìn)程隔離實(shí)現(xiàn)詳解

    這篇文章主要為大家介紹了修改Nginx源碼實(shí)現(xiàn)worker進(jìn)程隔離實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • 一句簡單命令重啟nginx

    一句簡單命令重啟nginx

    最近我的多個(gè)VPS經(jīng)常出現(xiàn)502錯(cuò)誤,經(jīng)常需要重啟nginx,但網(wǎng)上的很多教程都需要繁瑣的啟動(dòng)腳本,遠(yuǎn)不如apache的重啟命令那么簡單。
    2010-03-03
  • linux查找當(dāng)前系統(tǒng)nginx路徑的兩種方法

    linux查找當(dāng)前系統(tǒng)nginx路徑的兩種方法

    工作中有很多服務(wù)器, 它們上面裝的 nginx 的路徑也太不相當(dāng), 當(dāng)我們拿到一個(gè)不熟悉的服務(wù)器時(shí), 我們怎么知道, 當(dāng)前運(yùn)行的nginx的目錄是哪一個(gè)呢,本文小編給大家介紹了兩種linux查找當(dāng)前系統(tǒng)nginx的路徑的方法,需要的朋友可以參考下
    2023-11-11
  • nginx 負(fù)載均衡的三種參數(shù)設(shè)置

    nginx 負(fù)載均衡的三種參數(shù)設(shè)置

    這篇文章主要介紹了nginx 負(fù)載均衡的三種參數(shù)設(shè)置,需要的朋友可以參考下
    2017-07-07

最新評論