스크립트 요구: 두 종류의 기계가 모두 300여 대입니다. 스크립트를 써서 이 두 종류의 기계 안의 로그 파일을 자동으로 정리합니다.

1357 단어
요구: 두 종류의 기계는 모두 300여 대, 스크립트를 써서 이 두 종류의 기계 안의 로그 파일을 자동으로 정리한다.요새기에서 대량으로 발표하고crontab에 대량으로 발표해야 합니다.
A클래스 머신 로그 저장 경로는 매우 통일되어 있으며, B클래스 머신 로그 저장 경로는 * 일치해야 합니다. (이 디렉터리에는 로그 외에 다른 파일이 있기 때문에 삭제할 수 없습니다. 일치할 때 *.log를 사용할 수 있습니다.)
Class A:/opt/cloud/log/삭제 7일 전 Class B:/opt/cloud/instances/삭제 15일 전
한 스크립트에 써달라고 했어요.요새기의 조작을 고려할 필요가 없고 셸 스크립트만 쓸 수 있습니다.
#!/bin/bash
dir1=/opt/cloud/instances/
dir2=/opt/cloud/log/
if [ -d $dir1 ]
then
find $dir1 -type f -name "*.log" -mtime +15 |xargs rm -f
elif [-d $dir2 ]
then 
find $dir2 -type f -mtime +7 |xargs rm -f
fi

해결:
-d filename filename이 디렉토리이면 진짜 [-d/opt/cloud/log/]
find [경로] - name filename: 파일 이름을 직접 찾는 파일을 나타냅니다.
find[경로] -type file type: 파일 형식을 통해 파일을 찾는 것을 나타냅니다.파일 형식은 다음과 같습니다: f: 일반 파일 b: 블록 장치 파일 c: 문자 장치 파일 d: 디렉터리 l: 링크 문서 s: 소켓 파일
find[경로][매개 변수]
-atime +n/-n: n일 이상의 파일에 액세스하거나 실행한 시간을 나타냅니다. -ctime+n/-n: 쓰기,inode 속성 변경 (소유자, 권한, 링크 변경) 의 시간이 n일보다 크거나 적은 파일을 표시합니다. -mtime + n/-n: 쓰기 시간이 n일 이상이거나 적은 파일을 나타냅니다. 이 인자가 가장 많이 사용됩니다. -mmin+n/-n: mtime가 n분 이내에 있는 파일을 나타냅니다. -o: 또는
xargs는 명령의 출력을 포착하여 다른 명령에 전달할 수 있는 강력한 명령이다
rm으로 너무 많은 파일을 삭제하려고 하면 오류 메시지가 나타날 수 있습니다:/bin/rm Argument list too long.xargs로 이 문제를 피하다
find ~ -name ‘*.log’ -print0 | xargs  rm -f
전재 대상:https://blog.51cto.com/12129628/2072091

좋은 웹페이지 즐겨찾기