Tramite questo tool laggiornamento di più siti web diventa un'operazione semplice e veloce.
Gestire laggiornamento di più siti web con sitecopy
di Antonio Gallo
Lutilizzo dInternet è ormai parte della vita quotidiana. Molti provider forniscono da tempo spazio web gratuito dove chiunque può costruire la propria pagina o un intero sito web. Sia si tratti di un web master professionista, sia di un programmatore o, di un semplice studente, sorge il problema di mantenere aggiornata limmagine del proprio sito web con il web server. In questo caso, gestire manualmente laggiornamento di tutti i file modificati non è unipotesi praticabile, soprattutto quando i siti da aggiornare sono molti ed hanno anche diversi mirror. In questo articolo parleremo di un semplice e potente strumento che rende agevole loperazione di aggiornamento di più siti web.
Cosè sitecopy ed a cosa serve
Sitecopy è uno strumento indispensabile per laggiornamento di pagine web, sviluppate su una macchina locale, sui diversi web server remoti che le ospitano. Ogni sito web è memorizzato in una determinata directory allinterno del filesystem locale, sitecopy si occupa di mantenere sincronizzato il contenuto di questa con quello di uno o più server remoti.
In cosa è diverso sitecopy da mirror, rdist ed altre utility
Sitecopy è funziona in modo molto differente rispetto ad altre utility simili quali mirror, rdist, rsync ed altre ancora. Innanzitutto la prima differenza è il protocollo di trasmissione utilizzato. Lutilizzo di mirror ed altre utility richiede davere a disposizione un account di shell sul server. Questultima, non rappresenta una soluzione ottimale quando il server è collegato direttamente ad Internet, come nel caso di un web server, per diversi motivi (security, ecc.). Sitecopy invece utilizza sia il protocollo FTP, sia il nuovissimo WebDAV [DAV]. Questo è un vantaggio notevole in quanto, quasi tutti i maggiori ISP provider italiani permettono luploading delle pagine web via FTP (Tiscalinet, Geocities, etc.) mentre sono molto restii a permettere laccesso attraverso altri tipi di servizi di rete.
Il secondo punto, ma non meno importante è la velocità. Sitecopy mantiene internamente un database di tutti i file trasferiti sul web server remoto. In questo modo è in grado di riconoscere i file modificati, o cancellati, verificando i file presenti in locale contro il proprio database senza interrogare il server. In questo modo sitecopy, diversamente da altre utility che confrontano singolarmente i file locali con i file presenti sul server con notevole spreco di banda, invia, attraverso la rete, solo i file effettivamente modificati dal web master rispetto alla data del precedente aggiornamento. Questa macroscopica differenza nel funzionamento esiste perché programmi come mirror ed rsync sono stati studiati per mantenere copie di grandi siti FTP mentre sitecopy è uno strumento ideato appositamente per soddisfare le esigenze dei web master.
Come si compila e/o installa
I sorgenti di sitecopy possono essere reperiti su Internet [LYRA]. Oltre al pacchetto con il codice sorgente sono già presenti alcuni pacchetti contenenti il programma già compilato per alcuni sistemi operativi (Aix, OS/2, Windows ), nonché per le varie distribuzioni Linux ( Debian, Suse ). Tuttavia, in questo articolo, gli esempi sono riferiti allutilizzo del programma tramite Linux.
La compilazione di sitecopy non presenta particolari difficoltà. Essendo un pacchetto sviluppato con i tool della GNU noteremo al suo interno la presenza dello script di nome configure. Per compilare ed installare il programma bisogna digitare i seguenti comandi :
./configure
make
make install
Lo script configure ha il compito di genare i file necessari alla compilazione del programma adattandoli al sistema operativo utilizzato. Il comando make, invece, compila e genera leseguibile del programma. Infine "make install" installa leseguibile nel filesystem.
Lultimo passo prima di passare alla configurazione ed al reale utilizzo del programma è quello di creare alcune directory ed i file necessari a sitecopy. Questo va fatto nella vostra home directory tramite i seguenti comandi :
cd $HOME
makedir .sitecopy
chmod 700 .sitecopy
touch .sitecopyrc
chmod 600 .sitecopyrc
Come si configura
Dopo aver creato la directory .sitecopy ed il file di configurazione .sitecopyrc, possiamo passare alla preparazione di questultimo inserendo le opzioni per istruire sitecopy sui compiti da svolgere. Potete quindi inserire le informazioni relative ai vostri siti web seguendo il file .sitecopyrc come nellesempio (Listato 1). Come notate, per ogni web server da aggiornare è utilizzata la direttiva site seguita da un nome univoco con cui notifichiamo a sitecopy il nome che vogliamo attribuire al sito. Subito dopo prendono posto le diverse opzioni, lordine in cui appaiono non è rilevante.
Il primo esempio
Nel primo esempio gestiamo laggiornamento del sito Infomedia. Questo è un esempio minimo, infatti le opzioni server, username, password, remote e local sono opzioni obbligatorie. Con server specifichiamo il nome, o lIP address, del server cui sitecopy deve connettersi . local indica da quale directory, del filesystem locale, sitecopy deve prendere i file mentre remote specifica in quale directory vanno memorizzati i file dopo aver effettuato la connessione; infine username e password sono ovviamente i dati dellaccount FTP o WebDAV utilizzato. In esempio trasferiamo le pagine memorizzate dalla home directory dellutente nella home directory dellaccount utilizzato sul server. Sarà quindi cura del web master del web server remoto far puntare il sito web desiderato alla directory utilizzata per il trasferimento dei dati.
Il secondo esempio
Nel secondo esempio è evidenziato luso di nuove opzioni. Lopzione protocol specifica a sitecopy il protocollo da utilizzare, il default è FTP e quindi non occorre cambiarlo tranne nel caso in cui si utilizzi WebDAV (in tal caso il valore da impostare sarebbe http). port permette di specificare un numero di porta diverso quando ci si connette al server nel caso in cui il server remoto utilizzi degli indirizzi di porta diversi dallo standard. ftp nopasv è invece necessario su molti server FTP (quello di Tiscalinet per lappunto) in quanto specifica a sitecopy di non usare lestensione del PASV (Passive Mode) in quanto non supportata dal server, pena il fallimento delloperazione.
Il terzo esempio
Anche nel terzo esempio sono presenti nuove opzioni.
Lopzione permissions, valida solo per i trasferimenti via FTP, può essere impostata su ignore, exec o all. Il valore di default è ignore, in questo caso, quando i file vengono creati sul server, viene attribuito loro il valore di default stabilito dallamministratore di sistema. exec fa in modo che tutti i file eseguibili conservino gli stessi permessi anche sul server, questo è un utile accorgimento per assicurarsi che gli script CGI funzionino regolarmente. all invece fa in modo che i permessi dei file sul server siano gli stessi dei file in locale. Lopzione symlinks accetta anchessa tre possibili valori : ignore, follow e maintain. Con ignore vengono ignorati completamente tutti i riferimenti a link simbolici presenti nel filesystem locale. Con follow invece, sitecopy segue i link simbolici aggiornando il file a cui il link punta. In maintain (solo per WebDAV) i link simbolici vengono ricreati sul server remoto identici a quelli del filesystem locale. Infine lopzione nooverwrite va utilizzata quando il server non consente la sovrascrittura di un file, in tal caso sitecopy provvederà a rimuovere il file dal server prima di aggiornarlo.
Il quarto esempio
Lultimo esempio ci mostra altre opzioni molto utili. nodelete istruisce sitecopy a non cancellare nessun file dal server anche se in locale è stato fatto. checkmoved istruisce sitecopy a cercare il file che sono stati spostati, in tal modo sitecopy farà spostare il file al server remoto invece di cancellarlo e copiarlo nella nuova posizione. exclude definisce quali file o directory sono da escludere dallaggiornamento, i file temporanei ad esempio. ascii definisce quali file devono essere trasferiti in modalità ASCII altrimenti di default è utilizzata la modalità binaria. rename, infine, istruisce sitecopy a trasferire i file sul server con un diverso nome (questo è utile quando il server è IIS che usa nome di default per le pagine diverso dagli altri). Nella configurazione di un sito le opzioni exclude, ascii e rename possono essere ripetute più volte.
Come si usa
Le opzioni per leffettivo utilizzo di sitecopy sono molto semplici. Inizialmente dobbiamo però far distinzione tra il caso in cui il sito web sia è già presente sul server remoto ed il caso in cui non lo sia.
Se il sito web è già presente dobbiamo utilizzare il comando:
sitecopy -catchup nome_sito
Questo comando dice a sitecopy di marcare tutti i file nel suo database come aggiornati.
Nel caso contrario, invece, si utilizza una sintassi diversa:
sitecopy -init nome_sito
Questo comando marca tutti i file del database di sitecopy come non aggiornati.
Con nome_sito si intende il nome del sito specificato tramite la direttiva site nel file di configurazione. Sulla riga di comando possono essere specificati più nomi di sito, separati da uno spazio, oppure lopzione -a (all) che effettua loperazione su tutti i siti presenti nel file di configurazione.
Una volta modificate in locale le pagine del sito, si può finalmente effettuare laggiornamento utilizzando il comando:
sitecopy -update -a
Sitecopy supporta anche altre opzioni, la più utile è lopzione --fetch. Utilizzandola, sitecopy si connetterà al server remoto e, se questultimo supporta lestensione MDTM, aggiornerà il proprio database con le informazioni sui file presenti sul server. Questopzione è molto comoda per allineare il database di sitecopy quando viene effettuato laggiornamento del sito web con altri strumenti.
Le ultime opzioni degne di nota sono : --list per vedere i soli file modificati senza aggiornarli e --synchronize che sostituisce tutti i file locale con quelli presenti sul server.
Per i più pigri : xsitecopy
Se sul vostro sistema avete a disposizione la libreria GTK e lambiente GNOME [GWEB] potete utilizzare xsitecopy. Questi è un front-end a sitecopy e permette sia la configurazione sia lutilizzo di sitecopy tramite uninterfaccia grafica user-friendly. Questo programma può essere reperito in forma binaria, sul sito Internet di sitecopy, oppure, può essere compilato dai sorgenti di sitecopy utilizzando il parametro --enable-gnomefe quando si lancia lo script configure.
Conclusioni
Sitecopy è uno strumento semplice e versatile, disegnato tenendo in mente uno scopo specifico e determinate esigenze da soddisfare. E da tenere presente che lo sviluppo di sitecopy è ancora in corso. Il tool a linea di comando funziona egregiamente mentre per il front-end grafico potrebbe esserci ancora qualche piccolo problema o feature mancante. Tuttavia, fatte salve le dovute avvertenze, sitecopy è uno strumento assolutamente da provare e che ogni web master dovrebbe avere.
Riferimenti
[DAV] http://www.webdav.org/other/faq.html
[LYRA] http://www.lyra.org/sitecopy/
[GWEB] http ://www.gnome.org/
listato 1
#.sitecopyrc #File di esempio su come configurare sitecopy site infomedia server www.infomedia.it username agx password 3hgg38fj remote ~/agx/ local ~/nuovi_clienti/infomedia/ site tiscali server web.tiscalinet.it port 3576 username fu943 password f3u9y remote / local /DOSH/web-site/www.linux.it protocol ftp ftp nopasv site linux server www.linux.it username fu943 password f3u9y remote ~/public_html/ local /DOSH/web-site/www.linux.it protocol ftp permissions exec symlinks follow nooverwrite site nalug server www.linux.it username f4iuh98 password fi489yu4 remote ~/public_html local /DOSH/web-site/www.linux.it/nalug ftp nopasv exclude *~ exclude *.bak exclude *gz exclude personal exclude software ascii *.pl ascii *.txt ascii *.cgi nodelete checkmoved rename index.html default.htm
