BLOG main image
Category (96)
MyThing (22)
Media (19)
Tech (22)
이모저모 (33)
Michael Kors Handbags Outlet
Michael Kors Handbags Outlet
michael kors tote bag
michael kors tote bag
Michael kors handbags outlet
Michael kors handbags outlet
Buy Cheap Coach Purses Online
Buy Cheap Coach Purses Online
cheap wholesale jerseys
cheap wholesale jerseys
«   2015/05   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
881,976 Visitors up to today!
Today 226 hit, Yesterday 412 hit
Twitter rss
A
2015/05/08 11:28

LINUX 웹 서버를 운영하면서 문제가 생겼다.

 

각각의 사이트들을 하루에 한번씩 백업 폴더로 카피하는데 PHP 세션디렉토리를 지우지 않아 몇달간 모인 세션파일이 수백만개가 넘어가 버려 rm 으로 지워 지지 않는다.

 

문제는 리눅스의 파티션에 들어갈수 있는 파일 갯수(inode)가 정해져 있다는 것이다.

df -i 로 확인 해보면 된다.

이문제로 운영중인 서버에 세션이 생성되지 않아 서버가 죽는 경우가 생겼다.

 

하여간 몇가지 방법으로 삭제를 시도를 해보았지만 실패....

 

시도한 방법을 나열하자면...

1. rm -rf *

2. find . -type f -exec rm -fv {} \;

3. find . -type f -delete

4. perl 을 이용한 스크립트

 

너무 파일이 많은지 서버 자원만 엄청 사용하고 결국 포기 했다.

 

그래서 시도한 방법이 현재 운영중인 사이트를 다른 폴더로 옮기고 재빨리 파티션자체를 포멧하고 다시 복구 시키는 방법을 썻다.

손이 많이 가지만 가장 깔끔한 방법...

 

하지만 다른 한대의 서버에는 다른쪽으로 옮길 파티션(하드)가 존재하지 않아 포기

 

몇일후 PHP 를 이용해서 지워도 되겠다는 생각에 아래 스크립트를 실행 시켰다.

 

$dir = "/home/linkFolder/img";
$dh = opendir( $dir);
$i = 0;
while (($file = readdir($dh)) !== false) {
  $file = "$dir/$file";
  if (is_file( $file)) {
    unlink( $file);
    if (!(++$i % 1000)) {
      echo "$i files removed\n";
    }
  }
}

 

오호~~ 잘 지워 진다. 속도로 빠르다. 50만개정도 삭제 하는데 20분도 안걸렸다.

 

역시 내가 PHP를 사랑할 수 밖에 없는 이유다. 보안이 어쩌고 하지만 안되는게 없는 PHP이다. ㅎㅎ

 

 

 

저작자 표시 비영리 동일 조건 변경 허락
그냥 가지 마시구 추천 버튼 꾸욱 눌러주세요~ 외로운 블로거에게 큰 힘이 된답니다*^^*
  :   Trackback0 : Comment0
Trackback Address :: http://blog.yesyo.com/trackback/246 관련글 쓰기
Name
Password
Homepage
Secret
prev"" #1 #2 #3 #4 #5 ... #96 next