ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Генерация Google Sitemap в командной строке – BASH

Генерация Google Sitemap в командной строке - BASH

Мы нашли простой инструмент командной строки для генерации Google Sitemaps, но он не нравится нам. Вот мы решили написать простой генератор карты сайта при помощи скрипта командной строки Bash. Этот скрипт Bash использует wget, так что он должен быть установлен.

#!/bin/sh

if [ $# -ne 1 ];
    then echo "usage: $0 <http://www.example.ru>" && exit 1
fi

rm -rf sitemap.xml; rm -rf spider.log;
wget --spider --recursive --no-verbose 
	--output-file=spider.log 
    --reject=.rss,.gif,.png,.jpg,.css,.js,.txt -e robots=off $1;
urls=(`sed -n 's/.\+ URL:\([^ ]\+\) .\+/\1/p' spider.log`);

echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<urlset
      xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\"
      xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
      xsi:schemaLocation=\"http://www.sitemaps.org/schemas/sitemap/0.9
            http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd\">" > sitemap.xml;

for url in ${urls[*]}
do
echo "<url>
  <loc>$url</loc>
  <changefreq>daily</changefreq>
</url>" >> sitemap.xml;
done      
        
echo "</urlset>"; >> sitemap.xml;

 

Спасибо за прочтение! Если у вас есть идеи, напишите их в комментариях ниже.

Exit mobile version