我可以使用一些帮助制作一个PHP脚本,我可以将其添加到包含多个(10到15)命令的cronjob中,例如:
line1: cat /dev/null > /var/www/vhosts/website.com
/logs/access_log.webstat
line2: cat /dev/null > /var/www/vhosts/website.com/logs/big_access_log
line3: cat /dev/null > /var/log/plesk-roundcube/largefile.log
等等。这些命令在命令行中运行良好,但每天执行此操作非常耗时,即使文件正在旋转,文件也会变得太大。非常感谢任何帮助,谢谢。
答案 0 :(得分:0)
您是否可以使用shell_exec
命令来完成这些操作:
示例:
<?php
$output = shell_exec('cat /dev/null > /var/www/vhosts/website.com /logs/access_log.webstat');
echo "<pre>$output</pre>";
?>
然后只需创建一个cron作业,以间隔时间运行它们。
答案 1 :(得分:0)
使用本机PHP代码可以轻松实现相同的结果:
// The list of files to truncate
$listFiles = array(
'/var/www/vhosts/website.com/logs/access_log.webstat',
'/var/www/vhosts/website.com/logs/big_access_log',
'/var/log/plesk-roundcube/largefile.log',
);
// Process all the files in the list
foreach ($listFiles as $filename) {
// Open the file for writing ('w')
// Truncate it to zero length if it exists, create it if it doesn't exist
$fh = fopen($filename, 'w');
// Close the file; this commits the new file size to the disk
fclose($fh);
}
答案 2 :(得分:0)
谢谢大家的帮助,最终结果真是太棒了! 41个日志文件将不再增长到庞大的大小。实施如下:
PHP脚本编写如下:
<?php
$output = shell_exec('cat /dev/null > /var/www/vhosts/website.com/logs/access_log.webstat');
$output = shell_exec('cat /dev/null > /var/www/vhosts/website.com/logs/big_access_log');
$output = shell_exec('cat /dev/null > /var/log/plesk-roundcube/largefile.log');
?>
然后从Plesk 12.5面板上传并设置为cron。测试和 运作得很漂亮!
答案 3 :(得分:0)