Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem 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.

Předmět Autor Datum
no, nelehký úkol vzal na sebe jsi (TM Yoda) ftp klient ve windows umí režim dávky (parametr -s:soub…
touchwood 24.01.2012 13:04
touchwood
Nebo pokud má v PC PowerShell (ve Vista a 7 v základu) tak proč se nenaučit používat jej :-)
martin.developer 24.01.2012 13:06
martin.developer
to je přesně hlavní problém PS - není všude (až XPčka nebudou, pak to bude jasná volba). Navíc mi ta…
touchwood 24.01.2012 13:08
touchwood
Je faktem, že PS má zřejmě lehce složitější syntaxi. Ale zase na druhou stranu, to není zas tak hroz…
martin.developer 24.01.2012 13:27
martin.developer
PS mám, keďže sa jedná o Win 2008.
drevokocur 24.01.2012 13:45
drevokocur
Pre príklad, momentálne to mám takto pri sql dumpe: REM @echo off for /f "tokens=1" %%i in ('date…
drevokocur 24.01.2012 15:58
drevokocur
no dobře, ale jak budeš ty soubory mazat na ftp? edit: to vykousávání data je dost nešikovné. Inspi…
touchwood 24.01.2012 16:09
touchwood
Nemusím mazať. Chcem to tak spraviť, že súbory budú mať názvov system_den1.zip system_den2.zip ...at… poslední
drevokocur 25.01.2012 14:52
drevokocur

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).

Je faktem, že PS má zřejmě lehce složitější syntaxi. Ale zase na druhou stranu, to není zas tak hrozné ne?

$EventLog = new-object System.Diagnostics.EventLog('Application');
$EventLog.MachineName = "MARTIN-PC";
$Filter = "Outlook";

$Events = $EventLog.entries;
Clear-Host;
$Events | Where-Object {$_.Source -eq $Filter} | Format-Table -auto;

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.

Zpět do poradny Odpovědět na původní otázku Nahoru