Jump to content

vBulletin論壇 Cron 定時執行任務、備份資料庫、備份網站


Jack

Recommended Posts

Cron讓vBulletin論壇定時執行計劃任務,避免由於沒有足夠的流量來及時觸發所有腳本,而導致計劃任務無法正常執行的問題 

-----------------------------------------------------------------
關閉論壇的任務運行,交給cron來運行
-----------------------------------------------------------------

為了測試論壇任務是否真有交給cron來執行,先到論壇後台修改

 

------------------------------------------
論壇後台 -> 設置 -> 選項 -> 服務器設置和優化 ->

啟用計劃任務 -> 否

啟用基於瀏覽器的系統事件 -> 否

-> 保存

 


------------------------------------------
論壇後台 -> 設置 -> 選項 -> 電子郵件 ->

使用基於Cron的發送 -> 是

-> 保存 

 


-----------------------------------------------------------------
修改 vbcron.php
-----------------------------------------------------------------

在vBulletin 6.0 論壇程式.zip 的 do_not_upload 資料夾中,可找到vbcron.php


開啟並修改 vbcron.php
$core = '/var/www/域名.com/core';

 


-----------------------------------------------------------------
上傳 vbcron.php
-----------------------------------------------------------------

將腳本上傳到伺服器,最好在 webroot 目錄之外

那麼 vbcron.php 上傳到 /var/www/

 

 

-----------------------------------------------------------------
Cron 定時執行任務
-----------------------------------------------------------------

你應該設置Cron每分鐘運行以下命令
也就是 /usr/bin/php /var/www/vbcron.php

 

開機啟用
systemctl enable cron

 

啟動
systemctl start cron


瀏覽crontab定時任務運行列表
crontab -l


設置為每分鐘運行論壇任務
*/1 * * * * /usr/bin/php /var/www/vbcron.php

 

開啟crontab,將上面那一行 xxx.... vbcron.php 複製貼上到最下面
crontab -e

 

 

ESC儲存並離開
:wq

 

重開機
reboot


瀏覽crontab定時任務運行列表
crontab -l

 

 

-----------------------------------------------------------------
到論壇後台確定是否已改為cron運行任務
-----------------------------------------------------------------

論壇後台 -> 計劃任務 -> 計劃任務管理器 -> 在此瀏覽各個計劃任務的下次執行時間

論壇後台 -> 計劃任務 -> 計劃任務日誌 -> 計劃任務日誌查看器 -> 查看

瀏覽在此的日誌條目,可以知道Cron是否運行

 

 

 

------------------------------------
備份資料庫、備份網站
------------------------------------

可以在此下載 backup.sh

backup.sh


------------------------------------
修改為你的論壇情況
------------------------------------

Backup_Home="/var/www/backup/"
MySQL_Dump="/usr/bin/mysqldump"
######~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的密碼'


再使用SFTP將backup.sh腳本上傳到 /root/ 目錄

 

 

------------------------------------
將 backup.sh 更改為可執行權限
------------------------------------

chmod +x /root/backup.sh

 


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


crontab -e


每日3點運行,備份資料庫、備份網站目錄,也是加入到底下
0 3 * * * bash /root/backup.sh


ESC儲存並離開
:wq

 

 

crontab修改後不需要restart


瀏覽crontab定時任務運行列表
crontab -l

 

 

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

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

mkdir /var/www/backup

 

測試備份
bash /root/backup.sh

 

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

 

進入備份的目錄
cd /var/www/backup

ls -l

 

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

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...