Skripte za sigurnosno kopiranje datoteka s Linuxa u pohranu u oblaku

Ne tako davno, objavili smo članak o povezivanju popularnih besplatnih usluga pohrane u oblaku na poslužitelj s CentOS-om 7. U ovom ćemo članku pokazati kako možete koristiti podatke za pohranu za sigurnosno kopiranje podataka s vašeg poslužitelja. Koristim ove skripte za dodatnu sigurnosnu kopiju datoteka s web mjesta i baza podataka s mog Linux VPS poslužitelja.

sadržaj:

  • Sigurnosne kopije podataka na OneDrive iz Linux CentOS-a
  • Izrada sigurnosne kopije na Google disku.
  • Sigurnosna kopija skripte na Yandex.Disk iz Linuxa

Sigurnosne kopije podataka na OneDrive iz Linux CentOS-a

Napravit ćemo sigurnosnu kopiju web mjesta i baze podataka, kao i provjeriti "dob" sigurnosne kopije (izbrisati sigurnosne kopije prije tjedan dana) i na mail poslati izvješće s kompletnim podacima o izvršenju skripte. Zapravo, bash skripta:

#! / bin / bash
# Kopirajte datoteke web mjesta u privremeni direktorij
rsync -avzr - napredak / var / www / html / / var / www / tmp / backup / >> rezultat.txt
# Izvršite ispis baze podataka, postavite dump datoteku u privremenu mapu
mysqldump joomla> /var/www/tmp/backup/backup.sql
# Stvorite privremenu arhivu direktorija
tar -cvzf sigurnosna kopija - $ (datum +% y% m% d) .tar.gz --absolute-names / var / www / tmp / backup / >> result.txt
# Provjerite oblačni direktorij da li postoje stare sigurnosne kopije, ako ih ima, izbrišite
find / root / OneDrive / backup / -name "backup * .tar.gz" -mtime +7 -exec rm -f \; >> rezultat.txt
# Kopirajte prethodno stvorenu arhivu u oblak
rsync -avzr --progress /root/bin/backup*.tar.gz / root / OneDrive / backup / >> result.txt
# Izbriši arhivu iz direktorija skripte
rm -rf /root/bin/backup*.tar.gz >> rezultat.txt
# S oblakom sinkroniziramo oznaku -local-first, što će nam omogućiti da uklonimo stare sigurnosne kopije iz oblaka ako smo ih lokalno izbrisali i prenijeli nove sigurnosne kopije.
onedrive - lokalno-prvo - sinkroniziraj >> rezultat.txt
# Pošiljamo e-poštu s priloženom datotekom u kojoj je prikazan čitav postupak izrade sigurnosne kopije (zamijenite ga s poštanskim sandučićem)
odjek "Pogledajte datoteku za pogreške i ispravite ih" | mail -a "/root/bin/result.txt" -s "Izrađena sigurnosna kopija" - ******@gmail.com
# Čistimo mape od nepotrebnih datoteka
rm -rf /root/bin/result.txt && rm -rf / var / www / tmp / backup / *

Prije pisanja ovog članka stvorio sam nekoliko sigurnosnih kopija kako bih pokazao da skripta ispravno radi (briše stare sigurnosne kopije i prenosi nove).

Trčao sam 3 puta ručno. Napravljeno je nekoliko sigurnosnih kopija, nakon čega su svi uspješno poslani u oblak:

ls -la / root / OneDrive / sigurnosna kopija /

ukupno 28260 drwxr-xr-x 2 korijena korijena 102 rujna 3 17:02. drwxr-xr-x 5 korijen korijena 94 rujna 3 11: 15 ... -rw-r - r-- 1 korijen korijena 9643081 3. rujna 17:00 backup-1909031700.tar.gz -rw-r - r-- 1 root root 9643082 3. rujna 17:01 backup-1909031701.tar.gz -rw-r - r-- 1 root root 9643083 3. rujna 17:02 backup-1909031702.tar.gz Inicijaliziranje motora za sinkronizaciju ... Sinkroniziranje promjena s lokalnog puta prvo prije preuzimanja promjena s OneDrive-a ... Brisanje stavke iz OneDrive-a: sigurnosna kopija / sigurnosna kopija-1909031700.tar.gz Brisanje stavke iz OneDrive-a: sigurnosna kopija / backup-1909031701.tar.gz Brisanje stavke iz OneDrive-a: sigurnosna kopija / sigurnosna kopija-1909031702.tar.gz Prijenos nova datoteka ./backup/backup-1909031704.tar.gz ... Prijenos 100% | oooooooooooooooooooooooooooooooooooooooooo | Sastavljeno u 00:00:04 završeno. Obrađuje se 6 promjena

Ovdje provjeravamo oblak, a sve tri arhive imaju sigurnosne kopije:

Sljedećim korakom sam izbrisao stvorene sigurnosne kopije iz mape na poslužitelju i ponovo pokrenuo skriptu. Popis sadržaja direktorija na poslužitelju:

ls -la / root / OneDrive / sigurnosna kopija /

ukupno 9420 drwxr-xr-x 2 korijena korijena 38 rujna 3 17:04. drwxr-xr-x 5 korijen korijena 94 rujna 3 11: 15 ... -rw-r - r-- 1 korijen korijena 9643082 3. rujna 17:04 backup-1909031704.tar.gz 

