marek353 Napisano Listopad 13, 2016 Zgłoszenie Share Napisano Listopad 13, 2016 Chcę synchronizować kopię przyrostową systemu w Dropbox. Kopia może być wykonywana za pomocą rsync, skompresowana do pliku tgz i dla bezpieczeństwa plik kopii zaszyfrowany. Cały proces odbywa się w tle o ustalonej w crontab dowolnie porze dnia, tygodnia lub miesiąca. Jeżeli zauważyliście jakiś błąd lub inny mankament proszę o podzielenie się wątpliwościami Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
marek353 Napisano Listopad 30, 2016 Autor Zgłoszenie Share Napisano Listopad 30, 2016 Jak umieścić kopię systemu w chmurze? Moja propozycja dotyczy Dropbox`a. Aplikacja dostępna oczywiście w repozytoriach. Zainspirował mnie skrypt znaleziony w internecie wykonujący backup automatycznie w ustalonych indywidualnie interwałach czasowych. Ja zadanie crontab powierzyłem root`owi. Skrypt po czwartej kopii kasuje ostatnią najstarszą z nich. Z uwagi na to, że kopia ma być eksportowana na dysk zewnętrzny łączem internetowym zmodyfikowałem skrypt dodając opcję kompresji tar oraz syfrowanie pliku. Trochę wydłuża to czas ale chyba warto. A więc do dzieła: #!/bin/sh # Katalog Docelowy (bez ostatniego /) BACKUP_DIR=/home/user/bkp # Katalog źródłowy SOURCE_DIR=/* # Ilość przechowywanych kopii (1 kopia dziennie) NUM_BACKUP=4 # Jeżeli nie ma katalogu dla kopii to go tworzymy if [ ! -d $BACKUP_DIR ] then mkdir -p $BACKUP_DIR fi chmod -R 740 $BACKUP_DIR # Wywalamy najstarszy backup COUNT=0 for i in $(find "$BACKUP" -maxdepth 1 -type d | sort -Vr); do if [ "$i" != "$BACKUP" ] then COUNT=`expr $COUNT + 1` if [ $COUNT -gt $NUM_BACKUP ] then echo "Deleting: $i" rm -rf "$i" fi fi done # Pobieramy ostatni katalog backupu i=1 while [ $i -le 30 ]; do #statements LAST_BACKUP=$(date -I -d "$i day ago") if [ -d $BACKUP/$LAST_BACKUP ] then echo "Found newst backup: $LAST_BACKUP" break fi i=`expr $i + 1` done # echo "$LAST_BACKUP" CURRENT_BACKUP=$(date -I) IGNORE_DIR='--exclude=/dev --exclude=/proc --exclude=/tmp --exclude=/sys --exclude=/home --exclude=/lost&home' echo "rsync -avh --progress $SOURCE_DIR $BACKUP_DIR/$CURRENT_BACKUP" notify-send 'Start make Backup' rsync -ah $IGNORE_DIR --link-dest=$BACKUP/$LAST_BACKUP $SOURCE_DIR $BACKUP_DIR/$CURRENT_BACKUP notify-send 'End make Backup' Pozostałe opcje kompresji i szyfrowania wyodrębniłem ze skryptu dla przejrzystości. kompresujemy: #kompresja pliku CURRENT_BACKUP=$(date -I) tar -zcf $BACKUP_DIR/$CURRENT_BACKUP.tgz $BACKUP_DIR/$CURRENT_BACKUP szyfrujemy: #Szyrowanie CURRENT_BACKUP=$(date -I) openssl enc -aes-256-cbc -salt -in $BACKUP_DIR/$CURRENT_BACKUP.tgz -out $BACKUP_DIR/$CURRENT_BACKUP.tgz.enc -k "HASŁO" Proces ma być zautomatyzowany więc podaję hasło w poleceniu za opcją -k. Sam eksport do Dropbox to nic prostszego. Robimy jakiś folder dla zrzutu. Dropbox ma domyślnie opcję uruchamiania z systemem więc kiedy znajdzie coś nowego w przykładowym folderze backup zaczyna automatyczną synchronizację i o nic więcej nie musimy się martwić. Trochę to trwa w zależności od szybkości posiadanego łącza internetowego ale odbywa się w tle i nie przeszkadza. #Umieszczenie w dropbox CURRENT_BACKUP=$(date -I) cp $BACKUP_DIR/$CURRENT_BACKUP.tgz.aes /home/user/Dropbox/backup Proces odzyskiwania systemu po ewentualnej awarii można wykonać całkowicie z linii poleceń w trybie ratunkowym lub live-CD albo innego systemu po z-chrootowaniu. Odszyfrowanie: openssl enc -aes-256-cbc -d -in arch.tgz.enc -out file.tgz Rozpakowanie: tar -zxvf nazwa_archiwum.tgz To byłoby na tyle. Ja mimo wszystko mam wątpliwość czy procesy kompresji i szyfrowania a potem powrót do stanu pierwotnego nie spowoduje błędu, który sens całości postawi pod znakiem zapytania? Proszę o ewentualne uwagi. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się