V článku o zálohování databází jsme si ukázali, jak lze automatizovat stahování dat z FTP serveru pomocí standardního nástroje Windows. Nabízí se použití uvedeného postupu i pro synchronizaci dat mezi různými místy připojenými k internetu.

Pro lepší pochopení následujícího textu doporučuji vaší pozornosti předchozí článek.

Předpokládejme, že centrála firmy má stálé připojení k internetu a dostupný server FTP. Dále předpokládejme, že tato firma má pobočky, které jsou připojeny k internetu pouze telefonicky, a potřebují si automaticky vyměnit data s centrálou. K řešení problému použijeme dávkový soubor pro FTP na pobočce.

Nejprve na počítači pobočky vytvoříme složku transfer, ve které budou složky pro odesílání (odeslat) a příjem dat (prijato). Dále vytvoříme dávku synchro.txt pro FTP klienta na pobočce. V tomto případě použijeme standardní výbavu systému Windows, program ftp.exe.

jmeno_uzivatele
heslo
lcd c:transferodeslat
cd transfer
cd pobocka1
cd prijato
binary
put pobocka1.zip
cd ..
cd odeslat
lcd transferprijato
get centrala.zip
bye
  1. v prvních dvou řádcích je uvedeno jméno uživatele a heslo
  2. pomocí povelů lcd se nastaví na místním disku cesta ke složce s daty, která budou z pobočky odesílána
  3. dále se pomocí povelu cd nastaví na vzdáleném disku (na FTP serveru centrály) cesta ke složce, do které se data přijmou (zde jen upozorňuji, že někdy není možné zadat najednou celou cestu pomocí lomítek, jak je tomu v našem příkladě)
  4. poté vynutíme binární přenos a povelem put odešleme připravený soubor (pobocka1.zip) z pobočky na server
  5. pokud potřebujeme přenést i data z centrály na pobočku, opět přepneme pomocí lcd a cd cestu a povelem get přijmeme z centrály soubor na pobočku
  6. povelem bye se spojení se serverem ukončí

Poté vytvoříme dávku, která na pobočce připraví data k odeslání, naváže spojení se serverem, přenese požadovaná data a případně zpracuje přijatá data. Předpokládáme, že již máme vytvořeno fungující telefonické připojení k Internetu (zde s názvem spojeni):

// tučné platí pro systém Win98/Me, kurzíva platí pro WinNT/W2K/WinXP
@echo off
c:
cd transfer
pkzip.exe c:uctodata*.* odeslatpobocka1.zip
start.exe /w spojeni.dun
rasdial spojeni
Ftp.exe -a -i -s:synchro.txt ftp.nasserver.cz
rasdial spojeni /disconnect
pkunzip.exe prijatocentrala.zip c:uctodata
  1. v systému Win98/Me použijeme volání exportovaného souboru telefonického připojení *.dun (ve Win95 toto nefunguje), v systému Windows NT/2000 použijeme povel rasdial
  2. k přenosu dat se použije ftp.exe s parametry, z nichž jeden je jménem serveru centrály
  3. vynutit zavěšení spojení ve Win98/Me nelze, proto je potřeba ve vlastnostech připojení nastavit krátkou dobu automatického zavěšení při nečinnosti (2 až 3 minuty), ve WindowsNT/2000 použijeme parametr /disconnect

Dávku by bylo dobré vylepšit o kontrolu přenesených dat, například je zpracovávat v pomocné složce, aby se v případě chyby při rozbalování nepoškodila ostrá data, která v systému máme. Protože jde o nezabezpečený přenos, měli bychom pro tyto synchronizace vytvořit na FTP serveru zvláštní účet, který bude mít přístup pouze ke složkám potřebným pro synchronizaci. Navíc by data bylo vhodné komprimovat s použitím hesla, aby to případný narušitel, který odposlechne naši komunikaci, neměl tak jednoduché.

Jak získáme exportovaný soubor telefonického připojení? Otevřeme složku Telefonické připojení sítě a přetáhneme myší vytvořené spojení do složky, odkud budeme dávku spouštět. Pozor, nevytváříme zástupce! Musíme vytvořit přímo soubor s příponou .dun, jinak nebude popisovaný mechanismus funkční. Pokud bychom chtěli změnit vlastnosti připojení, je nutné to provést v okně Telefonického připojení sítě a soubor *.dun znovu exportovat.

Nakonec zbývá naplánovat spouštění přenosu v zadaný čas, pomocí Plánovače úloh nebo ve WinNT povelem at. Na centrále je nutné s dostatečným předstihem připravit data k odeslání a poté s dostatečným časovým odstupem přijatá data zpracovat. Je-li na pobočce potřeba přijmout data odeslaná ke zpracování na centrále, musíme dobře naplánovat celou výměnu, aby uvedený přenos proběhl za noc dvakrát, jinak budou na pobočce data vždy o jeden den starší.

Související články:
Záloha databáze MySQL pomocí PHP

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Žádný příspěvek v diskuzi

Odpovědět