디렉터리 크기를 확인하고 권한을 읽기 전용으로 변경하세요.

디렉터리 크기를 확인하고 권한을 읽기 전용으로 변경하세요.

디렉터리 크기를 확인하고 임계값이 초과되면 권한을 읽기 전용으로 변경하고 소유권을 루트로 변경하는 스크립트를 작성해야 합니다.

  • /sasdata2에 홈 디렉토리가 있는 사용자가 여러 명 있습니다.

  • /sasdata2에서 사용자의 모든 폴더를 확인하고 소유권을 루트로 변경하고 100GB가 넘는 모든 폴더만 읽을 수 있도록 권한을 변경하고 싶습니다...

  • 이 스크립트는 주기적으로 실행됩니다(예: 하루에 한 번).

또한 변경 사항이 발생하면 사용자와 관리자에게 이메일이 전송됩니다. 일부 사용자의 경우 한도는 200GB와 같이 높거나 한 사용자의 경우 1TB라고 생각하므로 사용자당 정책에 따라 100GB 또는 모두에 따라 달라집니다.

미리 감사드립니다.

모든 사람의 답변에 감사드립니다. 그러나 다음과 같이 솔루션을 정리했습니다.

100gb.txt, 200gb.txt 및 1tb.txt라는 3개의 파일을 구하고 해당 파일에 각 사용자를 추가했습니다. 그런 다음 다음 스크립트를 실행합니다.

#!/bin/bash
for i in `more /sasdata2/SAS-USERS/100gb.txt`
do
uses=$(du -s /sasdata2/SAS-USERS/$i | awk '{print $1}')
uses_mb=`expr $uses / 1024`

if [ $uses -ge 104857600 ]; then
chown root:root /sasdata2/SAS-USERS/$i
echo "Your disk space usage is now $uses_mb MB. You are denied to write data at your home directory" | mail -s "Disk Space Uses" "$i"@mail.com,[email protected]

elif [ $uses -lt 104857600 ]; then
chown $i:$i /sasdata2/SAS-USERS/$i
fi
done

200GB 및 1TB 행을 반복하여 해당 텍스트 파일을 호출합니다.

답변1

quota사용자 및/또는 그룹에 대한 디스크 저장 용량 제한을 지정할 수 있는 도구가 있습니다 .

업무용으로 사용하면 좋을 것 같아요

https://www.howtoforge.com/tutorial/linux-quota-ubuntu-debian/

다음과 같은 스크립트를 작성하는 대신

MB_USEd=$(du -shm /home/foo)
if [ $MB_USEd -ge 102400 ]; then
    chown root:root /home/foo
fi

이건 아마아니요예상대로 작동합니다.

관련 정보