Ubuntu

CentOS 8 的等效 logrotate 腳本應該是什麼

  • May 10, 2022

我的 Ubuntu 伺服器上有一些日誌文件的 logrotate 腳本。腳本如下。

/home/*/logs/*log {
       su root root
       notifempty
       daily
       rotate 7
       compress
       sharedscripts
       postrotate
               if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then
                       /etc/init.d/apache2 reload > /dev/null
               fi
       endscript
}

現在我想在我的 CentOS 8 伺服器中實現相同的腳本。在這裡我無法理解線條的價值是什麼

if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then
       /etc/init.d/apache2 reload > /dev/null
fi

我建議您使用基本 CentOShttpd軟體包在其httpd.logrotate中使用的內容:

/var/log/httpd/*log {
   missingok
   notifempty
   sharedscripts
   delaycompress
   postrotate
       /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true
   endscript
}

(另外,我建議您不要使用 /home 作為儲存網站的地方。我想除非您關閉 SELinux,否則幾乎所有內容都會中斷?這就是原因。除此之外,您的配方將為碰巧擁有的每個使用者壓縮日誌一個帶有日誌目錄的主目錄。我想如果你只有網站使用者……)

引用自:https://unix.stackexchange.com/questions/701927