Skripty na zálohovanie súborov z Linuxu do cloudového úložiska

Nie je to tak dávno, čo sme uverejnili článok o pripojení obľúbených bezplatných služieb cloudového ukladania na server so serverom CentOS 7. V tomto článku vám ukážeme, ako môžete pomocou údajov úložného priestoru zálohovať údaje zo svojho servera. Tieto skripty používam na ďalšiu zálohu stránok a databázových súborov z môjho servera Linux VPS.

obsah:

  • Zálohujte údaje na OneDrive z Linux CentOS
  • Zálohovanie na Disk Google.
  • Zálohovací skript na serveri Yandex.Disk z Linuxu

Zálohujte údaje na OneDrive z Linux CentOS

Budeme zálohovať web a databázu, ako aj skontrolovať „vek“ zálohy (vymazať zálohy pred týždňom) a pošleme správu s kompletnými informáciami o vykonaní skriptu na e-mail. Vlastne samotný bash skript:

#! / bin / bash
# Skopírujte súbory stránok do dočasného adresára
rsync -avzr --proces / var / www / html / / var / www / tmp / backup / >> result.txt
# Vykonajte výpis databázy, uložte súbor výpisu do dočasného adresára
mysqldump joomla> /var/www/tmp/backup/backup.sql
"Vytvoriť dočasný archív adresárov."
zálohovanie tar -cvzf - $ (dátum +% y% m% d) .tar.gz --absolute-names / var / www / tmp / backup / >> result.txt
# Skontrolujte prípadné staré zálohy v adresári cloud, odstráňte ho
find / root / OneDrive / backup / -name "backup * .tar.gz" -mtime +7 -exec rm -f \; >> result.txt
# Skopírujte predtým vytvorený archív do cloudu
rsync -avzr --proces /root/bin/backup*.tar.gz / root / OneDrive / backup / >> result.txt
# Odstrániť archív z adresára skriptu
rm -rf /root/bin/backup*.tar.gz >> result.txt
# Synchronizujeme sa s cloudom s príznakom -local-first, ktorý nám umožní odstrániť staré zálohy z cloudu, ak ich lokálne odstránime a nahráme nové zálohy
onedrive --local-first --synchronize >> result.txt
# Pošleme e-mail s pripojeným súborom, kde sa zobrazí celý proces zálohovania (nahraďte poštovou schránkou)
echo "Prezrite si chyby a opravte ich" mail -a "/root/bin/result.txt" -s "Záloha vytvorená" - ******@gmail.com
# Čistíme adresáre od nepotrebných súborov
rm -rf /root/bin/result.txt && rm -rf / var / www / tmp / backup / *

Predtým, ako som napísal tento článok, som vytvoril niekoľko záloh, aby som mohol preukázať, že skript funguje správne (vymaže staré zálohy a nahrá nové)..

Bežal som trikrát ručne. Vytvorilo sa niekoľko záloh, po ktorých boli všetky úspešne odoslané do cloudu:

ls -la / root / OneDrive / záloha /

celkom 28260 koreňového koreňa drwxr-xr-x 2 102 sept. 3 17:02. koreňový koreň drwxr-xr-x 5 94 september 3 11: 15 ... -rw-r - r-- 1 koreňový koreň 9643081 september 3 17:00 záloha-1909031700.tar.gz -rw-r - r-- 1 root root 9643082 3. september 17:01 backup-1909031701.tar.gz -rw-r - r-- 1 root root 9643083 september 3 17:02 backup-1909031702.tar.gz Inicializácia synchronizačného motora ... Synchronizácia zmien z miestnej cesty najskôr pred stiahnutím zmien z OneDrive ... Odstránenie položky z OneDrive: backup / backup-1909031700.tar.gz Odstránenie položky z OneDrive: backup / backup-1909031701.tar.gz Odstránenie položky z OneDrive: backup / backup-1909031702.tar.gz Nahrávanie nový súbor ./backup/backup-1909031704.tar.gz ... Nahrávanie 100% | oooooooooooooooooooooooooooooooooooooooooooooo | VYPLATENÉ V 00:00:04. Spracováva sa 6 zmien

Pri kontrole cloudu sú tu všetky tri archívy so zálohami:

V ďalšom kroku som odstránil vytvorené zálohy z adresára na serveri a znova som spustil skript. Zoznam obsahu adresára na serveri:

ls -la / root / OneDrive / záloha /

celkom 9420 koreňov koreňa drwxr-xr-x 2 38 sep. 3 17:04. koreňový koreň drwxr-xr-x 5 94 sep 3 11: 15 ... -rw-r - r-- 1 koreňový koreň 9643082 sep 3 17:04 backup-1909031704.tar.gz 

Po vstupe do webového rozhrania OneDrive som videl, že zálohy boli automaticky odstránené a odtiaľ automaticky.

Po spustení skriptu som dostal aj e-mail:

