Habrá muchos más scripts mejores pululando por la red, pero ahí va mi aportación.
El uso es simple, se coloca el script en el directorio raíz de nuestra dominio y se ejecuta poniendo como parámetros las extensiones de las páginas web que tenemos alojadas.
Por ejemplo: ./dositemap html php
NOTA: si tienes páginas con extensión .htm y .html NO hay que incluir ambos, sólo la de .htm, ya que si se ejecutara ./dositemap htm html habría urls repetidas.
#!/bin/bash
####################################
# Diego Navarro Mellén #
# d.navarrom@alumnos.urjc.es #
####################################
## Función auxiliar para añadir la información necesaria de
## cada página web
function addinfo {
if [ $# -ne 1 ]; then
echo "ERROR: argumentos insuficientes!"
exit 1
fi
for pagina in `find . -name "*\.$1" | sed -e 's/^.//g'`
do
echo '<url>' >> sitemap.xml
echo "<loc>$ruta$pagina</loc>" >> sitemap.xml
#Sacamos la fecha de última modificacion
lastmod=`ls -Gltc ./$pagina | sed -e 's/^[^ ]* [^ ]* [^ ]* [^ ]* //g' |
sed -e 's/[^ ]* [^ ]*$//g'`
echo "<lastmod>$lastmod</lastmod>" >> sitemap.xml
echo '</url>' >> sitemap.xml
done
}
#### Script Principal #####
# En los argumentos se recibira el tipo de extension que pueden tener las páginas
if [ $# -lt 1 ]; then
echo "Faltan argumentos!"
echo "Ejemplo de uso:"
echo "USO: $0 html php asp"
echo "------------------------>"
echo "El comando anterior generaría un sitemap de todo el sitio conteniendo
todas las páginas con extensión .html, .php y .asp que se encuentren"
exit 1
fi
## Suponemos que estamos en el directorio raíz del dominio
#
echo "Introducir raíz del dominio:"
echo "ej: http://www.google.es"
echo -n "> "
read ruta
echo "El archivo sitemap.xml se generará en el directorio:"
echo "$(pwd)"
echo "¿Seguir con el proceso? [S/N]"
echo -n "> "
read resp
if [ $resp = "N" -o $resp = "n" ]; then
echo "Proceso abortado"
exit 1
fi
echo -n "Generando sitemap.xml ... "
## Creamos el archivo sitemap.xml
echo '<?xml version="1.0" encoding="UTF-8"?>' > sitemap.xml
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' >> sitemap.xml
## Para cada url en el sitio
for extension in $@
do
addinfo $extension
done
## Cerramos urlset
echo '</urlset>' >> sitemap.xml
echo "OK!"
exit 0














