Aby umożliwić tworzenie kopii zapasowej bazy danych w według ustalonego przez nas harmonogramu należy stworzyć plik skrypt.sh, np. w lokalizacji /etc/kopia:
sudo mkdir /etc/kopia
Tworzymy folder o nazwie „kopia” w folderze /etc:
sudo cd /etc/kopia
Przechodzimy w drzewie katalogów do nowo utworzonego folderu i tworzymy plik:
sudo touch ./skrypt.sh
Nadajemy plikowi prawa do wykonywania oraz otwieramy plik programem do edycji plików tekstowych nano:
sudo chmod +x ./skrypt.sh
Następnie dopisujemy linijki do skryptu mające na celu utworzyć kopię tabeli z bazy danych oraz zapisanie w wybranej przez nas lokalizacji. Należy pamiętać, aby zamienić nazwę użytkownika na nazwę zapisaną w naszym systemie. Kolejna linijka tworzy kopię zapasową folderu i plików zawartych w podkatalogu /etc/ – jest to bardzo przydatne, gdy chcemy przywrócić ustawienia, które mieliśmy wcześniej w systemie. Należy również zwrócić uwagę na lokalizację pliku zawierającą polecenie `date +%d`, które dodaje do nazwy pliku obecny dzień, którego kopia będzie wykonywana. Jeżeli chcemy utworzyć plik z inną składnią możemy użyć innych argumentów, które widać po wydaniu polecenia:
date --help
Możesz utworzyć własny styl zapisu plików/folderów, używając np. następujących opcji. Pamiętaj jednak, że tworzenie kopii z danym dniem miesiąca umożliwi Ci powrót do kopii tylko z ostatniego miesiąca, ponieważ co miesiąc będzie się nadpisywał plik z tym samym dniem tygodnia, natomiast użycie pełnej daty doprowadzić może do szybkiego zapełnienia pamięci na dysku twardym. Tak więc w zależności od potrzeb należy dostosować styl tworzenia kopii do własnych potrzeb.
date +%d
06
date +%d-%a-%B
06-nie-lipiec
Przechodzimy więc do utworzenia skryptu:
sudo nano ./skrypt.sh
/usr/bin/mysqldump -h localhost -u root --password=MyPassword -B table_name > /home/MyUSER/table_name-`date +%d`.sql</p>
tar cvf /home/MyUSER/kopie/kopia_etc_`date +%d`.tar /etc/
nano /etc/crontab
Edytujemy plik odpowiedzialny za harmonogram zadań w systemie oraz dodajemy możliwość tworzenia kopii o ustalonej godzinie w pliku /etc/crontab. Pamiętaj o podmianie nazwy użytkownika MyUser na własną:
30 5 * * * MyUSER /etc/kopie/skrypt.sh
W tym przypadku kopia będzie tworzona codziennie o 5:30, jeżeli chcielibyśmy tworzyć kopie np. co 2 dni przez użytkownika szymon o 4:25 należałoby zastosować wpis:
25 4 */2 * * szymon /etc/kopie/skrypt.sh
Zachęcam do pozostawiania komentarzy (również tych krytycznych) oraz udostępniania artykułu 🙂