Job / Praca

    Windows Server + GPO + LogIN/OFF Script + XCOPY Incremental Backup

    W dużym przedsiębiorstwie zadbanie o backup serwerów i stacji roboczych to dość istotne przedsięwzięcie. Użytkownicy raczej nie są świadomi, że powinni robić kopie tego co ważne. Po czym wnoszę? Po prawie 4 latach pracy jako Admin w dużej korpo, na palcach jednej ręki mogę policzyć osoby które zapytały się, jak lub gdzie mają zgrywać swoje dane lub poprosiły o kupno np dysku USB. Zatem dbamy. Serwery opiszę kiedy indziej – rsync, tar, certyfikaty do ssh, mt – raczej są znane i stosowane, dodatkowo można zastosować bonding do zwiększenia transferu, ale o tym jak już pisałem – kiedy indziej.

    Dzisiaj prosty sposób na użycie polityk Windows Serwera do kopiowania plików użytkowników na zdalny storage w mieszanym środowisku Windows 7 i Windows XP.

    Co to będzie robiło:
    – rozpoznaje jakiego używamy Windowsa :)
    – rozpoznaje czy katalog z nazwą użytkownika jest już stworzony , jeśli nie – tworzy.
    – w katalogach użytkownika dzieli na podkatalogi „dokumenty” i „pulpit” aby nie było bałaganu.
    – wyłącza potwierdzenia kopiowania plików na istniejące pliki
    – kopiuje także pliki ukryte
    – po pierwszym kopiowaniu nadpisuje tylko te które się zmieniły lub dodaje nowe.

    Skrypt BAT wygląda tak:

    IF EXIST %userprofile%\Documents GOTO BackupWin7

    :BackupWinXP

    IF EXIST \\storage\data\%username% GOTO TylkoKopia
    mkdir \\storage\data\%username%
    xcopy /Y "c:\Documents and Settings\%username%\Moje Dokumenty" \\storage\data\%username%\dokumenty /e /i /h /d
    xcopy /Y "c:\Documents and Settings\%username%\Pulpit" \\storage\data\%username%\pulpit /e /i /h /d
    :TylkoKopia
    xcopy /Y "c:\Documents and Settings\%username%\Moje Dokumenty" \\storage\data\%username%\dokumenty /e /i /h /d
    xcopy /Y "c:\Documents and Settings\%username%\Pulpit" \\storage\data\%username%\pulpit /e /i /h /d
    Goto EOF

    :BackupWin7
    IF EXIST \\storage\data\%username% GOTO TylkoKopia7
    mkdir \\storage\data\%username%
    xcopy /Y "c:\Users\%username%\Documents" \\storage\data\%username%\dokumenty /e /i /h /d
    xcopy /Y "c:\Users\%username%\Desktop" \\storage\data\%username%\pulpit /e /i /h /d
    :TylkoKopia7
    xcopy /Y "c:\Users\%username%\Documents" \\storage\data\%username%\dokumenty /e /i /h /d
    xcopy /Y "c:\Users\%username%\Desktop" \\storage\data\%username%\pulpit /e /i /h /d
    Goto EOF

    :EOF

    Zdalna lokalizacja to oczywiście storage – trzeba dopisać swój serwer lub IP gdzie ma się kopiować, lub dopisać do swojego DNS’a IP do maszyny która będzie nazywać się storage.

    /Y – wyłącza promptowanie o potwierdzenie nadpisania pliku
    /D – bez podania czasu działa jak incremental backup

    Pierwszy IF EXIST na podstawie katalogu Documents sprawdza czy używamy Windows XP czy 7. Następnie w odpowiednich blokach IF EXIST sprawdza czy jest na serwerze storage katalog z nazwą użytkownika, jeśli nie ma tworzy ją i zaczyna kopiowanie. Jeśli jest, po prostu zaczyna kopiowanie.

    Skrypt należy zapisać na serwerze w miejscu dla login lub logoff skryptów (odpowiedni katalog otworzy się przy dodawaniu skryptu do GPO).

    W zależności od potrzeb podczepiamy skrypt na logowanie lub wylogowywanie. Przy wylogowywaniu backup następuje zaraz po zakończeniu pracy. Jeśli użytkownik używa komputera stacjonarnego to jest to najlepsza opcja, wyłącza komputer, idzie do domu, komputer kopiuje to co trzeba i się wyłącza. Gorzej jeśli to laptop i użytkownik chce go zabrać i musi czekać, wtedy lepiej dać skrypt jako login. Skrypt odpali się jednocześnie z logowaniem i będzie działał w tle umożliwiając pracę. Można dodać @echo off na początku aby nie było widoczne stado latających plików :)

    Implementacja na Windows Serwer:

    1. gpmc.msc
    2. Wybieramy odpowiednie OU
    3. Prawy klawisz na OU – Create And Link GPO Here…
    4. Nadajemy nazwę
    5. Prawym klawiszem na nazwie
    6. Edit
    7. Wybieramy User Configuration
    8. Wybieramy Windows Settings
    9. Wybieramy Scripts(Login/Logoff)
    10. Dwa razy klikamy na wybranym skrypcie (login lub logoff)
    11. W Logon lub Logoff Properties Wybieramy Add..
    12. Wybieramy Browse.. i wybieramy skrypt do wykonania. (Jeśli go nie ma to właśnie w tej lokalizacji ma się znaleźć – trzeba go tam wkopiować).
    13. OK i zamykamy edycję GPO.
    14. W shellu uaktualniamy polityki – gpupdate /force

    Próbujemy się wylogować lub zalogować, efektem powinny być katalogi użytkowników na zdalnym storageu.

    root@storage:/data/samba# ll
    razem 44
    drwxrwxrwx 10 root root 4096 2012-01-17 14:12 ./
    drwxr-xr-x 7 root root 4096 2012-01-12 21:42 ../
    drwxr-xr-x 4 nobody nogroup 4096 2012-01-17 13:08 user1/
    drwxr-xr-x 4 nobody nogroup 4096 2012-01-17 13:49 user2/
    drwxr-xr-x 4 nobody nogroup 4096 2012-01-17 12:59 user3/
    drwxr-xr-x 4 nobody nogroup 4096 2012-01-17 13:56 user4/
    drwxr-xr-x 4 nobody nogroup 4096 2012-01-17 14:05 user5/
    drwxr-xr-x 4 nobody nogroup 4096 2012-01-17 13:49 user6/
    drwxr-xr-x 4 nobody nogroup 4096 2012-01-17 13:06 user7/
    drwxr-xr-x 4 nobody nogroup 4096 2012-01-17 14:12 user8/

    Po ciężkim dniu pracy, jeśli storage wyposażony jest w streamer można cały katalog /data/samba nagrać jako gotowy dzienny backup.
    Do skryptu oczywiście można dopisać dodatkowe katalogi w/g potrzeb.
    Raz na jakiś czas (np. miesiąc)warto skasować całą zawartość backupu, aby wykonał się pełen backup, ponieważ skrypt nie kasuje plików które były lokalnie, ale już ich nie ma.

    Related Posts with Thumbnails

    © odwiedź stronę http://maciejewski.org po więcej fajnych postów!

    CommentLuv badge

    Add your widget here