自動清理日誌腳本
#!/bin/bash
#SystemDate
date=$(date +%Y%m%d)
source_url=日誌現存路徑
target_url=將原日誌備份的路徑
cp $source_url/logname $target_url/logname_$date
cat /dev/null > $source_url/logname
原日誌需要以>>方式輸出到logname
例:命令>>logname&
『貳』 Linux 系統 shell腳本定時 清空系統日誌文件
其實沒有必要寫shell腳本,簡單一句話放在系統定時任務里就行了。
比如你的日誌文件名叫a.log。路徑為/tmp/a.log;
那麼你可以寫個定時任務,這樣做:crontab -e 進入定時任務器,然後把下面這段寫到裡面
00 02 * * * echo " " >/tmp/a.log
然後保存退出就可以了。這段內容意思是,每天凌晨2點自動清空a.log內容。你也可以自己定義多久清一次。比如想10分鍾清一次,就這么寫*/10 * * * * echo " " >/tmp/a.log。具體的crontab時間定義你可以去網路查查。希望對您有用!
『叄』 shell定期刪除日誌腳本
腳本如下:
#!/bin/bash
# vim /etc/cron.d/backup
#Author:xxxx
#Date:20140619
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
DIR="/tmp/logs"
file_num=`find $DIR/*.log.* -mtime +1 |wc -l`
echo "have $file_num file"
find $DIR/*.log.* -mtime +1 |xargs rm -rf {} \; >/dev/null 2>&1
====================================================
上面腳本能完成你的要求
一定要照你的腳本寫,沒有測試,你自己修改一下,思路是這樣的。
上面的直接用Find找到文件的修改時間,直接定位文件刪除。
下面這個匹配文件中的名字中包含指定時間的文件,條件為真,刪除。
計算加1.
你自己寫的時間匹配有問題好像。
++++++++++++++++++++++++++++++++++++
tianshu=1
m=0
sj=`date +%Y%m%d -d -${tianshu}day`
for i in `ls *.log.*`
do
echo $i |grep 」$sj「 && rm -f $i
if [ $? = 0 ];then
m++
fi
done
echo $m
『肆』 sqlServer 如何自動清理日誌文件
資料庫日誌文件是隨著時間增長而增長的,如果長時間不清理,文件會變得特別大,因此需要定期清空,但是日至文件是恢復資料庫的重要依據,不用日誌文件也是不明智的。手工清除單個資料庫的還好說,但資料庫多了,或者臨時沒有來得及清理,可能硬碟空間就會占滿了,影響訪問。因此設置自動清理資料庫日誌文件還是比較實用的。
手動清理方法:右鍵單擊需要清理的資料庫,選擇「屬性」,在「選項」卡上,把故障還原模型設定為簡單,確定後關閉;再右鍵單擊該資料庫,「所有任務」-「收縮資料庫」,確認後即可清除日誌文件,最後記得重新選擇「屬性」,將故障還原模型設置為完全。
自動清理方法:利用sql server代理服務,執行自動作業。
打開企業管理器,進入「管理」-「sql server代理服務」-「作業」,在右側窗口點擊右鍵,選擇「新建作業」。「常規」選項卡中,填寫作業名稱,具體
上邊的資料庫名稱填寫需要維護的資料庫名稱,資料庫日誌文件名填寫其對應的日誌文件名,注意,不是資源管理器里看到的帶後綴名的那個名字,而是企業管理器里,資料庫屬性里日誌選項卡中日誌的名字(通常也只是差一個後綴名……),確定後添加一個作業步驟。 如果需要維護多個資料庫,用上述方法重復添加作業步驟,注意每個步驟成功或失敗後的動作即可,最後選擇一下開始的步驟。
在「調度」選項卡中,類似備份的維護計劃,填寫調度周期,即定期清理的周期,不再細述。如果需要,可以在最後的「通知」選項卡上設置作業完成後的通知項,需要設置操作員,以及設置相應的服務,這里也不具體說明了,通常不用……
『伍』 window 系統定時刪除文件腳本
rem: 注釋命令,只是起一個注釋的作用
/p:指定要刪除的目錄
/s:表示遞歸搜索子目錄
/d:-14表示14天前的文件,-7表示7天前的文件
/m: . 表示所有文件類型,如果要刪除特定文件格式,可自行指定(如:只刪除txt文件,可寫成 *.txt )
/c:自行指定的命令,後面雙引號括起來的是刪除文件命令
自行指定的命令 "cmd /c del /q /f @path" 中:
/c: 表示執行完批處理命令後,關閉CMD窗口
del: 刪除文件的命令
/q:安靜模式。刪除全局通配符時,不要求確認
/f:強制刪除只讀文件。
2.在彈出頁面中,選擇「創建基本任務」,效果如下,輸入名稱、描述。下一步
3.創建觸發器,選擇自動執行這個任務的時間頻率(如每天、每星期、每月、一次性、每次啟動計算機時、每次登錄時等),然後單擊「下一步」按鈕。
4.設置此任務計劃需要執行的腳本或程序(自定義腳本)。
5.點擊完成,任務完成。可以在該定時任務中查看詳情。
Linux:
定時清理7天前的Tomcat日誌腳本
logs_path="/tomcat/tomcat-token/logs"
find $logs_path -mtime +7 -name "localhost_access_log.*.txt" -exec rm -rf {} ;
find $logs_path -mtime +7 -name "catalina.*.log" -exec rm -rf {} ;
find $logs_path -mtime +7 -name "manager.*.log" -exec rm -rf {} ;
find $logs_path -mtime +7 -name "host-manager.*.log" -exec rm -rf {} ;
find $logs_path -mtime +7 -name "fileservice.log.*" -exec rm -rf {} ;
『陸』 linux 清除前一天日誌的腳本
Linux有正常的日誌的輪替,即:把現在的日誌重命名然後再產生新的日誌文件,可以利用這個原理來清空當前的日誌文件,而不會導致以前的日誌流失!這樣的話你可以設置你的日誌文件為每天一輪換,則當前日誌文件內的信息就是今天的日誌!
vi/etc/logrotate.conf 把其中的weekly或者monthly改為dayly就行!