Linux系統下nginx+php實現清理伺服器網站紀錄檔

2020-07-16 10:05:31
本篇文章主要講述的是在Linux系統下用nginx和php實現清理伺服器網站紀錄檔,具有一定參考價值,感興趣的朋友可以了解一下,希望對你能有所幫助。

1.清空nginx站點紀錄檔的內容(如果刪除紀錄檔檔案,只有重新啟動伺服器才能重新生成紀錄檔檔案進行記錄)

編輯指令碼

新增定時任務,每月的14號和28號的12點0分執行清理指令碼

相關教學:Linux視訊教學 nginx視訊教學

2.刪除iis站點過期的紀錄檔(我的紀錄檔是天計劃,另外一點需要注意的是不能刪除當天的紀錄檔,因為會有警告說已經在系統開啟)


<?php
/* 
    清理IIS網站過期紀錄檔,釋放C槽空間 
*/

$logs_path = "C:inetpublogsLogFiles";    //紀錄檔所在路徑
$folder_head = "W3SVC";    //紀錄檔資料夾名的字首
$file_head = "u_ex";    //紀錄檔檔名的字首
$file_foot = ".log";    //紀錄檔檔名的字尾

$logs_path = str_replace("", "/", $logs_path);
if (! file_exists($logs_path)) die('紀錄檔目錄不存在');
$scan = scandir($logs_path);
$folders = array();    //定義變數存在紀錄檔資料夾名

for ($i=0; $i < count($scan); $i++) { 
    if((substr($scan[$i], 0, strlen($folder_head)) == $folder_head) && file_exists($logs_path.'/'.$scan[$i]))
        array_push($folders, $scan[$i]);
}

$today = date('Ymd');
$today = substr($today, 2);
$todayLog = $file_head.$today.$file_foot;


for ($i=0; $i < count($folders); $i++) { 

    $filesInFolder = scandir($logs_path.'/'.$folders[$i]);

    for ($j=0; $j < count($filesInFolder); $j++) { 
        if(($filesInFolder[$j] != $todayLog) && 
            (substr($filesInFolder[$j], 0, strlen($file_head)) == $file_head) &&
            (strrev(substr(strrev($filesInFolder[$j]), 0,strlen($file_foot))) == $file_foot))
            unlink($logs_path.'/'.$folders[$i].'/'.$filesInFolder[$j]);
    }
}

echo '過期紀錄檔清理完畢';

?>


編輯刪除指令碼 clear.php

編輯bat批次檔,存放位置任意,雙擊該檔案即可完成刪除,此處不做定時任務,手動刪除

相關教學:PHP視訊教學

以上就是Linux系統下nginx+php實現清理伺服器網站紀錄檔的詳細內容,更多請關注TW511.COM其它相關文章!