我們還需要啟用背景服務來維持 iTop 的正常運作,所有的背景任務都已經整合到一個文件中啟動:webservices/cron.php。
以下功能依賴於 cron.php 的啟動:
所有的背景任務都是按順序處理的,直到超過 cron_max_execution_time,此參數有助於避免內存洩漏。
Scheduling on Linux
由於在命令列上傳遞給 cron.php 的參數對系統上的其他使用者是可見的。
sudo cp /var/www/html/itop/webservices/cron.distrib /etc/itop-cron.params
sudo vi /etc/itop-cron.params
建議的做法是建立參數檔,將所有敏感參數移離命令列。
# cron parameters file used by cron.cmd
#
# Warning: make sure that this file is NOT readable by the web server
auth_user=admin
auth_pwd=your_admin_password
# My web service
size_min = 20 # Megabytes
time_limit = 40 # Minutes
編輯 crontab 以每 1 分鐘執行一次腳本
不要使用 root 使用者執行 cron.php,您必須使用執行 iTop 的 Web 伺服器所使用的相同使用者啟動該命令。
sudo crontab -u www-data -e
注意,請將 /var/www/html/itop 替換為您的 iTop 目錄路徑
*/1 * * * * /usr/bin/php /var/www/html/itop/webservices/cron.php --param_file=/etc/itop-cron.params >> /var/log/itop-cron.log 2>&1
建立日誌檔並賦予 www-data 權限
sudo touch /var/log/itop-cron.log
sudo chown www-data: /var/log/itop-cron.log
校正時區
時區對於背景任務來說十分的重要,能確保任務在預期的時間點準確執行。
設定 Ubuntu 的時區
sudo timedatectl set-timezone Asia/Taipei
重啟 MariaDB 服務,若 MariaDB 沒有設定時區,則會使用系統的時區。
sudo service mariadb restart
sudo mysql
透過下列指令驗證時間是否正確
MariaDB [(none)]> Select now();
+---------------------+
| now() |
+---------------------+
| 2024-06-20 14:24:56 |
+---------------------+
1 row in set (0.000 sec)
設定 PHP 時區
sudo vi /etc/php/8.1/apache2/php.ini
[Date]
; Defines the default timezone used by the date functions
; https://php.net/date.timezone
date.timezone = Asia/Taipei
記得重啟 Apache 服務
sudo service apache2 restart
設定 iTop 時區
點選 Configuration 選單的 General Configuration
預設的時區為 Europe/Paris,更改為 Asia/Taipei,點選 APPLY。
// timezone: Timezone (reference: http://php.net/manual/en/timezones.php). If empty, it will be left unchanged and MUST be explicitly configured in PHP
// default: 'Europe/Paris'
'timezone' => 'Asia/Taipei',
資料庫備份
點選 Configuration 選單的 General configuration
iTop 備份的相關參數如下,依照自己的需求進行調整。
'itop-backup' => array (
'mysql_bindir' => '',
'week_days' => 'monday, tuesday, wednesday, thursday, friday',
'time' => '23:30',
'retention_count' => 5,
'enabled' => true,
'itop_backup_incident' => '',
),
點選 System 選單的 Backups
若排程有正常運行,Scheduled Backups 可以看到備份的紀錄與檔案。
今天的分享就到這邊,感謝收看。
參考文件