Chciałbym tylko poinformować, że w końcu udało mi się dopisać te parę linijek kodu. Czasu mam mało, ale wziąłem pod uwagę requesty z maili jakie ostatnio się pojawiały. Wszystkie kręciły się wokół tych samych aspektów działania narzędzia – głównie dwóch.
zmiany:
- Powiadomienia mailowe o zakończonym backupie – gałąź <EmailSettings> w konfiguracji. Było kilka pomysłów jak zrealizować ten pomysł a jednym z nich było śledzenie błędów i wysyłka powiadomienia gdy takowy wystąpi. Wydało mi się to kiepskim rozwiązaniem, ponieważ skrypt operuje na wielu różnych komponentach systemu i elementów trzecich (7-zip), i potencjalnie łatwo sobie wyobrazić sytuację, że jakiegoś błędu nie obsłużę. Wolałem pójść najłatwiejszą ścieżką i po prostu wysłać maila z logiem w załączniku do ewentualnej analizy, czy wszystko jest w porządku. Tutaj pojawiła się kolejna wątpliwość. W logu mogą pojawiać się potencjalnie krytyczne informacje, takie jak ścieżki do plików, adresy udziałów sieciowych itp., dlatego dałem możliwość zadecydowania czy chcemy log w załączniku czy nie.
- Rolowanie lokalnych kopii zapasowych – <outputFolder itemsToKeep. Funkcja, której brakowało nawet mi. W pierwszej wersji narzędzia założyłem, że co jakiś czas po prostu będę czyścił folder z kopiami zapasowymi i to mi wystarczy. Niestety ilość kopii, jak również ich rozmiar spowodował, że po kilku tygodniach narzędzie zwracało błąd bo nie było gdzie zapisywać danych. Dorobiłem więc prosty mechanizm, który pozwala zdefiniować ile plików z kopią ma zostać w folderze w którym zapisywane są lokalnie <target – path>. Tu należy uważać. Jeśli dla kilku zadań zdefiniujemy ten sam folder, liczy się liczba wszystkich plików w folderze a nie plików danej kopii. Czyli jeśli mamy 3 zadania backupu i zdefiniujemy parametr na 3 to ostatecznie w folderze będzie po jednej kopii każdego typu a nie po 3 pliki danego typu. Dlatego bezpieczniej jest określać różne
<target – path> dla każdej kopii. Wtedy w każdym z tych folderów będziemy mieli tyle kopii, ile określimy w parametrze <outputFolder – itemsToKeep>.