Automatyczne kopiowanie: Skrypt Bash do tworzenia i wysyłania kopii zapasowych bazy danych MySQL i Katalogów na Serwer FTP

Automatyczne kopiowanie: Skrypt Bash do tworzenia i wysyłania kopii zapasowych bazy danych MySQL i Katalogów na Serwer FTP

Oto skrypt w Bashu, który spełnia Twoje wymagania. Załóżmy, że masz pliki bdbackup.txt i catalogbackup.txt, zawierające odpowiednio listę baz danych MySQL do zbackupowania oraz listę katalogów do zbackupowania.

Skrypt (backup_script.sh):

#!/bin/bash

# Ścieżki do plików z listami baz danych i katalogów
PLIK_BAZY="bdbackup.txt"
PLIK_KATALOGI="catalogbackup.txt"

# Adres FTP (sftp) do wysłania kopii
ADRES_FTP="user@host:/sciezka/do/katalogu"

# Pobieranie aktualnej daty i godziny w formacie YYYYMMDD_HHMMSS
DATA_CZAS=$(date +"%Y%m%d_%H%M%S")

# Kopiowanie baz danych MySQL
while IFS= read -r BAZA; do
  NAZWA_PLIKU="${BAZA}_${DATA_CZAS}.zip"
  mysqldump -u użytkownik -p'hasło' "$BAZA" | zip > "$NAZWA_PLIKU"
done < "$PLIK_BAZY"

# Kopiowanie katalogów przy użyciu tar i gzip
while IFS= read -r KATALOG; do
  NAZWA_PLIKU="${KATALOG}_${DATA_CZAS}.tar.gz"
  tar czf "$NAZWA_PLIKU" "$KATALOG"
done < "$PLIK_KATALOGI"

# Wysyłanie kopii na serwer FTP (sftp)
lftp -e "put *.zip *.tar.gz; bye" "$ADRES_FTP"

Zmodyfikuj parametry według własnych potrzeb, takie jak dane logowania do bazy danych MySQL i odpowiednie ścieżki na serwerze FTP.

Pamiętaj, aby nadać skryptowi prawa do wykonania:

chmod +x backup_script.sh

Skrypt ten najpierw kopiuje baz danych MySQL i katalogów, a następnie tworzy pliki zip i tar.gz z odpowiednimi nazwami zawierającymi datę i czas wykonania kopii. Na koniec wysyła te pliki na wskazany serwer FTP za pomocą protokołu sftp.

Oto linia, którą możesz dodać do pliku crontab, aby skrypt był uruchamiany o 3:00 każdego dnia:

<code>0 3 * * * /sciezka/do/backup_script.sh</code>

Aby to zrobić, uruchom poniższą komendę w terminalu:

<code>crontab -e</code>

Dodaj linijkę powyżej do pliku crontab, zapisz go i zakończ edycję. Teraz skrypt będzie uruchamiany automatycznie o 3:00 każdej nocy. Upewnij się, że ścieżka /sciezka/do/backup_script.sh w linii crontab jest właściwie skonfigurowana dla Twojego systemu.