Batch backup na ftp vo windowse
Zdravím vás,
ak by mal niekto toto poriešené na windowse a mohol by mi dať nejaký sample. Potrebujem zálohovať cez plánovač vo windowse nejaké veci. Chcem to spraviť cez bat. Zatiaľ sa mi podarilo nastaviť denné zálohy, ktoré mi robia sql dump a pakuju subory cez izarc s casovou znackou.
Potreboval by som denne zalohu:
- lokalnych mysql databaz do suboru sql s oznacenim dna, napr. system1_zaloha_den_1.sql
- vzdialenych mysql databaz -||-
- lokalnych adresarov do zipu
- toto vsetko uploadovať na ftp server do konkretnych adresarov, s tým, že by sa zálohy po 30 dňoch automaticky prepisovali (teda nejaký rewrite command na ftp)
Nepotrebujem žiadne logy.
Má niekto príklad nejakého baťáku? Díky.
no, nelehký úkol vzal na sebe jsi (TM Yoda)
ftp klient ve windows umí režim dávky (parametr -s:soubor.txt).
Viděl bych to tak, že budeš muset v prvním kroku stáhnout list aktuálních záloh, ty projít a vyselektovat z nich ty ke smazání, následně na základě předchozího vygenerovat další dávkový soubor s "mazacími" příkazy, ten následně spustit vůči ftp serveru.
Následně si vygeneruješ list se soubory k uploadu a opět pustíš vůči serveru.
Celé to algoritmicky není problém, spíše ale bych to řešil ve VBS, nabízí přece jen elegantnější a mocnější funkce nad proměnnými ("vykousat" z listu adresáře soubory ke smazání na základě části jejich jména nebude v BAT souboru zrovna elegantní - povede to na for cykly s nastavením custom oddělovače) než windowsovský shell.
edit: nedávno jsem tady shpy00novi psal jakýsi kus skriptu na zálohování, kde se pracovalo s částmi datového stringu - to lze použít i pro porovnávání dat (měsíce, dny).
Nebo pokud má v PC PowerShell (ve Vista a 7 v základu) tak proč se nenaučit používat jej
to je přesně hlavní problém PS - není všude (až XPčka nebudou, pak to bude jasná volba). Navíc mi tak trochu nesedí jeho syntax (už mám nějaký studijní materiál, tak až bude trocha času, tak se do toho pustím). VBS má i tu výhodu, že si jej normálně čtu, tak je jednoduchoučký.
Je faktem, že PS má zřejmě lehce složitější syntaxi. Ale zase na druhou stranu, to není zas tak hrozné ne?
PS mám, keďže sa jedná o Win 2008.
Pre príklad, momentálne to mám takto pri sql dumpe:
REM @echo off
for /f "tokens=1" %%i in ('date /t') do set DATE_DOW=%%i
for /f "tokens=2" %%i in ('date /t') do set DATE_DAY=%%i
for /f %%i in ('echo %date_day:/=-%') do set DATE_DAY=%%i
for /f %%i in ('time /t') do set DATE_TIME=%%i
for /f %%i in ('echo %date_time::=-%') do set DATE_TIME=%%i
rem Vymazanie vsetkych suborov starsich ako 31 dni
forfiles /p c:\zalohy\mysql\ /s /m *.* /d -31 /c "cmd /c del @file : date >= 31 days"
C:\mysql\mysqldump.exe -uroot -pass CRM >C:\zal\"crm_database_%DATE_DAY%_%DATE_TIME%.sql
Este chcem vlastne dosiahnut, aby sa ten subor preniesol na ftp do konkretneho adresara.
no dobře, ale jak budeš ty soubory mazat na ftp?
edit: to vykousávání data je dost nešikovné. Inspiruj se zde: http://pc.poradna.net/q/view/760788-bat-batak-vypi nadlo?page=r760801#r760801
Nemusím mazať. Chcem to tak spraviť, že súbory budú mať názvov system_den1.zip system_den2.zip ...atd. teda ked sa budu prepisovat, vzdy tam bude poslednych 30 dni a toto aj potrebujem.
Kuknem ten link. Diky.