FREEDOM. FRIENDS. FEATURES. FIRST.
페도라 한국 사용자 모임

특정폴더가 용량을 초과하면 제일먼저 생성된 파일을 삭제할려고하는데...?

게시판 질문게시판 특정폴더가 용량을 초과하면 제일먼저 생성된 파일을 삭제할려고하는데...?

  • This topic has 6개 답변, 2명 참여, and was last updated 9 years, 10 months 전에 by 태랑. This post has been viewed 17 times
  • 만든이
    게시글
  • #13296
    아기공룡둘째
    참가자
    • 게시글2
    • 댓글4
    • 총합6
    • ★★
    @kimjg777

    태랑님의 답변글 감사합니다.^^

    그런데 제가 설명했던 요지는 파일에 대해서 특정용량이 오버된 파일을 삭제하는것이 아니구요

    예를 들어서 특정디렉토리의 용량이 100M 아니면 다른값으로 설정해서 그 설정값 이상으로 특정디렉토리내에

    파일이 생성이 되면 특정디렉토리가 설정용량값이하를 유지하도록 파일생성시간을 검사하여 제일먼저 생성된 파일

    부터 특정디렉토리가 설정용량값이하를 유지하도록 삭제를 하는 형태입니다.

    그러면 항상 특정디렉토리가 설정용량값이하로 유지가 되겠죠..

    그리고 만약에 폴더가

    /home/test/Save_Dir/test_save/20110309

    /home/test/Save_Dir/test_save/20110310

    /home/test/Save_Dir/test_save/20110311

    위와 같이 특정폴더안에 날짜별로 생성이 되어서 파일이 저장이 되고있습니다.

    그러면 만약에 test_save 폴더의 전체용랻을 체크해서 설정용량이 초과해서 파일이 생성이 되면 제일먼저생성된

    날짜 디렉토리를 검색해서 위같으면 20110309 폴더가 되겠지요..

    20110309 폴더 내의 제일먼저생성된 파일부터 삭제되게끔 할려고 합니다.

    제가보기에 좀 복잡할것 같은데요..

    괸찮으시면 다시한번만 답변좀 부탁드립니다.

    답변주신걸로 변형을 해볼려고 해도 잘 되질 않네요.. 

