2012-10-23 49 views
1

我想運行一個cron作業,每天從hostgator cpanel備份我的mysql數據庫和wordpress文件一次。數據庫和wordpress備份cron作業

我發現了一個示例腳本,並用我的信息編輯了這些參數,但它似乎沒有正常工作。我沒有太多的cron工作經驗,所以我不確定我的問題是什麼。

我有名爲backups.sh的.sh文件,保存在主目錄中,並有一個名爲備份的文件夾,其中包含子文件夾數據庫和wordpress。

這是.sh文件。我換成{我的信息}我的憑據,並填寫了一切爲了我的數據庫信息:

#!/bin/bash 
# Script Function: 
# This bash script backups up the db everyday dependent on 
# when you set the cron job to run with a file name time stamp 
# and tar.gz zips the file. 
# The db will be saved in /backups/database/ 
# Db backups older than 5 days will be deleted.\ 
#[Changes Directory] 
cd /home/{my info}/backups/ 

#[Old DB Deletion and Files Script] 
find /home/{my info}/backups/database -name "*.tar.gz" -mtime +5 -exec rm -f {}; 
find /home/{my info}/backups/wordpress -name "*.tar.gz" -mtime +5 -exec rm -f {}; 

#[Stamps the file name with a date] 
TIMESTAMP=`date +%m-%d-%y-%H%M` 

#[DB Backup Scripts] 
# DB Name 
HOST=localhost 
DBNAME="" 
USER="" 
PASSWORD="" 
DUMP_PATH=/home/{my info}/backups/database/ 
BACK_PATH=/home/{my info}/backups/wordpress/ 
mysqldump --opt -c -e -Q -h$HOST -u$USER -p$PASSWORD $DBNAME > $DBNAME.sql 
tar czpf $DUMP_PATH/$DBNAME.$TIMESTAMP.tar.gz $DBNAME.sql 

rm -f $DBNAME.sql 
#Backing up Wordpress files @ root 
tar czf $BACK_PATH/wordpress.$TIMESTAMP.tar.gz /home/{my info}/public_html/mydomain 

這裏是我的命令行:

/bin/sh ~/backups.sh 

我的cron作業後收到一封電子郵件執行,並通知我說, 「沒有這樣的文件或目錄」,連同一堆命令未找到。

+0

您確定目錄備份在那裏嗎? – dirbacke

+0

是的。我將把所有內容移到public_html目錄並修改.sh文件,看它是否有效。 – justWired

回答

1

cron並不總是具有相同的PATH變量作爲登錄shell,因此不能總是找到喜歡的事情mysqldump甚至tar可執行文件。

我建議使用每條命令的完整路徑,即:/usr/bin/mysqldump而不是僅僅是mysqldump。您可以使用which命令輕鬆確定路徑。

$ which mysqldump 
/usr/bin/mysqldump 
+0

好的。我會試試看看我得到了什麼。 – justWired

+0

@ Sammitch,我修改它,它似乎工作。如果您或任何人不介意,我確實有幾個問題。首先,我將shell腳本和備份文件夾移至public_html根目錄。我還添加了您提到的使用完整路徑的內容,但省略了$ which mysqldump(想要先嚐試這個)。運行cron作業,db和wordpress文件都得到了備份。我收到了一封電子郵件,內容是這樣的:找到:缺少參數到'-exec' 找到:缺少參數到'-exec' tar:從成員名稱中刪除前導'/'。我應該爲此擔心嗎? – justWired

+0

不要擔心'tar:從成員名稱中刪除前導'/',這是焦油保護你免受腳後來的射擊。來自'find'的錯誤很奇怪,可能意味着5天以前的備份沒有被腳本刪除。 – Sammitch