Zálohování FTP webhostingu pomocí rsync

V tomto článku je popsáno jednoduché zálohování webhostingu přes FTP. My si nyní popíšeme, jak můžeme toto zálohování zjednodušit pomocí rsync a skriptu v Bash. Rsync je možno použít v operačních systémech Linux nebo MacOS, případně možno i ve Windows přes WSL.

Nejdříve stáhneme obsah webhostingu:

wget --mirror --ftp-user=user --ftp-password=password\
     --no-host-directories ftp://*.w*.wedos.net/

Za –ftp-user= zadáme váš login do FTP vašeho webhostingu, za –ftp-password= zadáme heslo na FTP vašeho webhostingu. ftp://*.w*.wedos.net/ zadáme adresu vašeho FTP serveru u webhostingu.

Vysvětlení jednotlivých direktiv:

–mirror

rekurzivní stahování

–ftp-user=user

přidání ftp loginu

–ftp-password=password

přidání ftp hesla

–no-host-directories

při rekurzivním stahování nevytváří hirearchii adresářů

Poté si stažené soubory komprimujeme do jednoho souboru pomocí zip:

zip -r ftp.zip /slozka_se_zalohou/

Komprimuje se celá složka se staženou zálohou.

Po komprimaci stažených záloh je dobré automaticky vymazat stažené adresáře ve složce se zálohou (vycházíme z adresářové struktury webhostingu).

rm -r /slozka_se_zalohou/tmp
rm -r /slozka_se_zalohou/session
rm -r /slozka_se_zalohou/logs
rm -r /slozka_se_zalohou/www

A následně použijeme rsync a pošleme staženou a komprimovanou zálohu na Wedos Disk.

rsync -av --password-file=/slozka_se_souborem/rsync.pass /slozka_se_zalohou/ftp.zip rsync://s***@s***.s**.wedos.net/s***/slozka_se_zalohou/

s*** je FTP login u vašeho Wedos Disku, s*.s**.wedos.net** je adresa vašeho FTP připojení na Wedos Disk.

Vysvětlení jednotlivých direktiv:

-a

archive mode, porovnává, jestli se jedná o stejný soubor

-v

na výstupu je více informací (můžeme také použít -vv nebo -vvv pro ještě více informací při výstupu)

–password-file

soubor s heslem pro FTP přístup na Wedos Disk. Soubor rsync.pass obsahuje jen heslo a nastavte mu práva 600.

Celý kód dohromady vypadá takto (soubor můžeme nazvat například ftp.sh)

#!/bin/bash

# zaloha FTP webhostingu pomocí rsync

# stazeni ftp
wget --mirror --ftp-user=user --ftp-password=password\
     --no-host-directories ftp://*.w*.wedos.net/

#zazipovani adresare
zip -r ftp.zip /slozka_se_zalohou/

#vymazani slozek se zalohou
rm -r /slozka_se_zalohou/tmp
rm -r /slozka_se_zalohou/session
rm -r /slozka_se_zalohou/logs
rm -r /slozka_se_zalohou/www

#poslat na Wedos Disk
rsync -av --password-file=/slozka_se_souborem/rsync.pass /slozka_se_zalohou/ftp.zip rsync://s***@s***.s**.wedos.net/s***/slozka_se_zalohou/