可通过命令行批量导出宝塔面板网站配置:一、用find定位打包Nginx/Apache目录下所有.conf文件;二、用bt命令循环导出各站点配置为独立文本;三、解析site.json获取域名,精准匹配并打包对应配置文件。

如果您需要在宝塔面板环境中批量获取全部网站的 Nginx 或 Apache 配置文件,但不希望通过 Web 界面逐个下载,则可通过命令行直接定位并导出配置文件。以下是实现该目标的多种方法:
一、使用 find 命令定位并打包所有站点配置文件
宝塔面板将每个网站的配置文件统一存放在固定路径下,Nginx 配置位于 /www/server/panel/vhost/nginx/,Apache 配置位于 /www/server/panel/vhost/apache/。通过 find 可一次性检索并压缩所有 .conf 文件。
1、执行命令进入 Nginx 配置目录并打包所有站点配置:
cd /www/server/panel/vhost/nginx && tar -czf /www/backup_nginx_vhosts.tar.gz *.conf
2、执行命令进入 Apache 配置目录并打包所有站点配置(如启用 Apache):
cd /www/server/panel/vhost/apache && tar -czf /www/backup_apache_vhosts.tar.gz *.conf
3、确认生成的压缩包路径与大小:
ls -lh /www/backup_nginx_vhosts.tar.gz /www/backup_apache_vhosts.tar.gz
二、使用 bt 命令行工具导出单个站点配置(批量循环调用)
宝塔官方提供的 bt 命令行工具支持通过编号导出指定站点的配置内容,配合 shell 循环可实现全量导出。该方式输出为纯文本,便于审查或重定向保存。
1、列出当前所有网站及其对应编号:
bt 10
2、执行循环命令,将每个站点配置导出为独立文件(以站点编号命名):
for i in $(seq 1 $(bt 10 | grep -E '^[0-9]+' | wc -l)); do bt 7 $i > /www/vhost_conf_${i}.conf 2>/dev/null; done
3、检查导出结果:
ls -1 /www/vhost_conf_*.conf | head -n 5
三、直接读取 site.json 获取站点域名并提取对应配置文件
宝塔面板将所有站点元数据记录在 /www/server/panel/data/site.json 中,解析该文件可获得完整域名列表,再据此精确匹配配置文件名(Nginx 配置文件名通常为域名.conf),避免冗余文件混入。
1、安装 jq 工具(如未安装):
yum install -y jq || apt-get install -y jq
2、提取全部域名并生成对应配置文件路径列表:
jq -r '.[] | .name' /www/server/panel/data/site.json | while read domain; do echo "/www/server/panel/vhost/nginx/${domain}.conf"; done > /www/nginx_conf_paths.txt
3、根据路径列表打包有效配置文件:
tar -czf /www/strict_vhost_export.tar.gz $(cat /www/nginx_conf_paths.txt 2>/dev/null)










