2010-06-01 77 views

回答

27

呵呵,这是怎样的一个黑客,但它的工作原理(使用bash):根据需要

mysqldump -u USER -p DATABASE $(mysql -u USER -p -D DATABASE -Bse "show tables like 'PREFIX%'") > /tmp/DATABASE.out 

更改ALLCAPS话。

+0

不错的黑客,它工作完美,谢谢... – mabuzer 2010-06-01 12:25:04

+0

这个其他答案是一个骗局,但它进入了一个更深入,我认为。 http://stackoverflow.com/a/5269543/8047 – 2012-07-21 21:57:49

+0

@unutbu当我尝试执行此操作时,出现以下错误:“mysqldump:未知选项'-D'”。有什么想法吗?当我只运行括号内的mysql部分时,它会输出我想要转储的表 - 但是当我尝试在mysqldump语句中使用它时会引发错误。 – dayne 2013-07-01 20:00:48

0

您可以创建backup.sh脚本:

BACKUP_DIR="/path/to/backups" 

DB_HOST="domain.com" 
DB_USER="user" 
DB_PASS="pass" 

PREFIX="phpbb" 

TMP_LIST = mysql --host=$DB_HOST --user=$DB_USER --password=$DB_PASS -e "show databases;" | grep $PREFIX 

# just get to database name column (may be $1, don't remember) 
TMP_LIST = cat $TMP_LIST | awk '{print $2}' 

# Getting dbs 
mkdir $BACKUP_DIR/tmp 
for db in $TMP_LIST ; do 
    mysqldump --host=$DB_HOST --user=$DB_USER --password=$DB_PASS --opt $db > $BACKUP_DIR/tmp/$db.sql 
    zip -mj $BACKUP_DIR/tmp/$db.sql.zip $BACKUP_DIR/tmp/$db.sql 2>&1 
done 

希望它能帮助。