tft每日頭條

 > 科技

 > linux 日志服務器部署

linux 日志服務器部署

科技 更新时间:2024-12-05 04:49:13
前言

crontab執行任務的時候希望輸出日志,但是日志之需要保留一段時間會自動清理掉,不然會把磁盤裝滿的。因此,就希望系統自動去删除。幸好,tmpwatch這個服務會自動清理/tmp目錄(主要文件不要放/tmp目錄),隻要安裝好tmpwatch這個包就可以了,這個依賴crontab執行的。那現在就需要把crontab日志輸出到帶日期的文件名中就可以了。

linux 日志服務器部署(計劃任務輸出日志并定期清理)1


crontab設置

使用crontab -e進行任務編輯,不推薦直接編輯/var/spool/cron/下的文件,有些錯誤不提示

crontab -e

* * * * * /home/linuxyunweicai/job.sh >> /tmp/job.log.$(date %Y%m%d) 2>&1

新建的job等2分鐘才會開始執行,如果需要馬上執行,直接重啟一下crond服務就可以了。

發現沒有日志生成,看下cron的日志/var/log/cron

Jun 2 13:44:01 linuxop CROND[23261]: (root) CMD (home/linuxyunweicai/job.sh >> /tmp/job.log.$(date )

後面的東西就沒了,因此應該是%的原因:在crontab中%是有特殊含義的,表示換行的意思。如果要用的話必須進行轉義\%,如經常用的date %Y%m%d在crontab裡是不會執行的,應該換成date \%Y\%m\%d。

修改任務

* * * * * /home/linuxyunweicai/job.sh >> /tmp/job.log.$(date \%Y\%m\%d) 2>&1

這樣子就可以了,在/tmp目錄下會生成job.log.20180602的日志文件,tmpwatch默認是清理10天前的文件,這樣子就不怕日志文件沒有清除導緻磁盤爆滿。


tmpwatch設置

tmpwatch的配置文件是放到 /etc/cron.daily/tmpwatch,這個目錄的腳本,cron每天會執行一次,這裡就是一個shell腳本,如果需要修改日志保留時間可以修改這個腳本。

#! /bin/sh

flags=-umc

/usr/sbin/tmpwatch "$flags" -x /tmp/.X11-unix -x /tmp/.XIM-unix \

-x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix \

-X '/tmp/hsperfdata_*' -X '/tmp/.hdb*lock' -X '/tmp/.sapstartsrv*.log' \

-X '/tmp/pymp-*' 10d /tmp

/usr/sbin/tmpwatch "$flags" 30d /var/tmp

for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do

if [ -d "$d" ]; then

/usr/sbin/tmpwatch "$flags" -f 30d "$d"

fi

done


總結

Linux是不是很簡單而強大呢!

linux 日志服務器部署(計劃任務輸出日志并定期清理)2

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved