日誌檔案較大,每天定時壓縮昨天的日誌
新建乙個檔案:vi gz-log.sh
#vim gz-log.sh
#!/bin/bash
#凌晨2點時間
am0=020000
#凌晨3點時間
am1=030000
#壓縮檔案路徑
path=$*
while :;do
#系統前時間
systemtime=`date +%h%m%s`
#日誌日期時間
logtime=`date +"%y/%m/%d %h:%m:%s"`
if((`expr $systemtime + 0` >= `expr $am0 + 0` && `expr $systemtime + 0` < `expr $am1 + 0`));then
#獲取昨天日期
time=`date -d "-1 day" +%y%m%d`
echo $logtime 昨天的日期: $time
#獲取昨天日誌檔案
filenamelist=`ls $path |grep acc.log.$time |grep -v acc.log.$time.gz`
if [ ! $filenamelist ];then
echo $logtime "檔案不存在!"
sleep 1h
else
echo $logtime 壓縮的檔名: $filenamelist
for list in $;do
if [ -f $$list ];then
#執行壓縮
gzip -f $$list
r=$?
if(($r==0));then
echo $logtime "壓縮成功!"
sleep 1h
else
echo $logtime "壓縮失敗!"
sleep 1h
fielse
echo $logtime "此檔案不是普通檔案!"
sleep 1h
fidone
fielse
echo $logtime "未到壓縮時間,請稍等..."
sleep 1h
fidone
說明:每天凌晨2點到3點之間壓縮日誌,每小時迴圈一次,如果在壓縮時間範圍內就獲取昨天的日誌檔案進行壓縮,不在時間範圍內睡眠一小時
啟動**
新建檔案:vi statr.sh
#vim statr.sh
#!/bin/bash
#檔案路徑
path='/home/kechu_dev/logs/'
#日誌檔案路徑
logfile=/home/kechu_dev/logs/gz_log.log.`date +%y%m%d`
touch $
#啟動gz-logs.sh
nohup gz-log.sh $ > $ &
tail -f $
說明:定義要壓縮的日誌檔案路徑和本shell列印的日誌路徑,用nohup命令啟動gz-log.sh並追加日誌到本shell列印的日誌路徑
最後啟動./statr.sh即可
shell指令碼定時清除日誌檔案
bin bash clearfile 獲取資料夾內,檔案大小 m為單位 和檔案路徑 呼叫clear函式清空檔案 clear filesizeandfile clear echo 檔案大小 filesize echo 檔案路徑 filepath echo 磁碟空間 disksize 獲取檔名 file...
定時清理日誌的shell指令碼
因為公司springcloud專案各個server的日誌堆積日益增多佔據伺服器記憶體,故提出了定時清理7天之外的日誌需求。場景 日誌目錄結構 logs server name date date 1.log 789 刪除子目錄下的過期log日誌 10removelogs 1415 year 16 m...
shell 定時指令碼
很多時候我們有希望伺服器定時去執行乙個指令碼來觸發乙個操作,比如說定時去備份伺服器資料 資料庫資料等 不適合人工經常做的一些操作這裡簡單說下 shell shell俗稱殼,類似於dos下的command和後來的cmd.exe。它接收使用者命令,然後呼叫相應的應用程式。作為命令語言,它互動式解釋和執行...