Linux 유 니 버 설 자동 청소 로그 스 크 립 트

1877 단어 linux각본
더 읽 기
   1. 자동 배치 시스템 을 만 들 때 간단 한 스 크 립 트 입 니 다. 모든 디 렉 터 리 의 로 그 를 정리 하 는 것 이 주요 기능 입 니 다.
2. 주어진 로그 디 렉 터 리 에 따라 삭제 시간 을 crontab 와 결합 하여 로 그 를 정리 하고 정리 가 완료 되면/var/log/deltelog/월 별 청소 로 그 를 생 성 합 니 다.
3. 확장, 스 크 립 트 는 mtime (마지막 수정 시간) 로 삭제 되 기 때문에 만 료 된 백업 을 삭제 하 는 등 파일 이름 의 제한 을 받 지 않 습 니 다.
셸 팁
find – type f – print 시 줄 바 꿈 이나 빈 칸 에 따라 찾 은 파일 을 출력 합 니 다. sh 에 따라 반응 이 다 릅 니 다. xargs 와 결합 하여 변경 작업 을 삭제 하지 않 으 면 영향 을 줄 수 있 습 니 다.
그래서 추가 – print 0 은 null 로 경계 기호 로 해 야 결혼 xargs – o 로 입력 을 포맷 할 수 있 습 니 다.
find 를 사용 할 때 최소 결과 집합 원칙 에 따라 find 해석 식 은 왼쪽 에서 오른쪽으로 가장 왼쪽 에 있 는 필터 기호 가 최대 데 이 터 를 걸 러 낼 수 있 도록 합 니 다.
당신 은 당신 의 필요 에 따라 crontab 에 추가 할 수 있 습 니 다.
셸 스 크 립 트
  
#!/bin/sh
  ###########################
  #delete log blog.duplicatedcode.com
  # in_day_num: like 1 2 is delete 2day ago logs
  # in_log_path like tomcat log home
  ###########################
  in_log_path=${1}
  in_day_num=${2}
  tmp_delete_log=/var/log/deletelog/"`date +%Y%m`.log"
  deleteLog()
  {
  inner_num=${1}
  #find log
  echo "[`date`] >> start delete logs---" >> $tmp_delete_log
  find ${in_log_path} -type f -mtime ${inner_num} -print0 | xargs -0 rm -rf
  echo "[`date`] >> end delete logs---" >> $tmp_delete_log
  }
  init()
  {
  mkdir -p /var/log/deletelog/
  }
  main()
  {
  init
  if [ -z ${in_log_path} ];then
  echo "[`date`] >> error log_path not init---" >> $tmp_delete_log
  return
  fi
  inner_day_num=+7
  if [[ -n ${in_day_num} ]] && [[ ${in_day_num} -ge 1 ]] ; then
  ${inner_day_num}=${in_day_num}
  fi
  deleteLog ${inner_day_num}
  }
  main

좋은 웹페이지 즐겨찾기