저는 stat
디렉터리의 모든 파일을 가져온 다음 어제 생성된 특정 파일을 찾아서 해당 파일이 특정 크기보다 큰지 알려주는 스크립트를 작성 중입니다.
따라서 기본적으로 .gz 유형 파일(적어도 24시간 전에 마지막으로 수정했어야 함)인 파일을 찾고 크기가 특정 숫자(예: 4KB 예)보다 작지 않은지 확인하려면 이것이 필요합니다. . 그렇다면 4KB 크기 미만이면 "실패" 또는 이와 유사한 내용을 에코해야 하며, 해당 임계값을 초과하는 경우 "성공" 또는 이와 유사한 내용을 에코해야 합니다.
결국 실패하거나 성공하면 이메일을 보내도록 하겠습니다.
지금까지 모든 파일을 나열하고 지난 24시간 동안 수정된 파일을 찾았지만 초보자이기 때문에 이 시점에서 길을 잃었습니다.
for file in /*; do
stat $file
done
find /* -mtime -1 -print
지금은 전체 컴퓨터를 실행하고 있지만 결국 특정 디렉터리에서 실행하게 됩니다.
답변1
man find
find를 사용하여 크기( ) 를 포함한 모든 것을 찾을 수 있습니다 .
-size n[cwbkMG]
File uses n units of space. The following suffixes can be used:
`b' for 512-byte blocks (this is the default if no suffix is used)
`c' for bytes
`w' for two-byte words
`k' for Kilobytes (units of 1024 bytes)
`M' for Megabytes (units of 1048576 bytes)
`G' for Gigabytes (units of 1073741824 bytes)
그래서 당신은 이것을 할 수 있습니다 :
find . -name "*.gz" -size -4k -mtime -1 -printf 'Failure %p\n'
find . -name "*.gz" -size -4k -mtime +1 -printf 'Success %p\n'