dsqzhaoyue 发表于 2018-8-23 13:04:58

nginx_logrotate shell

  #!/bin/bash
  date=$(date "+%H:%M")
  date1=$(date +%F)
  date2=$(date +%F -d last-day)
  date3=$(date +%k)
  date4=$(date +%M)
  PID=/usr/local/nginx/logs/nginx.pid
  bak_dir=/usr/local/nginx/logs/log_bak/${date1}
  bak_name=$(hostname | awk -F'.' '{print $1}')
  log_dir=/usr/local/nginx/logs
  if [ ! -d $bak_dir ] ; then mkdir -p $bak_dir ; fi
  cd $log_dir
  for file in $(find . -type f -name "*.log" | grep -v error); do
  mv $file ${bak_dir}/${file}_${date}_bak
  done
  :> error.log
  kill -USR1 `cat $PID`
  if [[ $date3 -eq 4 && $date4 -lt 3 ]]; then
  cd $(dirname $bak_dir)
  tar zcf ${bak_name}_${date2}_nginx.tar.gz ${date2}
  rm -rf ${date2}
  find . -maxdepth 1 -type f -name "*.gz" -ctime +1 -exec rm -f {} \;
  fi

页: [1]
查看完整版本: nginx_logrotate shell