700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > shell命令删除昨日的日志_linux定时自动清理日志文件

shell命令删除昨日的日志_linux定时自动清理日志文件

时间:2019-12-16 08:38:10

相关推荐

shell命令删除昨日的日志_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

注:命令中~表示用户的主目录,也可以使用绝对路径进行。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。