You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编写Shell脚本基于User/Domain数据批量生成robots.txt追加命令

Shell脚本实现方案

前置准备

把你存储用户和域名映射关系的内容单独存为配置文件,命名为user_domain_map.conf即可,文件里的分段空行、等号前后的空格都不会影响解析,不需要特意调整原有格式。

完整脚本

把下面的代码保存为gen_robots_sitemap.sh:

#!/bin/bash
# 指向存储映射关系的配置文件路径
MAP_FILE="./user_domain_map.conf"
# 临时变量存储当前段落读到的用户名和域名
current_user=""
current_domain=""

# 逐行读取配置内容
while IFS= read -r line || [[ -n "$line" ]]; do
    # 空行直接跳过
    [[ -z "$(echo "$line" | xargs)" ]] && continue
    # 匹配到User字段时截出用户名,自动去除前后空格
    if [[ "$line" =~ ^User= ]]; then
        current_user=$(echo "${line#*=}" | xargs)
    # 匹配到Domains字段时截出域名,自动去除前后空格
    elif [[ "$line" =~ ^Domains= ]]; then
        current_domain=$(echo "${line#*=}" | xargs)
    fi
    # 同一段落的用户名和域名都读取完成后,生成对应命令
    if [[ -n "$current_user" && -n "$current_domain" ]]; then
        echo "echo 'Sitemap: https://${current_domain}/sitemap.xml' | tee -a /home/${current_user}/public_html/robots.txt >/dev/null"
        # 重置临时变量,准备读取下一段配置
        current_user=""
        current_domain=""
    fi
done < "$MAP_FILE"

使用步骤

  • 给脚本添加执行权限,运行命令:chmod +x gen_robots_sitemap.sh
  • 先预览生成结果:直接执行./gen_robots_sitemap.sh,终端会输出所有拼接完成的命令,先核对用户名、域名配对是否正确
  • 确认无误后批量执行:直接运行./gen_robots_sitemap.sh | bash,就会自动给所有对应用户站点的public_html/robots.txt追加Sitemap配置
    注意:你给出的期望输出示例中存在几处用户名和域名错位配对的问题,上述脚本严格按照配置文件同一段落内的User、Domains字段做一一对应,不会出现串配错误。

内容的提问来源于stack exchange,提问作者Bum kailash kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 05:21:23