gawcio . 21 Napisano 6 Sierpnia 2013 Udostępnij Napisano 6 Sierpnia 2013 w Automatyczny backup bazy. Witam, mam skrypt, który mi tworzy kopie bazy Subiekta oraz Sello, a następnie kopiuje całość na dysk sieciowy. Chciałbym do niego dodać kasowanie plików starszych niż 7dni. Ma ktoś jakiś pomysł jak to dodać? @echo off @cls @echo ******************************************************************************* @echo * Backup database * @echo ******************************************************************************* @echo. @set Dir=D:\AutomaticBackup\ @set DbName1=** @set DbName2=** @set Now=%Time: =0% @set DateTime=%date:~0,4%%date:~5,2%%date:~8,2%_%Now:~0,2%%Now:~3,2%%Now:~6,2% @set BackupFile1=%DbName1%_%DateTime%.bak @set BackupPath1=%Dir%%BackupFile1% @set BackupFile2=%DbName2%_%DateTime%.bak @set BackupPath2=%Dir%%BackupFile2% osql -U** -P** -S (local)\insertgt -Q "BACKUP DATABASE %DbName1% TO DISK = '%BackupPath1%'" osql -U** -P** -S (local)\insertgt -Q "BACKUP DATABASE %DbName2% TO DISK = '%BackupPath2%'" COPY %BackupPath1% \\ZBOX\Dane\Backups\Insert\%BackupFile1% /Y COPY %BackupPath2% \\ZBOX\Dane\Backups\Insert\%BackupFile2% /Y Cytuj Link to postu
patrese 0 Napisano 6 Sierpnia 2013 Udostępnij Napisano 6 Sierpnia 2013 w Automatyczny backup bazy. http://www.pcworld.pl/news/356961/Jak.wyszukiwac.i.usuwac.stare.pliki.Windows.XP.Vista.7.html Tu masz wędkę... Cytuj Link to postu
gawcio . 21 Napisano 7 Sierpnia 2013 Autor Udostępnij Napisano 7 Sierpnia 2013 w Automatyczny backup bazy. Jest jeden problem w tym rozwiązaniu, nie usunę niczego z dysku sieciowego. Komenda działa tylko na maszynie lokalnej. Cytuj Link to postu
Ks. Robak 314 Napisano 14 Grudnia 2013 Udostępnij Napisano 14 Grudnia 2013 w Automatyczny backup bazy. Kasowanie backupów po dacie może być zdradliwe. Np. pojedziesz na wakacje na 2 tygodnie, przez ten czas żaden backup nie będzie wykonywany, wracasz, a tu ci kasuje wszystkie backupy,bo są starsze niż 7 dni i zostajesz z niczym. Osobiście stosuję inne rozwiązanie - zostawianie określonej ilości backupów, np. 15 ostatnich. Jako, że wykorzystuję tą metodę do kasowania backupów różnych programów na różnych platformach, zrobiłem sobie mały skrypt w PHP, dzięki czemu działa i pod windowsem i pod linuxem. Opiszę, dla osób zainteresowanych jak to zrobić pod windowsem: 1. Tworzymy na dysku folder, np. o nazwie Backup, a w nim foldery PHP i bin. Założenie jest takie, że do tego folderu Backup trafiają wszystkie zrobione przez nas backupy. Podsumowując, jeśli mamy już folder z backupami z Sello, tworzymy w nim tylko foldery PHP i bin. 2. Ściągamy z http://windows.php.net/download/ archiwum z PHP 5, w wersji dowolnej, może być najnowsza (ściągamy plik zip (binaria)). 3. Rozpakowujemy wszystko do folderu Backup\PHP 4. Uruchamiamy php.exe i patrzymy, czy nie wywala błędu. Jeśli wywala, prawdopodobnie należy doinstalować ze strony Microsoftu Microsoft Visual C++ Redistributable Package, w wersji 2010 lub wyższej, najlepiej próbować do skutku. 5. Jak już działa nam PHP tworzymy w folderze Backup\bin plik kasujStareBackupy_I01.php 6. Jak wiadomo backup Insertu tworzy dwa pliki o rozszerzeniach .I01 oraz .iar zatem potrzebować będziemy dwóch plików kasujących - do każdego z rozszerzeń. Oczywiście jak ktoś chce, może to sobie skopiować do jednego pliku PHP, ale ja używam osobnych dla każdego rozszerzenia, dla jasności i przenośności rozwiązania. 7. W pliku kasujStareBackupy_I01.php wpisujemy: <?php // Wyszukuje pliki w podanej sciezce, a nastepnie usuwa stare pliki, tak aby // pozostala zadana liczba najmlodszych plikow. error_reporting(E_ALL); ini_set("display_errors","stdout"); $sciezka= "D:\Backup\*.i01"; $ileOstatnichZachowac=15; $plikiZnalezione=glob($sciezka); $plikiZnalezioneiCzasy=array(); // czas_pliku=>nazwa_pliku foreach($plikiZnalezione as $plik){ if (is_file($plik)){ $plikiZnalezioneiCzasy[filemtime($plik)]=$plik; } } ksort($plikiZnalezioneiCzasy); $iloscPlikow=count($plikiZnalezioneiCzasy); if ($iloscPlikow>$ileOstatnichZachowac){ $usunDoIndexuNr=$iloscPlikow-$ileOstatnichZachowac; $i=0; foreach($plikiZnalezioneiCzasy as $czas=>$nazwa){ if ($i==$usunDoIndexuNr) break; else{ unlink($nazwa); $i++; } } } ?> następnie kopiujemy ten plik i nazywamy kopię kasujStareBackupy_IAR.php a w niej zmieniamy "$sciezka" na $sciezka= "D:\Backup\*.iar"; 8. W folderze Backup\bin tworzymy plik UruchomKasowanieBackupu.bat a w nim @echo off D: cd "D:\Backup\bin" ..\php\php.exe kasujStareBackupy_IAR.php ..\php\php.exe kasujStareBackupy_I01.php Oczywiście powyższe pliki zakładają, że macie backup na dysku D: w folderze Backup. W innym wypadku należy odpowiednio zmienić ścieżki w plikach. 9. Testujemy uruchamiając UruchomKasowanieBackupu.bat 10. Jeśli ładnie działa, tworzymy zadanie w Harmonogramie zadań, do uruchamiania np. raz dziennie pliku UruchomKasowanieBackupu.bat U mnie działa jak należy od bardzo dawna. Opis brzmi bardzo rozbudowanie, ale potrzebujemy tylko 3 plików. No i bardzo łatwo zmieniając ścieżkę stosować to rozwiązanie do każdego innego backupu, czy to w zipie, czy rarze, tarze...... Pozdrawiam Cytuj Link to postu
sellmax 0 Napisano 16 Grudnia 2013 Udostępnij Napisano 16 Grudnia 2013 w Automatyczny backup bazy. Kolego ja używam SQL BACKUP MASTER. Bardzo fajna aplikacja która nie zawodzi. Też ustawiasz która bazę i gdzie chcesz skopiować. Dysk lokalny, sieciowy, ftp itp. Polecam Pozdrawiam Cytuj Link to postu
Polecane posty
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.
Uwaga: Twój wpis zanim będzie widoczny, będzie wymagał zatwierdzenia moderatora.