Kopia zapasowa – przydatna rzecz, warto ją mieć, jednak człowiek niezbyt często o tym pamięta gdy wszystko działa poprawnie. W momencie gdy pada system myśl o dacie ostatniego backupa jest pierwszą myślą świtającą w głowie.
Po co się tak stresować, po co polegać na zawodnej ludzkiej pamięci, lepiej napisac skrypt i niech wszystko się samo wykonuje.
Synchronizujemy katalogi zawierające dane do backupa z aktualnym stanem danych zbackupowanych
rsync -avrz $HOME/workspace/* $HOME/backup/source/workspace/ rsync -avrz $HOME/thunderbird/* $HOME/backup/source/mail/ rsync -avrz $HOME/gg/* $HOME/backup/source/gg
Następnie tworzymy archiwum zawierające bieżącą date
currDate=$(date +%Y-%m-%d); tar -cjf $HOME/backup/archive/backup-$currDate.tar.bz2 $HOME/backup/source/*
Tak przygotowane archiwum zgrywamy w bezpieczne miejsce (np. na inna maszynę), a następnie kasujemy tymczasowe archiwum.
rsync -avrz -e ssh $HOME/backup/archive/ bezpieczny@dysk:/home/users/xxx/backup/ rm $HOME/backup/archive/backup-$currDate.tar.bz2
Następnie należy jeszcze tylko zautomatyzować wywoływanie skryptu odpowiednim wpisem w cronie:
0 15 * * fri $HOME/prog/backup.sh
W tym przypadku skrypt będzie wywoływany co tydzień w piątek o godzinie 15, tak więc od tej pory co tydzień mogę spokojnie opuszczać stanowisko pracy na weekend będąc pewnym, że moje dane są bezpieczne.
****dodane****
Aby backup mógł wykonywać się automatycznie to połączenie z bezpieczny@dysk musi być trusted (łączenie z nim bez hasła). Jest wiele sposobów aby to wykonać np:
Na komputerze, z którego robisz backup wpisz:
ssh-keygen -t dsa
Naciśnij enter kilka razy.
W twoim katalogu domowym zostanie stworzony katalog .ssh zawierające potrzebne pliki. Następnie w konsoli wpisz polecenie
ssh bezpieczny@dysk ‘test -d .ssh || mkdir -m 0700 .ssh ; cat >> .ssh/authorized_keys && chmod 0600 .ssh/*’ < ~/.ssh/id_dsa.pub
Zostaniesz poproszony o wprowadzenie hasła na bezpieczny@dysk, wprowadź je. I to wszystko. Hasło zostanie zapamiętane.
Możesz teraz przetestować, powinieneś łączyć się przez ssh z bezpieczny@dysk bez podawania hasła.
ssh bezpieczny@dysk
Pytania:
$HOME – co to jest? Używam OS X i nie spotkałem się jeszcze z takim zapisem, czy można to zastąpić czymś innym?
„Następnie należy jeszcze tylko zautomatyzować wywoływanie skryptu odpowiednim wpisem w cronie”
A jak uruchomić Cron?
Sorry za takie pytania ale nie jestem mistrzem Terminala a pomysł bardzo mi się podoba :-)
Dzięki
$HOME wskazuje na Twój domowy katalog, nie zna m OS X ale musi tam tez byc jakas komenda zwracajaca katalog domowy.
Zreszta jak cos to mozesz po prostu z palca wpisac ta scieszke.
rsync -avrz -e ssh $HOME/backup/archive/ bezpieczny@dysk:/home/users/xxx/backup/
A czy przypadkiem to nie będzie „krzyczeć” za każdym razem o podanie hasła?