Przejdź do głównej zawartości

Kopia zapasowa do Yandex.Disk przez davfs



Kopia zapasowa to ważne zadanie, które należy wykonać na dowolnym serwerze, na którym znajdują się ważne dane. Można go rozwiązać różnymi metodami. W przypadku dużych systemów jest to odpowiednie oprogramowanie, które może tworzyć kopie zapasowe bez zauważalnego opóźnienia serwera.

W przypadku mniejszych systemów (jeden serwer z tuzin witryn) problem można rozwiązać za pomocą prostszych metod i za pomocą samodzielnie napisanych skryptów, które kopiują dane, na przykład na Yandex.Disk. Zaletą jest to, że nie musisz wydawać pieniędzy na dodatkowy serwer (lub specjalną przestrzeń do przechowywania kopii zapasowych, którą oferują niektórzy dostawcy). A dziesięć gigabajtów przydzielonych przez Yandex może wystarczyć.



Możesz zarejestrować dedykowane konto w Yandex lub możesz użyć skrzynki pocztowej w swojej domenie, która działa w Poczcie dla domen.

Treść artykułu:

Czego potrzebujesz do takiej kopii zapasowej?

Wystarczy pakiet davfs2, przez który sekcja webdav zostanie zamontowana w systemie.

  # aptitude install davfs2 

Ustawianie davfs

Jego pliki konfiguracyjne znajdują się w folderze / etc / davfs2. Plik davfs.conf zawiera wszystkie dostępne ustawienia z wartościami domyślnymi. Na razie go nie dotkniemy.



Drugi plik jest interesujący - sekrety zawierające loginy, hasła, ustawienia proxy i certyfikatu. Dokładniej, w sekcji "Linia poświadczeń", w której należy zarejestrować wpis w formularzu:

  / mnt / yadisk vashemail@yandex.ru vashparol 

Pierwszy argument to punkt montowania, drugi to twoja poczta Yandex (logowanie), trzecia to hasło. To wszystko, co jest wymagane do określenia.

Tworzenie punktu montowania i wprowadzania w / etc / fstab

Sekcja musi być gdzieś zamontowana. Jak widać w powyższym przykładzie, jest to katalog / mnt / yadisk, który można zastąpić własnym. Utwórz go tylko z uprawnieniami roota:


  # mkdir -m 0700 / mnt / yadisk 

Następnie edytujemy plik / etc / fstab, wpisując tam linię:

  https://webdav.yandex.ru / mnt / yadisk davfs noauto, noexec, nosuid, file_mode = 0600, dir_mode = 0700 0 0 

Tutaj pierwszy to adres do połączenia z Yandex.Disk, drugi to punkt podłączenia, trzeci to typ systemu plików, czwarty to opcje.

  • noauto - wyłącza montowanie systemu plików po uruchomieniu systemu operacyjnego lub poleceniem mount -a
  • noexec, nosuid - wyłącza uruchamianie plików wykonywalnych i instalację bitów suid / sgid na plikach i folderach.
  • file_mode / dir_mode - ustawia uprawnienia dla plików i folderów, odpowiednio, tylko dla właściciela (root, jeśli żaden użytkownik i grupa nie jest określony w parametrach uid i gid

Dlaczego nie zamontować partycji automatycznie? Jest potrzebny tylko podczas tworzenia kopii zapasowej. A po tym: a) zawiesi się bezczynnie, b) zużyje niewielki ruch, synchronizując zawartość.

Po zapisaniu fstab możesz sprawdzić, czy partycja jest poprawnie zamontowana za pomocą polecenia mount / mnt / yadisk .

Skrypt zapasowy

Mam kilka witryn na serwerze. Zasadniczo zawartość zmienia się nieczęsto i można korzystać z metody pełnego kopiowania.

W tym celu napisał mały prosty skrypt na bash.

  #! / bin / bash
 # Inicjalizuj zmienne
 BACKUPDIR = "/ var / tmp" # Katalog kopii zapasowych
 TMPDIR = "backup" # Folder tymczasowy dla kopii plików, który jest następnie archiwizowany
 YADISK = "/ mnt / yadisk" # Punkt montowania
 SQLDIR = "sqldb" # Folder dla baz danych
 SQLUSER = "root"
 SQLPASS = "12345"
 TIMEY = $ (data +% F_% H% M% S) # Czas w formacie YEAR-MONTH-DAY_godzinie minuty na sekundę
 # Sprawdzamy dostępność folderu dla baz danych, jeśli nie istnieje, tworzone są wszystkie potrzebne.
 jeśli [!  -d "$ BACKUPDIR / $ TMPDIR / $ SQLDIR"];  następnie
 mkdir -p -m 0700 "$ BACKUPDIR / $ TMPDIR / $ SQLDIR"
 fi
 # Połącz Yandex.Disk
 zamontuj "$ YADISK"
 # Utwórz kopie zapasowe
 Baza danych # 1
 cd "$ BACKUPDIR / $ TMPDIR / $ SQLDIR"
 dla bazy danych w `mysql -s -r -e 'POKAŻ BAZY DANYCH' |  grep -v Baza danych |  grep -v informacja_schemat |  grep -v performance_schema |  grep -v mysql`;
 wykonaj mysqldump "$ database"> "$ database" .sql; done
 # 2 Wszyscy użytkownicy
 cd /
 tar -cf "$ BACKUPDIR" / "$ TMPDIR" /home.tar strona główna
 # 3 ustawienia systemowe
 tar -cf "$ BACKUPDIR" / "$ TMPDIR" /system.tar etc var / spool / cron / crontabs
 # Pakujemy w archiwum bzip
 cd "$ BACKUPDIR"
 kopia zapasowa tar -cjf - "$ TIMEY" .tbz2 "$ TMPDIR"
 Kopia zapasowa mv - "$ TIMEY" .tbz2 "$ YADISK"
 # Usuń pliki tymczasowe
 rm -r "$ TMPDIR"
 # Usuń stare archiwa
 znajdź "$ YADISK" -typ f -mtime +4 |  xargs rm -f
 # Wyłącz Yandex.Disk
 umount "$ YADISK"
 wyjdź 1 

Biega dwa razy dziennie na koronie. Tworzy kopie baz danych, niektóre ustawienia systemowe, a także dane użytkownika (witryny). Częściowo składa się ze skryptu do kopiowania tylko wcześniej opublikowanych baz danych .

Czasami w syslog może pojawić się błąd:

  mount.davfs: otwarte pliki przekraczają maksymalny rozmiar pamięci podręcznej o 50 MiBytów 

W tym przypadku montujemy sekcję Yandex.Disk i widzimy, co znajduje się w folderze lost + found. Oczyścimy to. Następnie wyczyścimy zawartość folderu / var / cache / davfs2 /.



Jak oceniasz artykuł?
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (Brak ocen jeszcze)
Ładowanie ...

Dodaj komentarz

Twój e-mail nie zostanie opublikowany.