Ulaskom u internetsko sučelje OneDrive vidio sam da se sigurnosne kopije brišu, a odatle automatski.

Također, nakon pokretanja skripte, dobio sam e-poruku:

To je sve, to je to, sigurnosna kopija na OneDriveu je gotova..

Izrada sigurnosne kopije na Google disku.

Izrada sigurnosnih kopija na Google disku u Se pokazalo se ne tako lako kao kod OneDrivea, iako je sama postava prilično jednostavna. Glavni problem je nastao uklanjanjem starih sigurnosnih kopija s Google diska, jer mapa za pohranu nije montirana na poslužitelju. No nakon dugog proučavanja pomoći u upravljanju, uspjeli smo nadograditi prethodno korišten skriptu.

#! / bin / bash
# izbrisati datoteke starije od 7 dana pomoću g.drive
/ usr / sbin / popis pogona -q "modificiranoDate < '$(date -d '-7 day"+%Y-%m-%d')'" | cut -d" " -f1 - | xargs -L 1 drive delete -i
rsync -avzr - napredak / var / www / html / / var / www / tmp / backup / >> rezultat.txt
mysqldump joomla> /var/www/tmp/backup/backup.sql
tar -cvzf sigurnosna kopija - $ (datum +% Y% m% d) .tar.gz --absolute-names / var / www / tmp / backup / >> result.txt
# prenesite datoteku u g.drive
/ usr / sbin / drive upload -f /root/bin/backup*.tar.gz >> rezultat.txt
rm -rf /root/bin/backup*.tar.gz >> rezultat.txt
odjek "Pogledajte datoteku za pogreške i ispravite ih" | mail -a "/root/bin/result.txt" -s "Izrađena sigurnosna kopija" - ******@gmail.com
rm -rf /root/bin/result.txt
rm -rf / var / www / tmp / backup / *

Preostale korake u scenariju nisam naslikao, jer se ponavljaju s prethodnim.

Pokretanje skripte, izvršeno je:

sh backup_gdrive.sh

Uklonjena datoteka 'DSC_2151.NEF' Uklonjena datoteka 'DSC_2153.NEF' Uklonjena datoteka 'DSC_2159.NEF' Uklonjena datoteka 'DSC_2226.NEF' Uklonjena datoteka 'DSC_2225.NEF'
Provjerite dostupnost datoteka na Google disku: popis pogona
Id Veličina naslova kreirana 1oay3-FAWBZRjHtma1cRTLrOvf3t8hRpD backup-20190904.tar.gz 9,6 MB 2019-09-04 14:43:25

S web sučelja je vidljivo kao i s konzole:

Tako dobivamo skriptu koja provjerava postojanje starih sigurnosnih kopija u oblaku Google diska, briše ih ako ispunjavaju uvjete, zatim stvara sigurnosnu kopiju web mjesta i šalje je u isti oblak.

Sigurnosna kopija skripte na Yandex.Disk iz Linuxa

Ovu oblačnu pohranu ostavio sam za užinu, jer je sigurnosno kopiranje na Yandex.Disk najlakše, jer Postavili smo pohranu u oblaku Yandex putem WebDav-a kao poseban disk disk. Metoda je ista, pokrećemo skriptu, samo s malom razlikom, ne trebamo sinkronizirati ili prenositi datoteke posebnim naredbama, radimo kao s uobičajenom direktorijom poslužitelja. Sinkronizacija direktorija provodi se pomoću rsync. Skripta će izgledati:

#! / bin / bash
rsync -avzr - napredak / var / www / html / / var / www / tmp / backup / >> rezultat.txt
mysqldump joomla> /var/www/tmp/backup/backup.sql
tar -cvzf sigurnosna kopija - $ (datum +% Y% m% d) .tar.gz --absolute-names / var / www / tmp / backup / >> result.txt
find / mnt / yad / -name "sigurnosna kopija * .tar.gz" -mtime +7 -exec rm -f \; >> rezultat.txt
rsync -avzr --progress /root/bin/backup*.tar.gz / mnt / yad / >> rezultat.txt
rm -rf /root/bin/backup*.tar.gz >> rezultat.txt
odjek "Pogledajte datoteku za pogreške i ispravite ih" | mail -a "/root/bin/result.txt" -s "Izrađena sigurnosna kopija" - ****@gmail.com
rm -rf /root/bin/result.txt
rm -rf / var / www / tmp / backup / *

Sve isto, samo bez dodatnih naredbi. Ako imate druge staze do pohrane u oblaku, promijenite skriptu na svoju.

Na kraju članka htio bih dodati. Stavio sam ove skripte u poseban direktorij i pokrenuo ih na kruni. Ako vam prostor na disku na vašim oblačnim diskovima često omogućuje stvaranje sigurnosnih kopija, kreirajte ih što je češće moguće, preporučujem vam barem jednom svaka 3 dana. Upotrijebite svoje resurse za pohranu u oblaku 100%.

Primjeri zadataka u kruni:

0 0 * * 6 /root/bin/backup.sh - pokrenite sigurnosnu kopiju svake subote u 00-00
0 0 * / 3 * * /root/bin/backup.sh - pokrenite sigurnosnu kopiju svaka 3 dana u 00-00

I tako dalje, konfigurirajte sigurnosne kopije po želji kada je učitavanje na poslužitelju minimalno.