1
0

backup.sh 958 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #!/usr/bin/env bash
  2. # 功能:备份 nginx 日志到 backup 目录
  3. SVC_DIR=/home/jsproxy/server
  4. LOG_DIR=$SVC_DIR/nginx/logs
  5. DST_DIR=$SVC_DIR/log-svc/backup
  6. LOG_FILE=$LOG_DIR/proxy.log
  7. LOG_SIZE=$(( 256 * 1024 * 1024 ))
  8. ERR_FILE=$LOG_DIR/error.log
  9. ERR_SIZE=$(( 256 * 1024 * 1024 ))
  10. # error.log 达到 ERR_SIZE,开始备份(目前只清理)
  11. errsize=$(stat --printf=%s $ERR_FILE)
  12. if (( $errsize >= $ERR_SIZE )); then
  13. echo > $ERR_FILE
  14. fi
  15. # proxy.log 达到 LOG_SIZE,开始备份
  16. logsize=$(stat --printf=%s $LOG_FILE)
  17. if (( $logsize < $LOG_SIZE )); then
  18. exit
  19. fi
  20. logtime=$(date "+%Y-%m-%d-%H-%M-%S")
  21. #
  22. # 先移走日志文件,然后创建新的日志文件,通知 nginx 重新打开
  23. #
  24. mv $LOG_FILE $DST_DIR/$logtime.log
  25. touch $LOG_FILE
  26. $SVC_DIR/run.sh reopen
  27. sleep 1
  28. #
  29. # 日志压缩
  30. # 根据实际情况调整策略,在不影响系统的前提下,充分利用剩余 CPU
  31. #
  32. echo "compress ..."
  33. nice -n 19 xz $DST_DIR/*.log
  34. echo "done"