• User Attivo

    Nicola a me il tuo script da questo errore:

     
    ./pro: command substitution: line 13: syntax error near unexpected token `|'
    ./script: command substitution: line 13: `|grep $url |awk '{print $2 " "}''
    ./script: line 17: syntax error near unexpected token `newline'
    ./script: line 17: `<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' >> '
    
    ```inoltre nello script manca l'opzione -X per specificare le cartelle da non scansionare ...

  • User Attivo

    OK, ho riassunto tutti i passaggi in uno script unico

    
    #!/bin/bash
    
    site=**www.sito.com**
    #indirizzo del sito senza http://
    nodir=**/dir1,/dir2**
    #elenco delle directory da escludere , separate da una virgola
    accettati=**.html,.php** delle estensioni da prendere, separate da una virgola
    esclusi=**.css,.jpg** delle estensioni da NON prendere, separate da una virgola
    data=**2006-12-31**
    #data utlimo aggiornamento in questo formato YYYY-MM-DD
    freq=**daily**
    #frequenza aggiornamento - valori possibili:
    #always,hourly,daily,weekly,monthly,yearly,never
    prio=**0.5**
    #priorità da 0.0 a 1.0
    
    wget -m -X $nodir  http://$site --accept $accettati --reject $esclusi
    
    cd $site
    
    echo '<?xml version="1.0" encoding="UTF-8"?>
    <urlset xmlns="http://www.google.com/schemas/sitemap/0.84">' >> ../sitemap.xml;
    
    arr=(`tree -i -f |grep [.html][.php]`)
    for (( I=0 ; I<${#arr
    * } ; I++ ))
            do
    echo "<url>
        <loc>$site${arr*:1}</loc>
        <lastmod>$data</lastmod>
        <changefreq>$freq</changefreq>
        <priority>$prio</priority>
    </url>" >> ../sitemap.xml
    done
    echo "</urlset>" >> ../sitemap.xml
    
    cd ..
    
    rm -rf $site 
    #questo comando elimina la cartella creata in cui viene scaricato il sito
    
    exit 0
    
    
    ```le parti da personalizzare sono quelle in neretto
    
    Questa versione dello script alla fine del processo elimina direttamente la cartella che viene creata per scaricare il sito, quindi, alla fine del processo ci trovaremo semplicemente un file nominato sitemap.xml  nella cartella in cui c'è lo script stesso
    TUTTAVIA la cartella viene comunque creata e successivamente eliminata quindi è necessario avere abbastanza spazio

  • User Attivo

    @robyweb:
    è un problema di accenti ed apostrofi corretti, ` e ' sono diversi ed hanno funzioni diverse.


  • User Attivo

    @Nicola said:

    @robyweb:
    è un problema di accenti ed apostrofi corretti, ` e ' sono diversi ed hanno funzioni diverse.

    si scusa si vede che nel copia incolla ha combinato qualche casino


  • User Attivo

    Dopo alcuni test credo che questa possa considerarsi una versione abbastanza corretta e funzionale (prima erano presenti alcuni errori)

    
    
     #!/bin/bash
    
    #---INIZIO PARTE DA MODIFICARE
    
    site=**www.sito.it**
    #indirizzo del sito senza http://
    nodir=**/dir2,/dir2**
    #elenco delle directory da escludere , separate da una virgola
    accettati=**.html,.php,.asp** delle estensioni da prendere, separate da una virgola
    esclusi=**.css,.jpg,.gif,.txt** delle estensioni da NON prendere, separate da una virgola
    data=**2007-03-21**
    #data utlimo aggiornamento in questo formato YYYY-MM-DD
    freq=**weekly**
    #frequenza aggiornamento - valori possibili:
    #always,hourly,daily,weekly,monthly,yearly,never
    prio=**0.5**
    #priorita da 0.0 a 1.0
    
    #---FINE PARTE DA MODIFICARE
    
    wget -m -X $nodir  http://$site --accept $accettati --reject $esclusi
    
    cd $site
    
    echo '<?xml version="1.0" encoding="UTF-8"?>
    <urlset xmlns="http://www.google.com/schemas/sitemap/0.84">' >> ../sitemap.xml;
    
    arr=(`tree -i -f |grep [.html][.php]`)
    for (( I=0 ; I<${#arr
    * } ; I++ ))
            do
    echo "<url>
        <loc>http://$site${arr*:1}</loc>
        <lastmod>$data</lastmod>
        <changefreq>$freq</changefreq>
        <priority>$prio</priority>
    </url>" >> ../sitemap.xml
    done
    echo "</urlset>" >> ../sitemap.xml
    
    cd ..
    
    rm -rf $site 
    #questo comando elimina la cartella creata in cui viene scaricato il sito
    
    exit 0          
    
    
    ```le parti da personalizzare sono sempre quelle in neretto
    
    Questa versione dello script alla fine del processo elimina direttamente la cartella che viene creata per scaricare il sito, quindi, alla fine del processo ci trovaremo semplicemente un file nominato sitemap.xml nella cartella in cui c'è lo script stesso
    TUTTAVIA la cartella viene comunque creata e successivamente eliminata quindi è necessario avere abbastanza spazio
    
    tenete conto che lo script genera la prima pagina del sito  in versione con index
    ad esempio: 
    h-ttp://w-ww.nomedelsito.com/index.html
    
    quindi se non vi piace (come a me)modificatela ad esempio con h-ttp://w-ww.nomedelsito.com

  • User Newbie

    Ciao ho trovato questo script per linux che uso da pochi mesi, molto interessante solo che mi da questo problema una volta lanciato: sitemapfdb.sh: 30: Syntax error: "(" unexpected la riga nello script è questa: arr=(tree -i -f |grep [.html][.php][.htm]) come posso risolvere? grazie


  • User Newbie

    Edit:

    Inizia i messaggi con una maiuscola e termina con un punto.


  • User Newbie

    Anche a me da un errore alla linea 30!!!
    ./sitemap.sh: line 30: tree: command not found

    in pratica è la linea
    arr=(tree -i -f |grep [.html][.php][.asp])

    non so che fare!

    la sitemap viene generata ma solo fino a questo punto

    <?xml version="1.0" encoding="UTF-8"?>
    <urlset xmlns="hxxp://wxw.google.com/schemas/sitemap/0.84">
    </urlset>
    

  • User

    Edit:

    Inizia i messaggi con una maiuscola e termina con un punto.


  • User Newbie

    cosa vuol dire
    Inizia i messaggi con una maiuscola e termina con un punto.

    ???


  • User Attivo

    @enricogalli said:

    Anche a me da un errore alla linea 30!!!
    ./sitemap.sh: line 30: tree: command not found
    [..]
    non so che fare!

    Ciao enricogalli, devi installare "tree", un piccolo programma di circa 30KB che serve per elencare i file della directory (che in questo caso sono le pagine del sito su cui generare la sitemap) in formato ad albero.
    :ciauz: