美文网首页
shell--日志切割脚本

shell--日志切割脚本

作者: w_dll | 来源:发表于2021-01-16 10:44 被阅读0次

日志切割虽然有linux自带的logrotate;
但是个人感觉并不好用,因为要重启服务;
于是用shell写了简单的不需要重启服务的切割脚本;

v2

#!/bin/bash
# crontab : 01 */6 * * *
# info : 6小时分割日志一次
# date : 2021-01-16
split_file(){
  full_log_file=$1
  log_path=${full_log_file%/*}
  log_file=${full_log_file##*/}
  bak_time=$(date '+%Y-%m-%d-%H%M')
  bak_log_file=$log_file'-'$bak_time
  if [ -d $log_path ];then
    cd $log_path
    if [ -f $log_file ];then
      echo $log_file
      echo $bak_log_file
      cp $log_file $bak_log_file && cat /dev/null > $log_file && gzip $bak_log_file
    else
      echo 'not exist!'
    fi
  fi
}

split_file '/home/weblogic10/.pm2/logs/main-error.log'
split_file '/home/weblogic10/.pm2/logs/main-out.log'

v1

#!/bin/bash
# user weblogic
# 55 23 * * * bash /u03/log/ops_batch/split-log.sh > /dev/null

log_path='./'
log_name='test.log'

this_day=$(date '+%Y-%m-%d')
log_file=$log_path$log_name
bak_log_file_pre=${log_name%.*}
bak_log_file=$bak_log_file_pre'-'$this_day'.log'

if [[ -f "$log_file" ]];then
    cd $log_path
    cp $log_name $bak_log_file && cat /dev/null > $log_name && gzip $bak_log_file
fi

相关文章

网友评论

      本文标题:shell--日志切割脚本

      本文链接:https://www.haomeiwen.com/subject/hecnaktx.html