You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
pdd-order-api/shell/clear_log.php

81 lines
2.3 KiB
PHP

#!/alidata/server/php/bin/php
<?php
@ini_set('display_errors', '1');
error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING);
$rootDir = dirname(dirname(__FILE__));
include $rootDir . '/zc-framework/zc.php';
Zc::import('zc.vendors.YwCurl');
$ywCurl = new YwCurl(array (
'useCookie' => false,
'timeOut' => 7200
));
function echoInfo($content) {
$content = date('Y-m-d H:i:s') . " $content\r\n";
echo $content;
}
function qExec($cmd) {
$outputArray = array();
$returnVar = '';
exec($cmd, $outputArray, $returnVar);
$output = empty($outputArray) ? '' : implode(', ', $outputArray);
return [$returnVar, $output];
}
$saveLogDays = 5;
$diskUsageRateCmd = "df -h | grep '/dev/vda' | awk '{print $5}' | awk -F '%' '{print $1}'";
if (gethostname() == 'honor-s1') {
$diskUsageRateCmd = "df -h | grep '/dev/xvda' | awk '{print $5}' | awk -F '%' '{print $1}'";
}
$diskUsageRate = shell_exec($diskUsageRateCmd);
$diskUsageRate = (int)$diskUsageRate;
if ($diskUsageRate < 85) {
echoInfo("diskUsageRate: {$diskUsageRate}%, less then 85%, end.");
return ;
}
if ($diskUsageRate > 90) {
$saveLogDays = 1;
}
echoInfo("start clear log files, diskUsageRate: $diskUsageRate.");
// 清理saveLogDays天前的日志
if ($diskUsageRate > 98) {
$cmd = 'find /alidata/log/httpd /alidata/log/*biz -type f -exec rm -rf {} \;';
} else {
$cmd = 'find /alidata/log/httpd /alidata/log/*biz -type f -mtime +' . $saveLogDays . ' -exec rm -rf {} \;';
}
list($returnVar, $output) = qExec($cmd);
echoInfo("clear log [$cmd], returnVar [$returnVar], output [$output]");
// 清理httpd的error_log
$cmd = 'echo "" > /alidata/server/httpd/logs/error_log';
list($returnVar, $output) = qExec($cmd);
echoInfo("clear httpd error_log [$cmd], returnVar [$returnVar], output [$output]");
// 清空所有的crontab文件
$files = glob('/alidata/log/crontab/*.log', GLOB_BRACE);
foreach($files as $file) {
if (stripos($file, 'clear_log') !== false) {
continue;
}
$cmd = "echo '' > $file";
list($returnVar, $output) = qExec($cmd);
echoInfo("clear log [$cmd], returnVar [$returnVar], output [$output]");
}
$cmd = '/usr/sbin/tmpreaper 2h /tmp';
list($returnVar, $output) = qExec($cmd);
echoInfo("clear log [$cmd], returnVar [$returnVar], output [$output]");
$diskUsageRate = shell_exec($diskUsageRateCmd);
$diskUsageRate = (int)$diskUsageRate;
echoInfo("end clear log files, diskUsageRate: $diskUsageRate.");