2011-11-04 60 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 ===" 
相关问题