5 답변 글타래를 보이고 있습니다
  • 글쓴이
    답변
    • #14870
      태랑
      키 마스터
      • 게시글208
      • 댓글879
      • 총합1087
      • ★★
      @admin

      제 머리론 1줄로는 처리가 않되서리... 제생각에는 C로 하는것보다 스크립트로 하는게 좋을듯 하고

      제가한번 만들어 봤습니다.
      아래 내용을 스크립트 파일만들어서 돌리시면 됩니다.

      디렉토리 와 사이즈 조정하셔야 하고 해당 스크립트를 crontab 에 등록하셔서 사용하시면 될듯 합니다.

      find ./ -size +10000k -exec ls -1 {} \; > list.txt
      rm -rf `sed -n '1p'  list.txt | awk '{print $1}'`

      오픈소스를 응원합니다 Blog https://hoing.io
      Senior Database Administrator(Mysql, Oracle)

      사이트 이용 문의 사항은 댓글이나 admin@fedoralinux.or.kr 로 메일주세요

    • #14871
      태랑
      키 마스터
      • 게시글208
      • 댓글879
      • 총합1087
      • ★★
      @admin

      제 머리론 1줄로는 처리가 않되서리... 제생각에는 C로 하는것보다 스크립트로 하는게 좋을듯 하고

      제가한번 만들어 봤습니다.
      아래 내용을 스크립트 파일만들어서 돌리시면 됩니다.

      디렉토리 와 사이즈 조정하셔야 하고 해당 스크립트를 crontab 에 등록하셔서 사용하시면 될듯 합니다.

      find ./ -size +10000k -exec ls -1 {} \; > list.txt
      rm -rf `sed -n '1p'  list.txt | awk '{print $1}'`

      오픈소스를 응원합니다 Blog https://hoing.io
      Senior Database Administrator(Mysql, Oracle)

      사이트 이용 문의 사항은 댓글이나 admin@fedoralinux.or.kr 로 메일주세요

    • #14872
      아기공룡둘째
      참가자
      참가자
      • 게시글2
      • 댓글4
      • 총합6
      • ★★
      @kimjg777

      태랑님의 답변글 감사합니다.^^

      그런데 제가 설명했던 요지는 파일에 대해서 특정용량이 오버된 파일을 삭제하는것이 아니구요

      예를 들어서 특정디렉토리의 용량이 100M 아니면 다른값으로 설정해서 그 설정값 이상으로 특정디렉토리내에

      파일이 생성이 되면 특정디렉토리가 설정용량값이하를 유지하도록 파일생성시간을 검사하여 제일먼저 생성된 파일

      부터 특정디렉토리가 설정용량값이하를 유지하도록 삭제를 하는 형태입니다.

      그러면 항상 특정디렉토리가 설정용량값이하로 유지가 되겠죠..

      괸찮으시면 다시한번만 답변좀 부탁드립니다.

      답변주신걸로 변형을 해볼려고 해도 잘 되질 않네요.. 

    • #14873
      아기공룡둘째
      참가자
      참가자
      • 게시글2
      • 댓글4
      • 총합6
      • ★★
      @kimjg777

      태랑님의 답변글 감사합니다.^^

      그런데 제가 설명했던 요지는 파일에 대해서 특정용량이 오버된 파일을 삭제하는것이 아니구요

      예를 들어서 특정디렉토리의 용량이 100M 아니면 다른값으로 설정해서 그 설정값 이상으로 특정디렉토리내에

      파일이 생성이 되면 특정디렉토리가 설정용량값이하를 유지하도록 파일생성시간을 검사하여 제일먼저 생성된 파일

      부터 특정디렉토리가 설정용량값이하를 유지하도록 삭제를 하는 형태입니다.

      그러면 항상 특정디렉토리가 설정용량값이하로 유지가 되겠죠..

      괸찮으시면 다시한번만 답변좀 부탁드립니다.

      답변주신걸로 변형을 해볼려고 해도 잘 되질 않네요.. 

    • #14874
      태랑
      키 마스터
      • 게시글208
      • 댓글879
      • 총합1087
      • ★★
      @admin

      #!/bin/bash

      du -s | awk '{print $1}' > size.txt

      sed s/M//g  size.txt | tee size.txt 1>& /dev/null

      read size < size.txt

      if [ $size -gt 5000 ];
      then
      ls -1tr  > rm_list.txt
      rm -rf `sed -n '1p'  rm_list.txt`
      fi

      rm -rf size.txt
      rm -rf rm_list.txt

      중요한건 해당 내용의 스크립트를 당연히 test_save 디렉토리에 넣어놓으면 낭중에 스크립트도 삭제 되겟죠

      디렉토리구분 잘하셔서 사용하시면 되고 위의 if문의 5000 은 kbyte  입니다
      해당 부분을 원하시는 용량를 적으면 됩니다(kbyte 단위로)

      오픈소스를 응원합니다 Blog https://hoing.io
      Senior Database Administrator(Mysql, Oracle)

      사이트 이용 문의 사항은 댓글이나 admin@fedoralinux.or.kr 로 메일주세요

    • #14875
      태랑
      키 마스터
      • 게시글208
      • 댓글879
      • 총합1087
      • ★★
      @admin

      #!/bin/bash

      du -s | awk '{print $1}' > size.txt

      sed s/M//g  size.txt | tee size.txt 1>& /dev/null

      read size < size.txt

      if [ $size -gt 5000 ];
      then
      ls -1tr  > rm_list.txt
      rm -rf `sed -n '1p'  rm_list.txt`
      fi

      rm -rf size.txt
      rm -rf rm_list.txt

      중요한건 해당 내용의 스크립트를 당연히 test_save 디렉토리에 넣어놓으면 낭중에 스크립트도 삭제 되겟죠

      디렉토리구분 잘하셔서 사용하시면 되고 위의 if문의 5000 은 kbyte  입니다
      해당 부분을 원하시는 용량를 적으면 됩니다(kbyte 단위로)

      오픈소스를 응원합니다 Blog https://hoing.io
      Senior Database Administrator(Mysql, Oracle)

      사이트 이용 문의 사항은 댓글이나 admin@fedoralinux.or.kr 로 메일주세요

5 답변 글타래를 보이고 있습니다
  • 답변은 로그인 후 가능합니다.