
Bash
1 前言
最近WordPress安装“Google XML Sitemaps”插件,然而使用“百度资源搜索平台”提交却提示不接受Sitemaps索引列表,于是产生自己写脚本生成的想法。
关于“百度资源搜索平台”的操作菜单,详细如下,
https://ziyuan.baidu.com/linksubmit/index -> 单击【资源提交】-> 单击【sitemap】
关于本站的索引列表,详细请参阅如下链接,
https://www.cmdschool.org/sitemap.xml
2 最佳实践
2.1 创建处理脚本
mkdir ~/scripts/ vim ~/scripts/sitemap-baidu.sh
加入如下脚本,
#!/bin/bash siteMapListPath=/tmp/sitemap-baidu.list siteMapPath=/var/www/www.cmdschool.org/sitemap-baidu.xml curl -s https://www.cmdschool.org/sitemap.xml | grep "loc" | grep ".xml" | sed -e "s/<loc>//g" -e "s/<\/loc>//g" -e "s/^[ \t]*//g" > $siteMapListPath echo '<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl"?>' > $siteMapPath echo '<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.siteMapPaths.org/schemas/siteMapPath/0.9 http://www.siteMapPaths.org/schemas/siteMapPath/0.9/siteMapPath.xsd" xmlns="http://www.siteMapPaths.org/schemas/siteMapPath/0.9"> ' >> $siteMapPath for i in `cat $siteMapListPath`; do curl -s $i | grep -v "?xml" | grep -v "urlset" | egrep "loc|lastmod|changefreq|priority" | sed -e "s/^[ \t]*<loc>/<url>\n\t\t<loc>/g" -e "s/<\/priority>/<\/priority>\n<\/url>/g" >> $siteMapPath done echo '</urlset>' >> $siteMapPath
2.2 添加计划任务自动更新
crontab -e
然后加入如下配置,
0 2 */1 * * sh ~/scripts/sitemap-baidu.sh
2.3 测试转换的结果
使用谷歌浏览器输入如下链接浏览源代码,
view-source:https://www.cmdschool.org/sitemap-baidu.xml
没有评论