답변 2개
rm -Rf session
R : 디렉토리와 그 내용을 제거
f : 강제로
i : 삭제내역을 보이게 (이건 안해도 됨)
=> 이렇게 하시면 한번에 삭제가 됩니다.
=> 8000000개면 너무 많아서 바로 삭제는 안될겁니다.
#!/usr/local/php/bin/php -q
<?
echo "'완료' 메세지가 나오기 전에 프로그램의 실행을 중지하지 마십시오.<br><br>";
flush();
$session_path = "/home/bokeum/public_html/data/session"; // 세션이저장된 디렉토리
if (!$dir=@opendir($session_path)) {
echo "세션 디렉토리를 열지못했습니다.";
}
$cnt=0;
while($file=readdir($dir)) {
if (!strstr($file,'sess_')) {
continue;
}
if (strpos($file,'sess_')!=0) {
continue;
}
if (!$atime=@fileatime("$session_path/$file")) {
continue;
}
///if (time() > $atime + (3600 * 1)) { // 지난시간을 초로 계산해서 적어주시면 됩니다. default : 6시간전
if (time() > $atime + 60) { // 지난시간을 초로 계산해서 적어주시면 됩니다. default : 6시간전
$cnt++;
$return = unlink("$session_path/$file");
echo " $session_path/$file \n";
flush();
}
}
echo "세션데이터 {$cnt}건 삭제 완료.<br><br>프로그램의 실행을 끝마치셔도 좋습니다.\n";
?>
=> 저는 해당 shell 을 하나 만들어서 새벽에 크론설정하여 하루에 한번 삭제해줍니다.
#!/usr/local/php/bin/php -q
=> php 실행위치
$session_path = "/home/bokeum/public_html/data/session";
=> 세션경로
=> 두부분만 수정하셔서 사용하시면 됩니다.
=> 금요일 저녁에 걸어두면 주말내에 다 삭제는 되실거 같네요
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
리눅스에서는 많은 파일을 rm명령어로 한번에 삭제할 수 없습니다.
참고하세요.
세션 삭제 질문을 자주 올리시는데 세션을 memcached 나 redis 이용해보세요.
https://blog.lael.be/post/1494
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인