Skripty pro zálohování souborů z Linuxu do cloudového úložiště

Není to tak dávno, co jsme zveřejnili článek o připojení populárních bezplatných služeb cloudového úložiště k serveru se serverem CentOS 7. V tomto článku ukážeme, jak můžete pomocí dat úložiště zálohovat data ze svého serveru. Tyto skripty používám pro další zálohování souborů webu a databází z mého serveru Linux VPS.

Obsah:

  • Zálohujte data na OneDrive z Linux CentOS
  • Zálohujte na Disk Google.
  • Zálohovací skript na serveru Yandex.Disk z Linuxu

Zálohujte data na OneDrive z Linux CentOS

Zálohujeme web a databázi a zkontrolujeme „stáří“ zálohy (smažte zálohy před týdnem) a pošlete zprávu s úplnými informacemi o provedení skriptu na poštu. Vlastně samotný bash skript:

#! / bin / bash
# Zkopírujte soubory webu do dočasného adresáře
rsync -avzr - postup / var / www / html / / var / www / tmp / backup / >> result.txt
# Proveďte výpis z databáze, vložte soubor výpisu do dočasného adresáře
mysqldump joomla> /var/www/tmp/backup/backup.sql
# Vytvořit dočasný archiv adresáře
tar -cvzf backup - $ (datum +% y% m% d) .tar.gz --absolute-names / var / www / tmp / backup / >> result.txt
# Zkontrolujte, zda v adresáři cloudu nejsou staré zálohy, pokud existují, odstraňte
find / root / OneDrive / backup / -name "backup * .tar.gz" -mtime +7 -exec rm -f \; >> result.txt
# Zkopírujte dříve vytvořený archiv do cloudu
rsync -avzr - proces /root/bin/backup*.tar.gz / root / OneDrive / backup / >> result.txt
# Odstranit archiv z adresáře skriptu
rm -rf /root/bin/backup*.tar.gz >> result.txt
# Synchronizujeme se s cloudem s příznakem -local-first, což nám umožní odstranit staré zálohy z cloudu, pokud je lokálně odstraníme a nahrajeme nové zálohy
onedrive --local-first --synchronize >> result.txt
# Odesíláme e-mail s připojeným souborem, kde je zobrazen celý proces zálohování (nahraďte poštovní schránkou)
echo "Podívejte se do souboru na chyby a opravte je" | mail -a "/root/bin/result.txt" -s "Zálohování vytvořeno" - ******@gmail.com
# Čistíme adresáře od nepotřebných souborů
rm -rf /root/bin/result.txt && rm -rf / var / www / tmp / backup / *

Před napsáním tohoto článku jsem vytvořil několik záloh, abych mohl prokázat, že skript funguje správně (odstraní staré zálohy a nahraje nové).

Běžel jsem 3krát ručně. Bylo vytvořeno několik záloh, poté byly všechny úspěšně odeslány do cloudu:

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

celkem 28260 kořenový kořen drwxr-xr-x 2 kořen 102 září 3 17:02. kořenový kořen drwxr-xr-x 5 94 září 3 11: 15 ... -rw-r - r-- 1 kořenový kořen 9643081 září 3 17:00 záloha-1909031700.tar.gz -rw-r - r-- 1 root root 9643082 3. září 17:01 backup-1909031701.tar.gz -rw-r - r-- 1 root root 9643083 3. září 17:02 backup-1909031702.tar.gz Inicializace synchronizačního motoru ... Synchronizace změn z místní cesty nejprve před stažením změn z OneDrive ... Odstranění položky z OneDrive: backup / backup-1909031700.tar.gz Odstranění položky z OneDrive: backup / backup-1909031701.tar.gz Odstranění položky z OneDrive: backup / backup-1909031702.tar.gz Nahrávání nový soubor ./backup/backup-1909031704.tar.gz ... Nahrávání 100% | oooooooooooooooooooooooooooooooooooooooooooooo | Dáno V 00:00:04 hotovo. Zpracování 6 změn

Při kontrole cloudu jsou zde všechny tři archivy se zálohami:

V dalším kroku jsem vytvořené zálohy odstranil z adresáře na serveru a znovu spustil skript. Výpis obsahu adresáře na serveru:

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

celkem 9420 kořenový kořen drwxr-xr-x 2 38 září 3 17:04. kořenový kořen drwxr-xr-x 5 94 září 3 11: 15 ... -rw-r - r-- 1 kořenový kořen 9643082 září 3 17:04 backup-1909031704.tar.gz 

