2011-11-04 33 views
0

我創建cron作業,需要備份我的整個數據庫。對於我用下面的代碼cron作業不能正常工作給出的錯誤爲「語法錯誤附近的意外令牌」)'「

*/5 * * * * mysqldump -u mydbuser -p mypassword mydatabase | gzip > /home/myzone/public_html/test.com/newfolder/dbBackup/backup.sql.gz 

而是獲得備份I m到處錯誤「近意外的標記語法錯誤')」」。在我的密碼裏有圓括號包括這是因爲這個。請幫幫我..

在此先感謝。

+1

建議:在腳本中提取此,並添加腳本執行cron.daily ...... – hovanessyan

回答

0

嘗試刪除-u mydbuser和-p輸入mypassword之間的空格..

-umydbuser -pmypassword 
+0

不,這是不工作任何其他解決方案 – user392406

1

)是shell的特殊字符(並且crontab使用shell來執行命令)。

添加單引號括起來密碼:

*/5 * * * * mysqldump -u mydbuser -p 'mypassword' mydatabase | ... 
+0

它不包含在工作時它說單引號提供密碼,它拒絕訪問。 – user392406

0

正如我在我的評論建議,在外部移動這個腳本,並將腳本包含在cron.daily中。我在下面給出了這樣一個腳本的基本框架。通過這種方式,您可以獲得幾項優勢=>您可以測試腳本,您可以輕鬆重複使用,也可以配置。我不知道你是否這樣做是爲了管理或個人使用。我的建議是更趨向「我這樣做是爲管理」:)...

#!/bin/bash 
# Backup destination directory 
DIR_BACKUP=/your/backup/directory 
# Timestamp format for filenames 
TIMESTAMP=`date +%Y%m%d-%H%M%S` 
# Database name 
DB_NAME=your_database_name 
# Database user 
DB_USER=your_database_user 
# Database password 
DB_PASSWD=your_database_password 
# Database export file name 
DB_EXPORT=your_database_export_filename.sql 
# Backup file path 
BKFILE=$DIR_BACKUP/your-backup-archive-name-$TIMESTAMP.tar 
# Format for time recordings 
TIME="%E" 
########################################### 
# Create the parent backup directory if it does not exist 
if [ ! -e $DIR_BACKUP ] 
    then 
    echo "=== Backup directory not found, creating it ===" 
    mkdir $DIR_BACKUP 
fi 

# Create the backup tar file 
echo "=== Creating the backup archive ===" 
touch $BKFILE 

# Export the database 
echo "=== Exporting YOUR DATABASE NAME database ===" 
time bash -c "mysqldump --user $DB_USER --password=$DB_PASSWD $DB_NAME > $DIR_BACKUP/$DB_EXPORT" 

# Add the database export to the tar file, remove after adding 
echo "=== Adding the database export to the archive ===" 
time tar rvf $BKFILE $DIR_BACKUP/$DB_EXPORT --remove-files 

# Compress the tar file 
echo "=== Compressing the archive ===" 
time gzip $BKFILE 

# All done 
DATE=`date` 
echo "=== $DATE: Backup complete ===" 
相關問題