clean_log.sh 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #!/bin/bash
  2. # Global Settings
  3. PATH="$HOME/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin"
  4. export PATH
  5. CUTOFF="85"
  6. #获取磁盘使用率最高的分区
  7. USAGE=$(df -h|awk 'NR>1 {gsub(/%$/,"",$5);print $5 }'|sort -nr|head -1)
  8. before=$USAGE
  9. baseClean(){
  10. #删除tmp目录15天前的文件。
  11. #更新文档时间戳
  12. if [ -d /tmp/hsperfdata_admin ]
  13. then
  14. touch /tmp/hsperfdata_admin
  15. touch /tmp/hsperfdata_admin/*
  16. fi
  17. find /tmp/ -type f -mtime +15 | xargs -t rm -rf >/dev/null 2>&1
  18. now=$(df -h|awk 'NR>1 {gsub(/%$/,"",$5);print $5 }'|sort -nr|head -1)
  19. echo "before:$before; now:$now"
  20. }
  21. CANAL_DIR="/home/admin/canal-server/logs"
  22. if [ ! -d "$CANAL_DIR" ]
  23. CANAL_DIR="/home/admin/canal-admin/logs"
  24. fi
  25. if [[ -d $CANAL_DIR ]]; then
  26. USAGE=$(df -h|awk 'NR>1 {gsub(/%$/,"",$5);print $5 }'|sort -nr|head -1)
  27. if [[ $USAGE -ge 90 ]]; then
  28. find $CANAL_DIR -type f -mtime +7 | xargs rm -rf {}
  29. fi
  30. USAGE=$(df -h|awk 'NR>1 {gsub(/%$/,"",$5);print $5 }'|sort -nr|head -1)
  31. if [[ $USAGE -ge 80 ]]; then
  32. find $CANAL_DIR -type f -mtime +3 | xargs rm -rf {}
  33. fi
  34. USAGE=$(df -h|awk 'NR>1 {gsub(/%$/,"",$5);print $5 }'|sort -nr|head -1)
  35. if [[ $USAGE -ge 80 ]]; then
  36. find $CANAL_DIR -type d -empty -mtime +3 | grep -v canal | xargs rm -rf {}
  37. find $CANAL_DIR -type f -iname '*.tmp' | xargs rm -rf {}
  38. fi
  39. baseClean
  40. exit 0
  41. fi