gentos 执行sh文件_linux定时自动清理日志文件
現有一個應用系統,應用日志記錄的內容很多,經常造成存儲空間不夠,需要手工去刪除早期的日志文件來釋放空間。應用的日志文件命名如下,固定前后綴加上日期和小時:
為了避免手工刪除日志,考慮通過寫shell腳本來刪除30天以前的日志文件,然后使用crontab命令生成定時任務,在每天早上0點1分調用上面的shell腳本進行日志清理。
基本環境信息如下:
工作目錄:/home/weblogic/scripts/cleanlog
日志文件目錄:/home/weblogic/Oracle/Middleware/user_projects/domains/base_domain/sk
1. 創建日志清理腳本cleanLog.sh
cd /home/weblogic/scripts/cleanlog
vi cleanLog.sh
輸入腳本內容如下:
WORK_HOME=/home/weblogic/scripts/cleanlog
WORK_LOG_FILE=${WORK_HOME}/log/cleanup.log
#WORK_ERROR_FILE=${WORK_HOME}/log/cleanup.error.log
LOG_PATH=/home/weblogic/Oracle/Middleware/user_projects/domains/base_domain/sk/
LOG_FILE_DATE_PART=`date -d "-30 day" +%Y-%m-%d`
LOG_FILE=${LOG_PATH}sk.log.${LOG_FILE_DATE_PART}*.log
function log() {
echo `date +"%Y-%m-%d %H:%M:%S - "`$1' ' >>${WORK_LOG_FILE}
}
log "clean up log start..."
log "rm -f "$LOG_FILE
rm -f $LOG_FILE 1>>$WORK_LOG_FILE 2>>$WORK_LOG_FILE
log "clean up log end."
2. 生成定時任務
首先生成定時任務的配置文件cron.txt,內容如下:
1 0 * * * sh /home/weblogic/scripts/cleanlog/cleanLog.sh
表示每天0點1分執行腳本cleanLog.sh
然后生成定時任務:crontab cron.txt
注意執行前要通過crontab -l查看,確保原來沒有定時任務,否則會覆蓋定時任務。
補充說明:
1) 可以通過crontab -l來查看定時的情況。
2) 要刪除全部定時任務:crontab -r,但是要慎用。
3) 也可以通過crontab -e來打開任務列表,選中指定的任務進行刪除。
4) 如果定時任務不執行或者執行出錯,可以通過root用戶來查看定時任務的執行日志:
tail-200f /var/log/cron
5) 為了方便調試,可以把定時任務設成分鐘執行一次:*/1 * * * *
3. 創建日志目錄和查看執行日志
腳本有記錄日志清理的情況,需要在工作目錄下創建一個log目錄:
cd /home/weblogic/scripts/cleanlog
mkdir log
然后可以通過以下命令來查看日志清理的情況:
tail -200f cleanup.log
4. 如果是集群,復制相關文件到其他服務器并啟動定時任務
復制相關文件可以從當前服務器通過scp命令進行復制:
scp -r scripts/ 用戶名@目標服務器地址:~/scripts
注:命令中~表示用戶的主目錄,也可以使用絕對路徑進行。
總結
以上是生活随笔為你收集整理的gentos 执行sh文件_linux定时自动清理日志文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中哪里用到缩进_建筑防火中各
- 下一篇: java字符转为数字_Java 判断字符