Sitecopy is een hulpprogramma om lokaal opgeslagen websites via FTP of WebDAV op het internet te plaatsen. Het synchroniseert uw externe website met uw lokale website door aangepaste lokale bestanden up te loaden en verwijderde lokale bestanden ook op het internet te verwijderen.
Waarschuwing: Dit soort hulpmiddelen kunnen indien verkeerd gebruikt volledige websites verwijderen. Wees dus voorzichtig, lees deze tip volledig, zorg dat je door oefening sitecopy leert gebruiken en gebruik pas daarna de kracht van sitecopy.
Sitecopy zit in de standaard softwarebronnen van de meeste distributies. In openSUSE 12.3 voer je in een terminal de volgende opdracht uit:
dany@linux-e1kr:~> sudo zypper install sitecopy
root's password:
Gegevens van installatiebron laden...
Lezen van geïnstalleerde pakketten...
Afhankelijkheden tussen pakketten oplossen...
De volgende NIEUWE pakketten zullen worden geïnstalleerd:
sitecopy sitecopy-lang
2 nieuw te installeren pakketten.
Totale downloadgrootte: 152,4 KiB Na de operatie zal aanvullend 418,6 KiB worden gebruikt.
Doorgaan? [j/n/?] (j):
pakket sitecopy-lang-0.16.6-35.1.1.noarch wordt opgehaald (1/2), 34,0 KiB (134,8 KiB uitgepakt)
Ophalen: sitecopy-lang-0.16.6-35.1.1.noarch.rpm ...............................[klaar (151,2 KiB/s)]
pakket sitecopy-0.16.6-35.1.1.x86_64 wordt opgehaald (2/2), 118,4 KiB (283,8 KiB uitgepakt)
Ophalen: sitecopy-0.16.6-35.1.1.x86_64.rpm ..................................................[klaar]
(1/2) Installeert: sitecopy-lang-0.16.6-35.1.1 ..............................................[klaar]
(2/2) Installeert: sitecopy-0.16.6-35.1.1 ...................................................[klaar]
De handleiding met de opties voor sitecopy kan je opvragen met de opdracht:
man sitecopy
Ga naar uw Persoonlijke map met de opdracht:
cd ~
En maak de map .sitecopy met de rechten 700 aan (deze map wordt gebruikt om informatie over bestanden in op te slaan):
mkdir -m 700 .sitecopy
Maak het .sitecopyrc configuratiebestand met bijpassende rechten aan met de opdrachten:
touch .sitecopyrc
chmod 600 .sitecopyrc
Open het bestand met een editor (joe of kwrite):
joe .sitecopyrc
-Of-
kwrite .sitecopyrc
En maak een configuratie aan voor de linux.pindanet.be site. Twee voorbeelden, één voor FTP:
site linux.pindanet.be server pindanet.be username gebruikersnaam password wachtwoord local /home/dany/sites/linux.pindanet.be/ remote ~/linux/ exclude *.bak exclude *~
En voor WebDAV:
site linux.pindanet.be server pindanet.be protocol webdav username gebruikersnaam password wachtwoord local /home/dany/sites/linux.pindanet.be/ remote ~/linux/ exclude *.bak exclude *~
Je kunt voor verschillende websites, verschillende secties aanmaken.
Na de site instructie volgt de naam van de website - deze naam mag je vrij kiezen en wordt later in de sitecopy opdrachten gebruikt. De daarop volgende instellingen die tot deze site behoren, moet je laten inspringen!
De meeste instellingen spreken voor zich. Het standaard protocol is FTP; als je WebDAV wilt gebruiken, moet je dat vermelden. De local instructie bevat het lokale pad naar uw lokaal opgeslagen website, remote bevat het pad van de website op de externe webserver - dit mag absoluut of relatief vermeld worden. Indien de gebruiker wordt afgeschermd (chrooted) (de standaard voor FTP gebruikers), moet je relatieve paden (zoals ~/ of ~/web) gebruiken. Anders gebruik je absolute paden.
De regels met exclude zijn facultatief en tonen in het voorbeeld hoe je bestanden bij het beheer kunt uitsluiten.
Bij het eerste gebruik van sitecopy op een website, moet je je afvragen welk scenario in uw situatie past:
Als de map met de lokale website dezelfde bestanden bevat als de website op het internet, voer je de volgende opdracht uit:
dany@linux-e1kr:~> sitecopy --catchup linux.pindanet.be
sitecopy: Catching up site `linux.pindanet.be' (on pindanet.be in ~/linux/)
sitecopy: All the files and and directories are marked as updated remotely.
Deze opdracht zorgt dat sitecopy 'denkt' dat de inhoud van de externe website overeenkomt met de lokaal opgeslagen website.
Als je geen lokale kopie van een bestaande website hebt (wat eigenlijk niet zou mogen voorkomen - back-ups zijn een must), voer je de volgende opdrachten uit:
dany@linux-e1kr:~> sitecopy --fetch linux.pindanet.be
sitecopy: Fetching site `linux.pindanet.be' (on pindanet.be in ~/linux/)
File: search/index/word_index.json - size 574941
File: search/index/page_index.json - size 8594
File: search/index_pages.php - size 2778
File: search/index.php - size 3833
File: search/hint.php - size 4755
Directory: search/index/
File: hint.html - size 3920
Directory: Mail/
Directory: search/
sitecopy: Fetch completed successfully.
En daarna om de bestanden daadwerkelijk te downloaden:
dany@linux-e1kr:~> sitecopy --synch linux.pindanet.be
sitecopy: Synchronizing site `linux.pindanet.be' (on pindanet.be in ~/linux/)
Creating search/index/: failed:
Bestand of map bestaat niet
Creating Mail/: done.
Creating search/: done.
sitecopy: Errors occurred while synchronizing the local site.
Zoals je merkt, wordt het downloaden met een foutmelding afgebroken (blijkbaar wordt eerst geprobeerd de submap /search/index aan te maken, wat mislukt want de map /search is nog niet aangemaakt). Bij een tweede poging verloopt alles zoals het hoort.
dany@linux-e1kr:~> sitecopy --synch linux.pindanet.be
sitecopy: Synchronizing site `linux.pindanet.be' (on pindanet.be in ~/linux/)
Creating search/index/: done.
Downloading search/index/word_index.json: [....................................................................................................................................................................] done.
Downloading search/index/page_index.json: [..] done.
Downloading search/index_pages.php: [.] done.
Downloading search/index.php: [.] done.
Downloading search/hint.php: [...] done.
Downloading hint.html: [..] done.
sitecopy: Synchronize completed successfully.
Als je een lokale map met een website op een lege externe website wilt plaatsen, voer je de volgende opdrachten uit:
dany@linux-e1kr:~> sitecopy --init linux.pindanet.be
sitecopy: Initializing site `linux.pindanet.be' (on pindanet.be in ~/linux/)
sitecopy: All the files and directories are marked as NOT updated remotely.
Daarna upload je de lokale website naar het internet met de opdracht:
dany@linux-e1kr:~> sitecopy --update linux.pindanet.be
sitecopy: Updating site `linux.pindanet.be' (on pindanet.be in ~/linux/)
Creating Mail/: done.
Creating search/: done.
Creating search/index/: done.
Uploading search/index/page_index.json: [..] done.
Uploading search/index/word_index.json: [.......................................................................] done.
Uploading search/hint.php: [.] done.
Uploading search/index_pages.php: [.] done.
Uploading search/index.php: [.] done.
Uploading hint.html: [.] done.
sitecopy: Update completed successfully.
Daarna is het werken met sitecopy eenvoudig. Je werkt aan uw lokale website door bestanden aan te passen, aan te maken en te verwijderen. Eerst voer je facultatief de volgende opdracht uit:
dany@linux-e1kr:~> sitecopy linux.pindanet.be
sitecopy: Showing changes to site `linux.pindanet.be' (on pindanet.be in ~/linux/)
* These items have been changed since the last update:
hint.html
sitecopy: The remote site needs updating (1 item to update).
Nu weet je welke bestanden lokaal veranderd werden. Om uw externe website met uw lokale website te synchroniseren (automatisch nieuwe en aangepaste lokale bestanden uploaden en verwijderde lokale bestanden op de webserver verwijderen) voer je de volgende opdracht uit:
dany@linux-e1kr:~> sitecopy --update linux.pindanet.be
sitecopy: Updating site `linux.pindanet.be' (on pindanet.be in ~/linux/)
Uploading hint.html: [.] done.
sitecopy: Update completed successfully.
Sitecopy voert precies uit wat je vraagt. Zonder omkijken synchroniseert sitecopy een lokale map met een map op een webserver. Het gevaar van zo'n automatische updates schuilt echter in het woord automatisch. Zorg dat je steeds controleert of er geen synchronisaties worden uitgevoerd op bestanden die niet mogen verdwijnen of aangepast worden (voorbeeld teller). Deze situaties zijn niet te wijten aan de werking van programma's zoals sitecopy, maar aan hun configuraties (exclude instructies). M.a.w. hoewel sitecopy eenvoudig is in het gebruik, zorg je toch maar best dat je zeker in het begin wat oefent op niet actieve websites of op websites op een virtuele webserver.
Sitecopy ondersteunt geen synchronisatie via het SFTP protocol. Het van sitecopy afgeleide programma sitedeploy doet dit wel.