To je všetko, to je všetko, záloha na OneDrive skončila..

Zálohovanie na Disk Google.

Zálohovanie na Disk Google v službe Se sa ukázalo ako také jednoduché ako pri OneDrive, hoci samotné nastavenie je dosť jednoduché. Hlavný problém sa vyskytol pri odstraňovaní starých záloh z Disku Google, pretože adresár úložného priestoru nie je pripojený na server. Po dlhom štúdiu pomoci s nápovedou sa nám však podarilo upgradovať predtým používaný skript.

#! / bin / bash
# zmazať súbory staršie ako 7 dní pomocou g.drive
/ usr / sbin / drive list -q "updatedDate < '$(date -d '-7 day"+%Y-%m-%d')'" | cut -d" " -f1 - | xargs -L 1 drive delete -i
rsync -avzr --proces / var / www / html / / var / www / tmp / backup / >> result.txt
mysqldump joomla> /var/www/tmp/backup/backup.sql
zálohovanie tar -cvzf - $ (dátum +% Y% m% d) .tar.gz --absolute-names / var / www / tmp / backup / >> result.txt
# nahrajte súbor na g.drive
/ usr / sbin / drive upload -f /root/bin/backup*.tar.gz >> result.txt
rm -rf /root/bin/backup*.tar.gz >> result.txt
echo "Prezrite si chyby a opravte ich" mail -a "/root/bin/result.txt" -s "Záloha vytvorená" - ******@gmail.com
rm -rf /root/bin/result.txt
rm -rf / var / www / tmp / backup / *

Zostávajúce kroky v skripte som namaľoval, pretože sa opakujú s predchádzajúcimi.

Spustením skriptu bolo spustené:

sh backup_gdrive.sh

Odstránený súbor 'DSC_2151.NEF' Odstránený súbor 'DSC_2153.NEF' Odstránený súbor 'DSC_2159.NEF' Odstránený súbor 'DSC_2226.NEF' Odstránený súbor 'DSC_2225.NEF'
Skontrolujte dostupnosť súboru na Disku Google: zoznam jednotiek
Id Názov Veľkosť Vytvorené 1oay3-FAWBZRjHtma1cRTLrOvf3t8hRpD backup-20190904.tar.gz 9,6 MB 2019-09-04 14:43:25

Z webového rozhrania je viditeľná rovnako ako z konzoly:

Získame tak skript, ktorý skontroluje prítomnosť starých záloh v cloude Disku Google, odstráni ich, ak spĺňajú požiadavky, potom vytvorí zálohu stránky a odošle ju do toho istého cloudu.

Zálohovací skript na serveri Yandex.Disk z Linuxu

Toto úložisko v cloude som nechal na desiatu, pretože zálohovanie na server Yandex.Disk je najjednoduchšie, pretože Cloudový ukladací priestor Yandex sme pripojili cez WebDav ako samostatné diskové zariadenie. Metóda je rovnaká, spustíme skript, iba s malým rozdielom, nemusíme synchronizovať alebo odovzdávať súbory pomocou špeciálnych príkazov, pracujeme ako s normálnym adresárom servera. Synchronizácia adresárov sa vykonáva pomocou rsync. Skript bude vyzerať takto:

#! / bin / bash
rsync -avzr --proces / var / www / html / / var / www / tmp / backup / >> result.txt
mysqldump joomla> /var/www/tmp/backup/backup.sql
zálohovanie tar -cvzf - $ (dátum +% Y% m% d) .tar.gz --absolute-names / var / www / tmp / backup / >> result.txt
nájsť / mnt / yad / -name "backup * .tar.gz" -mtime +7 -exec rm -f \; >> result.txt
rsync -avzr - postup /root/bin/backup*.tar.gz / mnt / yad / >> result.txt
rm -rf /root/bin/backup*.tar.gz >> result.txt
echo "Prezrite si chyby a opravte ich" mail -a "/root/bin/result.txt" -s "Záloha vytvorená" - ****@gmail.com
rm -rf /root/bin/result.txt
rm -rf / var / www / tmp / backup / *

To všetko iba bez ďalších príkazov. Ak máte iné cesty k úložisku v cloude, zmeňte skript na.

Na konci článku by som chcel pridať. Tieto skripty som umiestnil do samostatného adresára a spustil ich na korunu. Ak vám diskový priestor na cloudových jednotkách často umožňuje vytvárať zálohy, vytvárať ich čo najčastejšie, odporúčam aspoň raz za 3 dni. Využite prostriedky cloudového úložiska 100%.

Príklady úloh v korune:

0 0 * * 6 /root/bin/backup.sh - spustite záložný skript každú sobotu o 00-00
0 0 * / 3 * * /root/bin/backup.sh - spustite záložný skript každé 3 dni o 00-00

A tak ďalej nakonfigurujte zálohy podľa vášho želania, keď je záťaž na serveri minimálna.