backupList 3.4.0.PL - to program przeznaczony na Debiana, Ubuntu, Linux Minta i innych z rodziny Linuxowatych, mający za zadanie tworzenie kopii zapasowych ustawień MikroTików (*.backup, *.rsc) oraz Ubiquiti (*.cfg). Data wydania: 16.07.2014r. Program przeznaczony dla MikroTik v2.X - v6.X; Ubiquiti IEEE802.11a/b/g Solutions, airMAX ISP Solutions, airFiber Autor: szemek Strona domowa: http://kazuko.pl Pobranie programu jest równoważne z nierozpowszechnianiem jego publicznie (mam tu na myśli wszystkim znane fora, hostingi plików itp.). ============================== # Uwagi odnośnie użytkowania: ============================== # Zaleca się uruchamianie programu z poziomu roota w przypadku domyślnych ścieżek do konfiguracji oraz bazy sprzętu sieciowego, inaczej program będzie krzyczał błędy o braku dostępu do plików i katalogów. # Wszystkie tworzone pliki, katalogi mają chmod 0700, czyli dostępne dla użytkownika tworzącego je. # Przy stosowaniu programu do RB112 oraz innych z podobną, tak niską wydajnością może to spowodować zawieszenie Routerboarda. # Jeśli w trakcie procesu tworzenia kopii konfiguracji, wciśniesz CTRL+C proces będzie anulowany, ale pozostawi po sobie śmieci, więc czasem lepiej pozostawić w spokoju tak, aby proces sam się skończył i sam posprzątał. # Mogą wystąpić błędy przy tworzeniu kopii zapasowej, jeśli czas na MikroTiku nie będzie zgodny z czasem na systemie wykonującym kopie zapasową. # Zalecane jest ustawienie czasu na MikroTiku, ale nie koniecznie, głównie chodzi tu o Routerboardy o słabej wydajności lub o bardzo dużych wielkościach pliku kopii zapasowej. Program wykonujący oczekuje na wykonanie kopii, jeśli czas jest dłuższy niż przewidziany to program porównuje czasy i odnośnie jaki wynik wyjdzie tak dalej postępuje. ============= # Wymagania: ============= # System operacyjny: Debian, Ubuntu, Mint Linux lub inny z rodziny Linuxowatych. # Język programowania: perl & moduły: - DBI, Socket - Getopt::Long - Archive::Tar - Term::ANSIColor qw(:constants) - POSIX qw/strftime/, POSIX qw/mktime/ - Cwd, Config::IniFiles - Expect # Inne: client ssh, client sftp. # fping - sprawdza czy urządzenie jest dostępne # hping3 - sprawdza czy otwarty port ssh ======================================================================================= # Instalacja na debianie lub innych systemów opartych na debianie (Ubuntu, Linux Mint): ======================================================================================= # Z poziomu roota wpisujemy w terminal: $: aptitude install openssh-client ssh $: aptitude install perl $: aptitude install hping3 fping $: aptitude install libdbi-perl # mod perl: DBI $: aptitude install libconfig-inifiles-perl # mod perl: Config::IniFiles $: aptitude install libtest-expect-perl # mod perl: Expect $: aptitude install libarchive-ar-perl # mod perl: Archive::Tar ======================== # Pierwsze uruchomienie: ======================== $: perl ./backupList.pl # Podczas pierwszego uruchomienia zostaną utworzone następujące pliki: - /etc/backupConfig.ini (plik z konfiguracją programu, danymi logowana) - /etc/backupBaza.ini (plik z bazą urządzeń sieciowych) ================ # Konfiguracja: ================ # Edytujemy jakimś ulubionym edytorem plik backupBaza.ini. gedit /etc/backupBaza.ini gedit /etc/backupConfig.ini lub nano /etc/backupBaza.ini nano /etc/backupConfig.ini # Każda sekcja to kolejne urządzenie sieciowe. Sekcja nie może być taka sama. # Przykładowa baza sprzętu sieciowego (/etc/backupBaza.ini): ;[mikrotik] ;host = 192.168.88.1 ; Adres IP, domena, podsieć lub zakres adresów IP ;port = 22 ; Port ssh ; default: 22 ;login = admin ; Login ; default: admin ;haslo = ; Hasło ;nadpisz = nie ; Czy nadpisywać konfiguracje? (tak/nie) ; default: nie ;key = nie ; Czy wykorzystać logowanie po przez klucz DSA? (tak/nie) ; default: nie ;keydsa = ~/.ssh/id_dsa ; Gdzie znajduje się plik z kluczem DSA? ; default: ~/.ssh/id_dsa ;keyhaslo = ; Passphrase dla keya DSA ;docel = ./configi ; Gdzie zapisywać kopie zapasowe? ; default: ./configi ;conf = all ; Jaki robić rodzaj kopii zapasowej (rsc/backup/cfg/all) ; default: all ; ; rsc, backup, all - Mikrotik; cfg, all - Ubiquiti; all - wszystkie możliwe ;umdb = nie ; Czy tworzyć kopie bazy User Manager (*.umb)? (tak/nie) ; default: nie ;encrypt = nie ; Czy ma być szyfrowany backup binarny ; default: nie ;enhaslo = ; Hasło do zaszyfrowanego binarnego backupu, ; ; - gdy encrypt=tak, a enhaslo jest pusty to backup nie jest szyfrowany ; ;[ubiquiti] ;host = 192.168.1.20 ; Adres IP, domena, podsieć lub zakres adresów IP ;port = 22 ; Port ssh ; default: 22 ;login = ubnt ; Login ; default: admin ;haslo = ubnt ; Hasło ;nadpisz = nie ; Czy nadpisywać konfiguracje? (tak/nie) ; default: nie ;key = nie ; Czy wykorzystać logowanie po przez klucz DSA? (tak/nie) ; default: nie ;keydsa = ~/.ssh/id_dsa ; Gdzie znajduje się plik z kluczem DSA? ; default: ~/.ssh/id_dsa ;keyhaslo = ; Passphrase dla keya DSA ;docel = ./configi ; Gdzie zapisywać kopie zapasowe? ; default: ./configi ;conf = all ; Jaki robić rodzaj kopii zapasowej (rsc/backup/cfg/all) ; default: all ; rsc, backup, all - Mikrotik; cfg, all - Ubiquiti; all - wszystkie możliwe dla systemu # Plik backupConfig.ini zawiera 3 sekcje: [config], [lms-stacja], [lms-klient]. - [config] - konfiguracja wykorzystywana przy pobieraniu danych z LMSa jak i z pliku backupBaza.ini - [lms-stacja] - wykorzystywana przy tworzeniu kopii zapasowej dla osprzętu - [lms-klient] - wykorzystywana przy tworzeniu kopii zapasowej dla sprzętu klienckiego # Przykładowa konfiguracja (/etc/backupConfig.ini): [config] ;logi = nie ; Czy zapisywać komunikaty do pliku? (tak/nie) ; default: nie ; Loguje error, done do pliku? ;logi_dir = /var/log ; Ścieżka gdzie mają być zapisywane komunikaty ; default: /var/log ;dirs = nie ; Czy zapisywać kopie zapasową w katalogu: ; default: nie ; CONFIGI/rok/miesiac/ (/configi/2012/09/); ;hping_binary = /usr/sbin/hping3 ; Ścieżka do programu hping ; default: /usr/sbin/hping3 ;fping_binary = /usr/bin/fping ; Ściezka do programu fping ; default: /usr/bin/fping [lms-stacja] ;port = 22 ; Port ssh ; default: 22 ;login = admin ; Login ; default: admin ;haslo = ; Hasło ;nadpisz = nie ; Czy nadpisywać konfiguracje? (tak/nie) ; default: nie ;key = nie ; Czy wykorzystać logowanie po przez klucz DSA? (tak/nie) ; default: nie ;keydsa = ~/.ssh/id_dsa ; Gdzie znajduje się plik z kluczem DSA? ; default: ~/.ssh/id_dsa ;keyhaslo = ; Passphrase dla keya DSA ;docel = ./configi ; Gdzie zapisywać kopie zapasowe? ; default: ./configi ;conf = all ; Jaki robić rodzaj kopii zapasowej (rsc/backup/cfg/all) ; default: all ; rsc, backup, all - Mikrotik; cfg, all - Ubiquiti; all - wszystkie możliwe ;umdb = nie ; Czy tworzyć kopie bazy User Manager (*.umb)? (tak/nie) ; default: nie ;encrypt = nie ; Czy ma być szyfrowany backup binarny ; default: nie ;enhaslo = ; Hasło do zaszyfrowanego binarnego backupu, ; ; - gdy encrypt=tak, a enhaslo jest pusty to backup nie jest szyfrowany [lms-klient] ;port = 22 ; Port ssh ; default: 22 ;login = admin ; Login ; default: admin ;haslo = ; Hasło ;nadpisz = nie ; Czy nadpisywać konfiguracje? (tak/nie) ; default: nie ;key = nie ; Czy wykorzystać logowanie po przez klucz DSA? (tak/nie) ; default: nie ;keydsa = ~/.ssh/id_dsa ; Gdzie znajduje się plik z kluczem DSA? ; default: ~/.ssh/id_dsa ;keyhaslo = ; Passphrase dla keya DSA ;docel = ./configi ; Gdzie zapisywać kopie zapasowe? ; default: ./configi ;conf = all ; Jaki robić rodzaj kopii zapasowej (rsc/backup/cfg/all) ; default: all ; rsc, backup, all - Mikrotik; cfg, all - Ubiquiti; all - wszystkie możliwe dla systemu ;umdb = nie ; Czy tworzyć kopie bazy User Manager (*.umb)? (tak/nie) ; default: nie ;encrypt = nie ; Czy ma być szyfrowany backup binarny ; default: nie ;enhaslo = ; Hasło do zaszyfrowanego binarnego backupu, ; ; - gdy encrypt=tak, a enhaslo jest pusty to backup nie jest szyfrowany ================ # Uruchomienie: ================ ## Uruchomienie jednorazowe: # Z poziomu użytkownika, bądź roota wpisujemy w terminalu: perl /ścieżka/do/katalogu/w/którym/znajduje/się/program/backupList.pl [Enter] ## Uruchomienie programu codziennie o 23:00 w cronie: crontab -e [Enter] # Dopisujemy: 00 23 * * * perl /ścieżka/do/katalogu/w/którym/znajduje/się/program/backupList.pl -q # zapisywanie CTRL + o # wychodzenie CTRL + x ## więcej ustawień: perl /ścieżka/do/katalogu/w/którym/znajduje/się/program/backupList.pl --help ==================== ## Wydania / wersje: ==================== ========================== # v3.4.0 PL [16-07-2014]: ========================== - bakupe bazy User Manager (*.umb) ========================== # v3.3.1 PL [15-06-2014]: ========================== - Usunięcie błędu interpretacji 192.168.0.1-10 - Możliwość wpisania w pole host, hostów po odzieleniu spacją - 192.168.0.2 192.168.0.5 192.168.0.10 ========================== # v3.3.0 PL [05-06-2014]: ========================== - Wsparcie dla binarnych szyfrowanych kopii zapasowych od Mikrotik v6.13 - Możliwość wpisania w pole host podsieci IP lub zakresu adresów IP - 192.168.0.0/24 - 192.168.0.0/255.255.255.0 - 192.168.0.1-10 - 192.168.0.1-192.168.0.10 ========================== # v3.2.1 PL [22-03-2014]: ========================== - Wsparcie dla wyższych wersji perla niż v5.10.1, - Usunięcie przestarzałego sposobu wykorzystania array. (Using an array as a reference is deprecated at ./backupList.pl line ***.). ========================== # v3.2.0 PL [14-09-2013]: ========================== - Funkcja sprawdzająca czy jest nowa wersja, - Debuger. ========================== # v3.1.0 PL [08-09-2013]: ========================== - Dodano funcję pobierana danych (IP) z bazy LMS (stacje/kliencji) - Usunięcie funkcji pozostawiającej kopie zapasową na Mikrotiku - Zmiana argumentów, w tym możliwość podania alternatywnej ścieżki do pliku z bazą sprzętu oraz konfiguracją - Automatyczne tworzenie /etc/backupConfig.ini oraz /etc/backupBaza.ini przy pierwszym uruchomieniu programu ========================== # v3.0.2 PL [17-08-2013]: ========================== - Poprawiono wsparcie dla starszych wersji openssh-client, gdzie nie było w sftp argumentu portu (sftp -P 22) - Dodano możliwość robienia kopii zapasowej sprzętu Ubiquiti (*.cfg) Wady, które dalej nie zostały weliminowane: - brak możliwości uruchomienia programu pod systemem Windows oraz MacOS. UWAGA! Przy stosowaniu programu do RB112 oraz innych z podobną, tak niską wydajnością może to spowodować zawieszenie Routerborda. ========================== # v2.0.0 PL [...]: ========================== Ta wersja zagineła w akcji. ========================== # v1.2.0 PL [28-07-2012]: ========================== Usunięte problemy: Gdy przy tworzeniu kopii pozostawiłeś kopie zapasową, a następnie chciałeś zrobić jeszcze raz, ale już bez pozostawiania, wtedy kopia zapasowa w MikroTiku została usuwana. Gdy zmieniłeś urządzenie, a IP zostało bez zmian nie chciało wykonać kopii. Nowe funkcje: - Możliwość wykonania kopii zapasowej tylko na jednym urządzeniu (nie działa z cronem): perl MTbackuperList_v*.pl MT_nazwa perl MTbackuperList_v*.pl nazwarun perl MTbackuperList_v*.pl 192.168.88.1 perl MTbackuperList_v*.pl cron MT_nazwa perl MTbackuperList_v*.pl cron nazwarun perl MTbackuperList_v*.pl cron 192.168.88.1 ========================== # v1.1.0 PL [10-03-2012]: ========================== Możliwość wyboru jaką kopie zapasową chcemy wykonać. Są do wyboru trzy możliwości (domyślna to all): rsc - plik tekstowy (w postaci skryptu) backup - plik binarny all - rsc oraz backup Kolejna poprawka odnośnie problemu z wyznaczeniem ścieżki do programu. Poprzednie baza MikroTików jest zgodna z obecną wersją programu. Zmiana formatu daty pliku kopii zapasowej (obecna: rrrr_mm_dd-gg_mm_ss, poprzednia: dd_mm_rrrr-gg_mm_ss). # Uwagi odnośnie użytkowania: # Mogą wystąpić błędy przy tworzeniu kopii zapasowej, jeśli czas na MikroTiku nie będzie zgodny z czasem na systemie wykonującym kopie zapasową. Zalecane jest ustawienie czasu na MikroTiku, ale nie koniecznie, głównie chodzi tu o Routerboardy o słabej wydajności lub o bardzo dużych wielkościach pliku kopii zapasowej. Program wykonujący oczekuje na wykonanie kopii, jeśli czas jest dłuższy niż przewidziany to program porównuje czasy i odnośnie jaki wynik wyjdzie tak dalej postępuje. ========================== # v1.0.1 PL [13-02-2012]: ========================== Usunięcie problemu z wyznaczeniem ścieżki do programu. ========================== # v1.0.0 PL [01-01-2012]: ========================== Zalety/funkcje: - logi błędów i poprawnych wykonań kopii zapasowej (domyślnie: nie), - możliwość pozostawienia kopii zapasowej na MikroTiku (domyślnie: nie), w przypadku wykonywanie przez cron zawsze będzie nie. Tak, aby przypadkowo nie zapełnić pamięci MikroTika. - możliwość nadpisana kopii zapasowej (domyślnie: nie), - logowanie się na MikroTika po haśle, bądź kluczu DSA (domyślnie: hasło), - możliwość zapisania kopii zapasowej w każdym miejscu na komputerze, mającym uprawnienia do zapisu i odczytu przez użytkownika wykonującego program (domyślnie: ./configi, gdzie ./ - oznacza katalog gdzie znajduje się program), - każde ustawienie, bez pierwszego, jest ustalane osobno, - wszystkie wykonywane czynności są wyświetlane na ekranie terminalu, oprócz wykonywania programu przez cron, - każde polecenie jest wykonywane krokowo (po kolei) tak, aby nie obciążyć mniej wydajnych MikroTików, - paczkowanie oraz kompresowanie logów. - obsługiwane wersje MikroTika to v3.xx, v4.xx, v5.xx. Wady: - brak możliwości uruchomienia programu pod systemem Windows oraz MacOS. UWAGA! Przy stosowaniu programu do RB112 oraz innych z podobną, tak niską wydajnością może to spowodować zawieszenie Routerborda.