dla myślących
Tworzenie i przywracanie strony podczas jej budowania w Docker - skrypt bash
#!/bin/bash # Skrypt do tworzenia i przywracania kopii witryn podczas ich budowania. # Skrypt ma za zadanie wykonanie kopii zapasowej strony w danym momencie. # Jeśli dalsza budowa strony nie powiedzie się, możesz przywrócić działającą kopię strony. # Obsługa ↓ # Wykonaj kopię: ./kz.sh zapis # Przywróć z kopii stronę: ./kz.sh odzyskaj # Zobacz komendę do manualnego zapisania kopii: ./kz.sh zrzut # Zobacz komendę do manualnej kopii: ./kz.sh odczytaj # zmiennne domena="" kontener_baza="" kontener_pliki="" # stałe data="$(date +%F)" mysql="wordpress" mysql_plik="kopia_zapasowa_$(date +%s)$(date +%s | base64).sql" sciezka="/home/juzek/$domena/" # operacja czynnosc=$1 # co wykonać? case $czynnosc in "zapis"|"z"|"Z") # wykonaj kopię # utworzenie katalogu i=0 while [ -d "${data}_$i" ]; do ((i++)) done ostatni="${data}_$i" mkdir $ostatni echo "Zrzut bazy" docker exec $kontener_baza /usr/bin/mysqldump -u$mysql --password=$mysql $mysql > $ostatni/$mysql_plik echo "Kopia →" docker run --rm --volumes-from $kontener_pliki -v $sciezka/$ostatni:/mnt instrumentisto/rsync-ssh rsync -a /var/www/html/ /mnt/ baza=$ostatni/kopia_zapasowa_*.sql if [ -s $baza ] then echo "|" $ostatni "|" "OK" fi ;; "odzyskaj"|"o"|"O") # przywróć kopię read -p "Potwierdz (t): " -n 1 -r if [[ $REPLY =~ ^[t]$ ]] then echo "" ostatni="$(ls -vd */ | tail -1)" echo "Kopia ←" $ostatni docker run --rm --volumes-from $kontener_pliki -v $sciezka/$ostatni:/mnt instrumentisto/rsync-ssh rsync -a --delete --exclude 'kopia_zapasowa_*.sql' /mnt/ /var/www/html/ echo "Odzykanie bazy" cat $ostatni/kopia_zapasowa_*.sql | docker exec -i $kontener_baza /usr/bin/mysql -u$mysql --password=$mysql $mysql fi ;; "zrzut"|"zz"|"ZZ") # wyświetl komendę wykonywania kopii echo "Manualna komenda →" echo "rm -fr * && docker run --rm --volumes-from $kontener_pliki -v \$(pwd):/mnt instrumentisto/rsync-ssh rsync -a /var/www/html/ /mnt/ && docker exec $kontener_baza /usr/bin/mysqldump -u$mysql --password=$mysql $mysql > $mysql_plik" ;; "odczytaj"|"oo"|"OO") # wyświetl komendę przywracania kopii echo "Manualna komenda ←" echo "docker run --rm --volumes-from $kontener_pliki -v \$(pwd):/mnt instrumentisto/rsync-ssh rsync -a --delete --exclude 'kopia_zapasowa_*.sql' /mnt/ /var/www/html/ && cat kopia_zapasowa_*.sql | docker exec -i $kontener_baza /usr/bin/mysql -u$mysql --password=$mysql $mysql" esac
Zastosowanie:
Skrypt do tworzenia i przywracania kopii witryn podczas ich budowania w Docker
Wiedza:
Praktyczna
Kategoria:
Data:
piątek, 9 Wrzesień, 2022 - 10:26
- Zaloguj się aby dodać komentarz.