久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      Linux日志切割工具Logrotate配置詳解

      Logrotate 程序是一個(gè)日志文件管理工具。用于分割日志文件,壓縮轉(zhuǎn)存、刪除舊的日志文件,并創(chuàng)建新的日志文件,下面就對(duì)logrotate日志輪轉(zhuǎn)的記錄:

      1.1 Logrotate配置文件介紹

      Linux系統(tǒng)默認(rèn)安裝logrotate,默認(rèn)的配置文件:

      /etc/logrotate.conf  /etc/logrotate.d/

      logrotate.conf:為主配置文件
      logrotate.d:為配置相關(guān)子系統(tǒng),用于隔離每個(gè)應(yīng)用配置(Nginx、PHP、Tomcat…)
       
      Logrotate是基于CRON來(lái)運(yùn)行的,其腳本是/etc/cron.daily/logrotate,日志輪轉(zhuǎn)是系統(tǒng)自動(dòng)完成的。
      實(shí)際運(yùn)行時(shí),Logrotate會(huì)調(diào)用配置文件/etc/logrotate.conf。
       
      Logrotate可以由自動(dòng)或者手動(dòng)觸發(fā)日志輪轉(zhuǎn):

      logrotate -f /etc/logrotate.d/nginx  logrotate -f /etc/logrotate.d/php  不過(guò)正式執(zhí)行前最好通過(guò)Debug選項(xiàng)來(lái)驗(yàn)證一下(-d參數(shù))

      具體logrotate命令格式如下:

      logrotate [OPTION…] <configfile>
      -d, –debug :debug模式,測(cè)試配置文件是否有錯(cuò)誤。
      -f, –force :強(qiáng)制轉(zhuǎn)儲(chǔ)文件。
      -m, –mail=command :壓縮日志后,發(fā)送日志到指定郵箱。
      -s, –state=statefile :使用指定的狀態(tài)文件。
      -v, –verbose :顯示轉(zhuǎn)儲(chǔ)過(guò)程。

      1.2 Logrotater日志文件切割策略

      查看logrotate.conf配置:

      cat /etc/logrotate.conf

      weekly //默認(rèn)每一周執(zhí)行一次rotate輪轉(zhuǎn)工作
      rotate 4 //保留多少個(gè)日志文件(輪轉(zhuǎn)幾次).默認(rèn)保留四個(gè).就是指定日志文件刪除之前輪轉(zhuǎn)的次數(shù),0 指沒(méi)有備份
      create //自動(dòng)創(chuàng)建新的日志文件,新的日志文件具有和原來(lái)的文件相同的權(quán)限;因?yàn)槿罩颈桓拿?因此要?jiǎng)?chuàng)建一個(gè)新的來(lái)繼續(xù)存儲(chǔ)之前的日志
      dateext //這個(gè)參數(shù)很重要!就是切割后的日志文件以當(dāng)前日期為格式結(jié)尾,如xxx.log-20131216這樣,如果注釋掉,切割出來(lái)是按數(shù)字遞增,即前面說(shuō)的 xxx.log-1這種格式
      compress //是否通過(guò)gzip壓縮轉(zhuǎn)儲(chǔ)以后的日志文件,如xxx.log-20131216.gz ;如果不需要壓縮,注釋掉就行
      include /etc/logrotate.d //導(dǎo)入/etc/logrotate.d/ 目錄中的各個(gè)應(yīng)用配置
      /var/log/wtmp { //僅針對(duì) /var/log/wtmp 所設(shè)定的參數(shù)
      monthly //每月一次切割,取代默認(rèn)的一周
      minsize 1M //文件大小超過(guò) 1M 后才會(huì)切割
      create 0664 root utmp //指定新建的日志文件權(quán)限以及所屬用戶和組
      rotate 1 //只保留一個(gè)日志.
      }
      #這個(gè) wtmp 可記錄用戶登錄系統(tǒng)及系統(tǒng)重啟的時(shí)間
      #因?yàn)橛?minsize 的參數(shù),因此不見(jiàn)得每個(gè)月一定會(huì)執(zhí)行一次喔.要看文件大小。

       
      Logrotate中其他可配置參數(shù),具體如下:

      compress //通過(guò)gzip 壓縮轉(zhuǎn)儲(chǔ)以后的日志
      nocompress //不做gzip壓縮處理
      copytruncate //用于還在打開(kāi)中的日志文件,把當(dāng)前日志備份并截?cái)啵皇窍瓤截愒偾蹇盏姆绞?,拷貝和清空之間有一個(gè)時(shí)間差,可能會(huì)丟失部分日志數(shù)據(jù)。
      nocopytruncate //備份日志文件不過(guò)不截?cái)?br />create mode owner group //輪轉(zhuǎn)時(shí)指定創(chuàng)建新文件的屬性,如create 0777 nobody nobody
      nocreate //不建立新的日志文件
      delaycompress //和compress 一起使用時(shí),轉(zhuǎn)儲(chǔ)的日志文件到下一次轉(zhuǎn)儲(chǔ)時(shí)才壓縮
      nodelaycompress //覆蓋 delaycompress 選項(xiàng),轉(zhuǎn)儲(chǔ)同時(shí)壓縮。
      missingok //如果日志丟失,不報(bào)錯(cuò)繼續(xù)滾動(dòng)下一個(gè)日志
      errors address //專儲(chǔ)時(shí)的錯(cuò)誤信息發(fā)送到指定的Email 地址
      ifempty //即使日志文件為空文件也做輪轉(zhuǎn),這個(gè)是logrotate的缺省選項(xiàng)。
      notifempty //當(dāng)日志文件為空時(shí),不進(jìn)行輪轉(zhuǎn)
      mail address //把轉(zhuǎn)儲(chǔ)的日志文件發(fā)送到指定的E-mail 地址
      nomail //轉(zhuǎn)儲(chǔ)時(shí)不發(fā)送日志文件
      olddir directory //轉(zhuǎn)儲(chǔ)后的日志文件放入指定的目錄,必須和當(dāng)前日志文件在同一個(gè)文件系統(tǒng)
      noolddir //轉(zhuǎn)儲(chǔ)后的日志文件和當(dāng)前日志文件放在同一個(gè)目錄下
      sharedscripts //運(yùn)行postrotate腳本,作用是在所有日志都輪轉(zhuǎn)后統(tǒng)一執(zhí)行一次腳本。如果沒(méi)有配置這個(gè),那么每個(gè)日志輪轉(zhuǎn)后都會(huì)執(zhí)行一次腳本
      prerotate //在logrotate轉(zhuǎn)儲(chǔ)之前需要執(zhí)行的指令,例如修改文件的屬性等動(dòng)作;必須獨(dú)立成行
      postrotate //在logrotate轉(zhuǎn)儲(chǔ)之后需要執(zhí)行的指令,例如重新啟動(dòng) (kill -HUP) 某個(gè)服務(wù)!必須獨(dú)立成行
      daily //指定轉(zhuǎn)儲(chǔ)周期為每天
      weekly //指定轉(zhuǎn)儲(chǔ)周期為每周
      monthly //指定轉(zhuǎn)儲(chǔ)周期為每月
      rotate count //指定日志文件刪除之前轉(zhuǎn)儲(chǔ)的次數(shù),0 指沒(méi)有備份,5 指保留5 個(gè)備份
      dateext //使用當(dāng)期日期作為命名格式
      dateformat .%s //配合dateext使用,緊跟在下一行出現(xiàn),定義文件切割后的文件名,必須配合dateext使用,只支持 %Y %m %d %s 這四個(gè)參數(shù)
      size(或minsize) log-size //當(dāng)日志文件到達(dá)指定的大小時(shí)才轉(zhuǎn)儲(chǔ),log-size能指定bytes(缺省)及KB (sizek)或MB(sizem).
      當(dāng)日志文件 >= log-size 的時(shí)候就轉(zhuǎn)儲(chǔ)。 以下為合法格式:(其他格式的單位大小寫(xiě)沒(méi)有試過(guò))
      size = 5 或 size 5 (>= 5 個(gè)字節(jié)就轉(zhuǎn)儲(chǔ))
      size = 100k 或 size 100k
      size = 100M 或 size 100M

      1.3 NGINX日志的配置實(shí)例參考:

      vim /etc/logrotate.d/nginx
      /var/log/weblog/*.log {      daily  //指定轉(zhuǎn)儲(chǔ)周期為每天      compress  //通過(guò)gzip 壓縮轉(zhuǎn)儲(chǔ)以后的日志      rotate 7  //保存7天的日志      missingok  //如果日志文件丟失,不要顯示錯(cuò)誤      notifempty  //當(dāng)日志文件為空時(shí),不進(jìn)行輪轉(zhuǎn)      dateext  //使用當(dāng)期日期作為命名格式,exp: nginx_access.log-20190120      sharedscripts  //運(yùn)行postrotate腳本      postrotate  //執(zhí)行的指令              if [ -f /run/nginx.pid ]; then                      kill -USR1 `cat /run/nginx.pid`              fi      endscript  //結(jié)束指令  }

       

      1.4 PHP-FPM日志的配置實(shí)例參考:

      vim /etc/logrotate.d/nginx
      /usr/local/php/var/log/*.log {  daily  compress  rotate 7  missingok  notifempty  dateext  sharedscripts  postrotate      if [ -f /usr/local/php/var/run/php-fpm.pid ]; then          kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`      fi  endscript  }

       

      1.5 Logrotater日志切割輪詢

      由于Logrotate是基于CRON運(yùn)行的,所以這個(gè)日志輪轉(zhuǎn)的時(shí)間是由CRON控制的,具體可以查詢CRON的配置文件/etc/anacrontab,過(guò)往的老版本的文件為(/etc/crontab)

      查看輪轉(zhuǎn)文件:/etc/anacrontab

      cat /etc/anacrontab      SHELL=/bin/sh      PATH=/sbin:/bin:/usr/sbin:/usr/bin      MAILTO=root      RANDOM_DELAY=45      START_HOURS_RANGE=3-22      1   5   cron.daily      nice run-parts /etc/cron.daily      7   25  cron.weekly     nice run-parts /etc/cron.weekly      @monthly 45 cron.monthly        nice run-parts /etc/cron.monthly

      使用anacrontab輪轉(zhuǎn)的配置文件,日志切割的生效時(shí)間是在凌晨3點(diǎn)到22點(diǎn)之間,而且隨機(jī)延遲時(shí)間是45分鐘,但是這樣配置無(wú)法滿足我們?cè)诂F(xiàn)實(shí)中的應(yīng)用
       
      現(xiàn)在的需求是將切割時(shí)間調(diào)整到每天的晚上12點(diǎn),即每天切割的日志是前一天的0-24點(diǎn)之間的內(nèi)容,操作如下:

      mv /etc/anacrontab /etc/anacrontab.bak          //取消日志自動(dòng)輪轉(zhuǎn)的設(shè)置

      使用crontab來(lái)作為日志輪轉(zhuǎn)的觸發(fā)容器來(lái)修改Logrotate默認(rèn)執(zhí)行時(shí)間

      vi /etc/crontab   SHELL=/bin/bash  PATH=/sbin:/bin:/usr/sbin:/usr/bin  MAILTO=root  HOME=/    # run-parts  01 * * * * root run-parts /etc/cron.hourly  59 23 * * * root run-parts /etc/cron.daily  22 4 * * 0 root run-parts /etc/cron.weekly  42 4 1 * * root run-parts /etc/cron.monthly

      1.6 解決logrotate無(wú)法自動(dòng)輪詢?nèi)罩镜霓k法

      現(xiàn)象說(shuō)明:
      使用logrotate輪詢nginx日志,配置好之后,發(fā)現(xiàn)nginx日志連續(xù)兩天沒(méi)被切割,檢查后確定配置文件一切正常,這是為什么呢??

      強(qiáng)行啟動(dòng)記錄文件維護(hù)操作,縱使logrotate指令認(rèn)為沒(méi)有需要,應(yīng)該有可能是logroate認(rèn)為nginx日志太小,不進(jìn)行輪詢。
      故需要強(qiáng)制輪詢,即在/etc/cron.daily/logrotate腳本中將 -t 參數(shù)替換成 -f 參數(shù)

      vim /etc/cron.daily/logrotate 
      #!/bin/sh  /usr/sbin/logrotate /etc/logrotate.conf  EXITVALUE=$?  if [ $EXITVALUE != 0 ]; then      /usr/bin/logger -f logrotate "ALERT exited abnormally with [$EXITVALUE]"  fi  exit 0

      最后最后重啟下cron服務(wù):

      /etc/init.d/crond restart
      Stopping crond: [ OK ]  Starting crond: [ OK ]
      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)