Jump to content
View in the app

A better way to browse. Learn more.

PHP论坛人

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Cron執行論壇任務、自動備份DB資料庫、自動備份Web網站檔案

Featured Replies

Cron執行論壇任務、自動備份DB資料庫、自動備份Web網站檔案


-----------------------
什麼是 Cron?
-----------------------

Cron 是 Linux 系統內建的「時間排程服務」,可依照指定的時間自動執行指令或腳本,常見用途包括:

定期執行系統維護任務

自動備份資料

定時執行網站或論壇背景任務



------------------------------------
Cron執行IPS論壇任務
------------------------------------

開機自動啟動Cron
systemctl enable cron


立即啟動Cron
systemctl start cron


檢查Cron狀態
systemctl status cron


檢視目前所有的Cron任務
crontab -l






---------------------------
IPS論壇這邊的啟用Cron
---------------------------

在瀏覽器,前往IPS論壇後端 -> 系統 -> 進階配置 -> (v) 使用Cron (推薦) -> 儲存

系統會提供一組類似以下的指令

/usr/bin/php -d memory_limit=-1 -d max_execution_time=0 /var/www/域名.com/applications/core/interface/task/task.php 數值




---------------------
Linux這邊的啟用Cron
---------------------

接下來SSH登入


將上面那行Cron改為每1分鐘執行IPS論壇任務
*/1 * * * * /usr/bin/php -d memory_limit=-1 -d max_execution_time=0 /var/www/域名.com/applications/core/interface/task/task.php 數值xxxxxx



設定Cron任務

將上面那行    xxxx .... /task/task.php 數值xxxxxx

複製貼上到末尾 (在此內容的第1行,你應該會看到之前 acme.sh 自動加入的腳本)
crontab -e


#IPS論壇每分鐘執行任務
*/1 * * * * /usr/bin/php -d memory_limit=-1 -d max_execution_time=0 /var/www/域名.com/applications/core/interface/task/task.php 數值xxxxxx




ESC儲存並離開
:wq





檢視目前所有的Cron任務
crontab -l


查看所有Cron相關日誌
journalctl -u cron


即時監看Cron執行狀況,等同 tail -f
journalctl -u cron -f


查看今天的Cron日誌
journalctl -u cron --since today





---------------------
排程任務權限確認
---------------------

確保IPS論壇的 task.php 具備執行權限

chmod 755 /var/www/域名.com/applications/core/interface/task/task.php








---------------------------------------------------
自動備份DB資料庫、自動備份Web網站目錄的腳本
---------------------------------------------------

在此有一個好用的備份腳本,可在置底下載該備份腳本 backup.sh


使用SFTP上傳到 /root/ 目錄,然後修改為你的論壇情況
vi /root/backup.sh


修改為你的論壇情況

Backup_Home="/var/www/backup/"
MySQL_Dump="/usr/bin/mariadb-dump"
######~Set Directory you want to backup~######
Backup_Dir=("/var/www/域名.com")

######~Set MySQL Database you want to backup~######
Backup_Database=("資料庫名")

######~Set MySQL UserName and password~######
MYSQL_UserName='root'
MYSQL_PassWord='資料庫root的密碼'



ESC儲存並離開
:wq





將 backup.sh 更改權限 (權限說明:700 表示僅 root 可讀寫執行,提高安全性)
chmod 700 /root/backup.sh







每日3點,備份DB資料庫、備份Web網站目錄
crontab -e


將這一段落,複製貼上到未尾


#每日3點,備份DB資料庫、備份Web網站目錄
0 3 * * * bash /root/backup.sh



ESC儲存並離開
:wq



檢視目前所有的Cron任務
crontab -l






-------------------------------------------------
建立備份檔的儲存目錄 /var/www/backup
-------------------------------------------------

建立 backup 目錄,之後DB資料庫、Web網站目錄的備份檔將放在這裡
mkdir /var/www/backup


測試備份資料庫、備份網站目錄的腳本,預設保留最近3天的備份檔
bash /root/backup.sh


正確的話,你將看到
Backup website files...
Backup Databases...
Delete old backup files...



進入備份的目錄,預設保留最近3天的備份檔
cd /var/www/backup

ls -l

也使用SFTP進入 /var/www/backup 備份目錄看看

在此有一個好用的備份腳本 backup.sh

backup.sh

Edited by Jack

Create an account or sign in to comment

Account

Navigation

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.