Po vstupu do webového rozhraní OneDrive jsem viděl, že zálohy byly automaticky odstraněny a odtamtud.

Po spuštění skriptu jsem také dostal e-mail:

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

Zálohujte na Disk Google.

Zálohování na Disk Google v Se se ukázalo jako ne tak snadné jako u OneDrive, i když samotné nastavení je docela jednoduché. Hlavní problém nastal s odstraněním starých záloh z Disku Google, protože adresář úložiště není připojen k serveru. Ale po dlouhé studii nápovědy k nápovědě se nám podařilo upgradovat dříve používaný skript.

#! / bin / bash
# smazat soubory starší než 7 dní pomocí 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 - postup / var / www / html / / var / www / tmp / backup / >> result.txt
mysqldump joomla> /var/www/tmp/backup/backup.sql
tar -cvzf backup - $ (datum +% Y% m% d) .tar.gz --absolute-names / var / www / tmp / backup / >> result.txt
# nahrajte soubor do g.drive
/ usr / sbin / drive upload -f /root/bin/backup*.tar.gz >> result.txt
rm -rf /root/bin/backup*.tar.gz >> result.txt
echo "Podívejte se do souboru na chyby a opravte je" | mail -a "/root/bin/result.txt" -s "Zálohování vytvořeno" - ******@gmail.com
rm -rf /root/bin/result.txt
rm -rf / var / www / tmp / backup / *

Zbývající kroky ve skriptu jsem nenamaloval, protože se opakují s předchozími.

Spuštěním skriptu bylo provedeno:

sh backup_gdrive.sh

Odstraněný soubor 'DSC_2151.NEF' Odstraněný soubor 'DSC_2153.NEF' Odstraněný soubor 'DSC_2159.NEF' Odstraněný soubor 'DSC_2226.NEF' Odstraněn soubor 'DSC_2225.NEF'
Zkontrolujte dostupnost souboru na Disku Google: seznam jednotek
Id Název Velikost Vytvořeno 1oay3-FAWBZRjHtma1cRTLrOvf3t8hRpD backup-20190904.tar.gz 9,6 MB 2019-09-04 14:43:25

Z webového rozhraní je vidět stejně jako z konzole:

Získáme tedy skript, který kontroluje přítomnost starých záloh v cloudu Disku Google, odstraní je, pokud splňují požadavky, vytvoří zálohu webu a odešle jej do stejného cloudu.

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

Toto cloudové úložiště jsem nechal na svačinu, protože zálohování na server Yandex.Disk je nejjednodušší, protože Cloudové úložiště Yandex jsme připojili přes WebDav jako samostatné diskové zařízení. Metoda je stejná, spouštíme skript, jen s malým rozdílem, nemusíme synchronizovat ani nahrávat soubory se speciálními příkazy, pracujeme jako s běžným adresářem serveru. Synchronizace adresářů se provádí pomocí rsync. Skript bude vypadat takto:

#! / bin / bash
rsync -avzr - postup / var / www / html / / var / www / tmp / backup / >> result.txt
mysqldump joomla> /var/www/tmp/backup/backup.sql
tar -cvzf backup - $ (datum +% Y% m% d) .tar.gz --absolute-names / var / www / tmp / backup / >> result.txt
find / 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 "Podívejte se do souboru na chyby a opravte je" | mail -a "/root/bin/result.txt" -s "Zálohování vytvořeno" - ****@gmail.com
rm -rf /root/bin/result.txt
rm -rf / var / www / tmp / backup / *

To samé, pouze bez dalších příkazů. Pokud máte jiné cesty k cloudovému úložišti, změňte skript na.

Na konci článku bych rád přidal. Tyto skripty jsem umístil do samostatného adresáře a spustil je na koruně. Pokud vám diskový prostor na cloudových jednotkách často umožňuje vytvářet zálohy, vytvářet je co nejčastěji, doporučuji alespoň jednou za 3 dny. Využijte prostředky cloudového úložiště 100%.

Příklady úkolů v koruně:

0 0 * * 6 /root/bin/backup.sh - spusťte záložní skript každou sobotu v 00-00
0 0 * / 3 * * /root/bin/backup.sh - spusťte záložní skript každé 3 dny v 00-00

A tak dále nakonfigurujte zálohování, jak chcete, když je zatížení serveru minimální.