테스트 사이트 - 개발 중인 베타 버전입니다

서버 로그파일 php로 내용 지우기, 파일크기 확인 채택완료

좋은사진 1년 전 조회 2,403

안녕하세요.

리눅스 서버의 로그파일을 php로 내용만 비우기 가능 한지요?

 

<?php

 

`cp -f /dev/null /var/log/httpd/error_log`;

 

?>

 

예전엔

error_log 파일의 파일권한을 707로 해 놓고

위와 같이 해서 비워 졌었는데,

지금은 안됩니다.

 

서버에 들어가지 않고

php 로

error_log 파일의 크기 확인(출력)

내용 비우기 방법이 궁금합니다.

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
1년 전

아래의 코드를 참고해 보시겠어요..

 

 

<?php
$logfile = '/var/log/httpd/error_log';

function checkLogFile($file) {
    if (!file_exists($file)) {
        return "로그 파일이 존재하지 않습니다.";
    }
    
    if (!is_readable($file)) {
        return "로그 파일을 읽을 수 없습니다.";
    }
    
    $size = filesize($file);
    return "현재 로그 파일 크기: " . number_format($size/1024, 2) . " KB";
}

function clearLogFile($file) {
    if (!file_exists($file)) {
        return "로그 파일이 존재하지 않습니다.";
    }
    
    if (!is_writable($file)) {
        return "로그 파일에 쓰기 권한이 없습니다.";
    }
    
    try {
        file_put_contents($file, '');
        return "로그 파일이 성공적으로 비워졌습니다.";
    } catch (Exception $e) {
        return "오류 발생: " . $e->getMessage();
    }
}

// 파일 크기 확인
echo checkLogFile($logfile) . "\n";

// 파일 비우기
echo clearLogFile($logfile);
?>

 

 

권한 문제가 계속 생기면 아래의 코드도 참고를 해보세요.

 

 

# 로그파일 권한 확인
ls -l /var/log/httpd/error_log

# Apache 사용자 확인
ps aux | grep apache

# 권한 설정 (root 권한 필요)
chown www-data:www-data /var/log/httpd/error_log
chmod 664 /var/log/httpd/error_log

 

 

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

좋은사진
1년 전
안녕하세요.

제이앤 님
덕분에 잘 해결되었습니다.

즐겁고 아름다운 밤 되시기 바랍니다.
고맙습니다. ^^

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인