Datum: 22. 11. 2024 | | Hlavní stránka | Seznam rubrik | Download | Weblinks | | |
|
Automatizace úloh
Vydáno dne 24. 08. 2011 (929 přečtení) Ve své praxi jsem se setkal se zajímavým ře?ením volání shell skriptů z Windows, které jde pou?ít pro automatizaci úloh obdobně jako cron a v jeho kombinaci se stává automatizace hračkou, úspora času oproti manuální práci je dvoj a? trojnásobná. Automatizovat má smysl v?echny manuální úlohy opakující se v čase, a to i nepravidelné. Lze pou?ít v kombinaci v?ech programů, které lze zavolat z příkazové řádky. V jednoduchosti je princip následující: Na Windows mů?ete nastavit úlohu v Plánovači úloh volající bat soubor, který např. zazipuje a překopíruje pomocí programu WinSCP (tj. pomocí sFTP příkazů put/get) textový soubor, následně zavolá shell script na Linuxu pomocí Putty, který soubor následně zpracuje. Měly byste znát základy Linuxu, Bash shellu, Windos a MS Dosu a mít nainstalovány následující programy 7z, WinSCP, Putty včetně plink.exe a správně nakonfigurovány přístupy na Linux. Soubor Sleep.exe umístěte do adresáře s bat soubory, které postupně odlaďte v příkazové řádce cmd na vámi po?adované cesty k potřebným souborům. V?e si uká?eme na příkladu: Vytvořte zku?ební adresář "C:\Share Folder\INPUT" a v něm soubor Input.csv Vytvořte první bat soubor, který volám např. jednou denně z Plánovače úloh, nebo je mohu spou?tět manuálně poklepáním v případě potřeby. 01_COPY_CVS_AND_RUN_SH.bat: echo Kopíruji .CVS soubor a spou?tím shell script .... C:\7-Zip\7z.exe a -tzip C:\"Share Folder"\INPUT\Input.zip C:\"Share Folder"\INPUT\Input.csv Sleep.exe 5 /quiet call 02_Copy_CVS_To_Server.bat Sleep.exe 5 /quiet call "03_Run_Shell.bat" Sleep.exe 5 /quiet pause Soubor zazipuje a nakopíruje CVS soubor na Linux pomocí FTP klienta WinSCP, které najdeme např. na cestě C:\"Program Files (x86)"\WinSCP\winscp.com , cestu si musí ka?dý upravit sám. 02_Copy_CVS_To_Server.bat: C:\"Program Files (x86)"\WinSCP\winscp.com /script=Copy_CVS.scp if errorlevel 1 goto error Skript Copy_CVS.scp volá session "SVR APP - 192.168.1.110", která musí ji? být nastavena pod tímto názvem a po manuálním spu?tění plně funkční, včetně odsouhlasení ssh klíče, v praxi to znamená, ?e se WinSCP na daný Linuxový server připojí a obsah adresářů na serveru ve Windows je vidět. IP Linuxového serveru je např. 192.168.1.110 s přístupem uzivatel/heslo. Copy_CVS.scp: option echo on option confirm off open "SVR APP - 192.168.1.110" put "C:\Share Folder\INPUT\Input.zip" /tmp/Input.zip exit Soubor 03_Run_Shell.bat: @echo off echo . echo Automaticke spu?tění Run_Shell.sh > log ... echo . rem Davka na Automatické spu?tění Run_Shell.sh > log ... rem Prerequsity: - nainstalovaný putty.exe rem - nainstalovaný plink.exe rem - soubory s nastaveními příkazu v shellu pro vyči?tění serveru echo . echo Run_Shell.sh > log ... ... C:\"Program Files (x86)"\PuTTY\plink.exe -l uzivatel -pw heslo -m Run_Shell.txt 192.168.1.110 -batch echo . rem pause , který spou?tí následující skript Run_Shell.txt: cd /home/uzivatel/bin ./Run_Shell.sh > log Skript, který sma?e v?echny soubory *.tmp v adresáři /tmp , mů?e vypadat následovně: Run_Shell.sh musí mít nastaveno právo spu?tění x: #!/bin/sh /bin/rm -f /tmp/*.tmp Po odladění mů?eme sledovat obsah adresáře /tmp včetně práce Plánovače úloh ve Windows. Závěrem chci podotknout, ?e teď mů?eme i velké soubory přesouvat z Windows do Linuxu a obráceně. Spou?tět skripty ve Windows, Linuxu, ale i třeba PL/SQL skripty přes SQLPlus, atd. V Praze dne 24.8. 2011 © Zdeněk ?mitmajer Celá tisková zpráva | Komentáře: 0 | Přidat komentář | |
|