如何使用wget从phpmyadmin导出一个数据库
我有一个通过PHPMyAdmin管理的数据库。如何使用wget从phpmyadmin导出一个数据库,phpmyadmin,automation,wget,Phpmyadmin,Automation,Wget,我有一个通过PHPMyAdmin管理的数据库。 我经常使用[export]选项卡将其导出到sql备份文件中。 它生成一个300MB的文件 我想使这个过程更容易和自动化 在许多论坛帖子的帮助下,我编写了以下脚本: #!/bin/sh ADMIN_URL='http://pma.example.net' USERNAME='xxxxx' PASSWORD='xxxxx' DATABASE='xxxxx' COOKIEJAR='/tmp/my_cookiejar' post_data="pma_u
我经常使用[export]选项卡将其导出到sql备份文件中。
它生成一个300MB的文件 我想使这个过程更容易和自动化 在许多论坛帖子的帮助下,我编写了以下脚本:
#!/bin/sh
ADMIN_URL='http://pma.example.net'
USERNAME='xxxxx'
PASSWORD='xxxxx'
DATABASE='xxxxx'
COOKIEJAR='/tmp/my_cookiejar'
post_data="pma_username=$USERNAME&pma_password=$PASSWORD"
token=$(
wget -qO- \
--keep-session-cookies \
--post-data "$post_data" \
--save-cookies "$COOKIEJAR" \
"$ADMIN_URL/" \
| egrep -om1 'token=[[:xdigit:]]+'
)
post_data="$token&what=sql&export_type=server&sql_structure_or_data=structure_and_data"
wget -O export.sql \
--keep-session-cookies \
--load-cookies "$COOKIEJAR" \
--post-data "$post_data" \
"$ADMIN_URL/export.php"
它可以工作,但当我只想导出一个数据库时,它会导出所有数据库
我尝试使用:
post_data="$token&what=sql&export_type=database&db=$DATABASE&sql_structure_or_data=structure_and_data"
但它没有下载任何东西
你能帮我吗?谢谢你的帮助
圣地亚哥这可能不可能或很难做到。
最好的方法是能够使用MySQL提供的备份工具。(像mysqldump)我使用了您的脚本,只做了一点修改。与phpMyAdmin 3.3.8.1配合正常 对于您想要的,关键是:
&db_select[0]=${DATABASE}
假设您的phpMyAdmin版本使用相同的参数名
以下是完整的修改脚本:
#!/bin/sh
ADMIN_URL='http://pma.example.net'
USERNAME='xxxxx'
PASSWORD='xxxxx'
DATABASE='xxxxx'
COOKIEJAR='/tmp/my_cookiejar'
post_data="pma_username=$USERNAME&pma_password=$PASSWORD"
token=$(
wget -qO- \
--keep-session-cookies \
--post-data "$post_data" \
--save-cookies "$COOKIEJAR" \
"$ADMIN_URL/" \
| egrep 'token=[[:xdigit:]]+' | head -n 1 | awk -F\' '{print $2}'
)
post_data="$token\
&what=sql\
&export_type=server\
&asfile=sendit\
&compression=bzip\
&db_select[0]=${DATABASE}\
&sql_include_comments=something\
&sql_compatibility=NONE\
&sql_structure=something\
&sql_drop_database=something\
&sql_if_not_exists=something\
&sql_auto_increment=something\
&sql_backquotes=something\
&sql_data=something\
&sql_columns=something\
&sql_extendede=something\
&sql_max_query_size=50000\
&sql_type=INSERT\
"
wget -O ${DATABASE}_$(date +%Y-%m-%d_%H:%M).sql.bz2 \
--keep-session-cookies \
--load-cookies "$COOKIEJAR" \
--post-data "$post_data" \
"$ADMIN_URL/export.php"
对egrep进行更改的原因是使其与BusyBox v1.01一起工作,显然,egrep的版本没有“o”和“m”选项