Előző cikkben készítettünk egy scriptet mellyel lokálisan tudtunk mentést készíteni szerverünkről. Most pedig megnézzük, hogyan tudjuk kibővíteni, hogy felhőben lévő mentésünk is legyen. Mivel nagyon sok helyen a Backblaze-t használom hasonló célokra, ezért mutatok rá egy példát.
rclone telepítés
Szükségünk lesz az rclone nevű szoftverre, melyet az alábbi módon telepíthetünk:
$ sudo dnf install epel-release $ sudo rpm -ql epel-release $ sudo dnf install p7zip p7zip-plugins $ curl https://rclone.org/install.sh | sudo bash
rclone konfigurálása
Most pedig váltsunk át a minecraft userünkre.
$ sudo su - minectaft
Majd indítsuk el az rclone konfigurálását.
$ rclone config
Ekkor az alábbi képernyő fogad bennünket:
2020/11/23 01:37:14 NOTICE: Config file "/opt/minecraft/.config/rclone/rclone.conf" not found - using defaults No remotes found - make a new one n) New remote s) Set configuration password q) Quit config n/s/q>
Nyomjunk egy n-t és állítsunk be egy új remote-ot. Name-nek állítsunk be valami hangzatos nevet, én egyszerűen minecraftb2-őt állítottam. Storage-nak pedig adjuk meg, hogy b2. Backblaze profilunkban generáljunk egy új Application Key-t. Majd account-nak adjuk meg a keyID-t, key-nek pedig az applicationKey-t. A hard_delet-nek állítsunk false-t. Az edit advanced config-ra jelenleg nincs szükségünk, nyomjunk egy n-t. Végül ha minden megfelelőnek látunk az ellenőrzés során, akkor nyomjunk egy y-t. Így a következőt kel látnunk:
Current remotes: Name Type ==== ==== minecraftb2 b2 e) Edit existing remote n) New remote d) Delete remote r) Rename remote c) Copy remote s) Set configuration password q) Quit config e/n/d/r/c/s/q>
Bucket létrehozása
Lépjünk ki, majd hozzunk létre egy új bucket-et.
$ rclone mkdir minecraftb2:mcbackupbobeszhu
Fontos, hogy egyedi nevet adjunk, különben az alábbi hibaüzenet fogad bennünket:
2020/11/23 01:50:29 ERROR : Attempt 1/3 failed with 1 errors and: failed to create bucket: Bucket name is already in use (400 duplicate_bucket_name) 2020/11/23 01:50:30 ERROR : Attempt 2/3 failed with 1 errors and: failed to create bucket: Bucket name is already in use (400 duplicate_bucket_name) 2020/11/23 01:50:31 ERROR : Attempt 3/3 failed with 1 errors and: failed to create bucket: Bucket name is already in use (400 duplicate_bucket_name) 2020/11/23 01:50:31 Failed to mkdir: failed to create bucket: Bucket name is already in use (400 duplicate_bucket_name)
Ezt követően ellenőrizzük le, hogy valóban létrejött-e a bucket:
[minecraft@centos8 ~]$ rclone lsd minecraftb2: -1 2020-11-23 01:52:50 -1 mcbackupbobeszhu
Szinkronizálás
Végül készítsünk egy teszt fájlt, és szinkronizáljuk a backup könyvtár tartalmát az előbb létrehozott bucket-ba.
$ echo teszt >> /opt/minecraft/backups/teszt.txt $ rclone sync /opt/minecraft/backups minecraftb2:mcbackupbobeszhu
Majd ellenőrizzük le, hogy valóban megtörtént-e:
[minecraft@centos8 ~]$ rclone ls minecraftb2:mcbackupbobeszhu 6 teszt.txt
Végül módosítsuk az előző cikkben létrehozott backup.sh fájlunkat úgy, hogy a végére írjük a fenti sync parancsot. Ezt követően így néz ki a backup scriptünk:
#!/bin/bash function rcon { /opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p strong-password "$1" } rcon "save-off" rcon "save-all" tar -cvpzf /opt/minecraft/backups/server-$(date +%F-%H-%M).tar.gz /opt/minecraft/server rcon "save-on" ## Delete older backups find /opt/minecraft/backups/ -type f -mtime +7 -name '*.gz' -delete ## Sync to B2 bucket rclone sync /opt/minecraft/backups minecraftb2:mcbackupbobeszhu