gentos 执行sh文件_linux定时自动清理日志文件
現(xiàn)有一個應(yīng)用系統(tǒng),應(yīng)用日志記錄的內(nèi)容很多,經(jīng)常造成存儲空間不夠,需要手工去刪除早期的日志文件來釋放空間。應(yīng)用的日志文件命名如下,固定前后綴加上日期和小時:
為了避免手工刪除日志,考慮通過寫shell腳本來刪除30天以前的日志文件,然后使用crontab命令生成定時任務(wù),在每天早上0點(diǎn)1分調(diào)用上面的shell腳本進(jìn)行日志清理。
基本環(huán)境信息如下:
工作目錄:/home/weblogic/scripts/cleanlog
日志文件目錄:/home/weblogic/Oracle/Middleware/user_projects/domains/base_domain/sk
1. 創(chuàng)建日志清理腳本cleanLog.sh
cd /home/weblogic/scripts/cleanlog
vi cleanLog.sh
輸入腳本內(nèi)容如下:
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. 生成定時任務(wù)
首先生成定時任務(wù)的配置文件cron.txt,內(nèi)容如下:
1 0 * * * sh /home/weblogic/scripts/cleanlog/cleanLog.sh
表示每天0點(diǎn)1分執(zhí)行腳本cleanLog.sh
然后生成定時任務(wù):crontab cron.txt
注意執(zhí)行前要通過crontab -l查看,確保原來沒有定時任務(wù),否則會覆蓋定時任務(wù)。
補(bǔ)充說明:
1) 可以通過crontab -l來查看定時的情況。
2) 要刪除全部定時任務(wù):crontab -r,但是要慎用。
3) 也可以通過crontab -e來打開任務(wù)列表,選中指定的任務(wù)進(jìn)行刪除。
4) 如果定時任務(wù)不執(zhí)行或者執(zhí)行出錯,可以通過root用戶來查看定時任務(wù)的執(zhí)行日志:
tail-200f /var/log/cron
5) 為了方便調(diào)試,可以把定時任務(wù)設(shè)成分鐘執(zhí)行一次:*/1 * * * *
3. 創(chuàng)建日志目錄和查看執(zhí)行日志
腳本有記錄日志清理的情況,需要在工作目錄下創(chuàng)建一個log目錄:
cd /home/weblogic/scripts/cleanlog
mkdir log
然后可以通過以下命令來查看日志清理的情況:
tail -200f cleanup.log
4. 如果是集群,復(fù)制相關(guān)文件到其他服務(wù)器并啟動定時任務(wù)
復(fù)制相關(guān)文件可以從當(dāng)前服務(wù)器通過scp命令進(jìn)行復(fù)制:
scp -r scripts/ 用戶名@目標(biāo)服務(wù)器地址:~/scripts
注:命令中~表示用戶的主目錄,也可以使用絕對路徑進(jìn)行。
總結(jié)
以上是生活随笔為你收集整理的gentos 执行sh文件_linux定时自动清理日志文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中哪里用到缩进_建筑防火中各
- 下一篇: linux std::queue 怎么释