스크립트 요구: 두 종류의 기계가 모두 300여 대입니다. 스크립트를 써서 이 두 종류의 기계 안의 로그 파일을 자동으로 정리합니다.
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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.