셸 기본과 파일 시스템
6. 연습 문제
문제 1. 배포 폴더 용량 확인
/opt/myapp 아래 conf, logs 두 폴더만 골라 용량을 확인하는 명령을 쓰세요.
du -sh /opt/myapp/conf /opt/myapp/logsdu -sh 는 디렉터리별 합계를 사람이 읽기 쉬운 단위(K, M, G)로 보여줍니다. 폴더를 여러 개 나열하면 각각 따로 계산합니다.
문제 2. 오래된 로그 삭제
logs 폴더에서 수정된 지 7일이 지난 .log 파일을 모두 삭제하는 명령을 쓰세요.
find /opt/myapp/logs -name '*.log' -mtime +7 -exec rm {} \;-mtime +7 은 마지막 수정이 7일보다 오래된 파일을 뜻하고, -exec rm {} \; 는 찾은 파일마다 rm 을 실행합니다.
문제 3. 설정 백업 후 변경 확인
app.properties 를 고치기 전에 같은 폴더에 .bak 확장자로 백업하고, 수정 후 두 파일이 다른지 확인하는 명령을 쓰세요.
cp app.properties app.properties.bak
vi app.properties
diff app.properties.bak app.propertiesdiff 는 두 파일의 차이 줄만 보여주므로, 설정을 정확히 어디를 고쳤는지 바로 확인할 수 있습니다.
문제 4. current 링크를 새 버전으로 교체
새 배포판을 releases/v3 에 풀어 둔 상태에서, current 링크가 v3 을 가리키도록 바꾸는 명령을 쓰세요.
ln -sfn releases/v3 current-f 는 기존 링크를 덮어쓰고, -n 은 current 자체가 디렉터리 링크일 때 그 안으로 들어가지 않고 링크 자체를 바꾸게 합니다.
문제 5. 실행 권한 추가 후 확인
실행 권한이 없는 start.sh 스크립트에 소유자만 실행 권한을 추가하고, 결과를 확인하는 명령을 쓰세요.
chmod u+x start.sh
ls -l start.sh | cut -c1-10u+x 는 소유자(owner)에게만 실행 권한을 더합니다. ls -l 앞 10글자로 rwx 배치가 의도대로 바뀌었는지 확인합니다.