Linux script – záloha souborů a složek

By | 08/02/2020

Linux script – záloha souborů a složek

Linux script

Motivace:

Díky tomuto scriptu u je možné provést zálohu libovolných složek a souborů na libovolné síťové úložiště. Script používám pro zálohu všech configů z Ubuntu serveru na síťové úložiště NAS.

OS:

Implementace byla prakticky prováděna na Ubuntu 18.04 LTS a Ubuntu 12.04.5 LTS. Předpokládám, že postup je také aplikovatelný na ostatní verze Ubuntu.

Implementace:

Aktualizace seznamu balíčků z repozitářů:

sudo apt-get update

Instalace SSHPASS balíčku:

sudo apt-get install sshpass

Pozn. Prográmek sshpass v podstatě doplňuje funkci SSH klienta. Umožnuje zadání hesla jako parametr (volba -p) a tímpádem uživatel nemusí při každém přihlášení ručně zadávat přihlašovací heslo. To je užitečné, neboť se script bude spouštět automaticky, přes cron (viz níže).

Linux script příklad vytvoření:

Soubor script vytvořit ve složce opt (složka opt je nejbezpečnější místo pro uložení scriptů [1]):

sudo vim /opt/script

Vložit do souboru script kód níže:

#!/bin/bash

sshpass -p "password" scp -r -o Port=22 /etc/apache2/sites-available/ user@10.0.0.5:/volume1/backups/Linux_configs

Legenda:

  • scp – secure copy vzdáleně kopíruje šifrovaně přes SSH protokol
    • -r – přepínač “r” rekurzivně kopíruje celý obsah složek
  • /etc/apache2/sites-available/ – co chci kopírovat (v tomto případě složku “sites-available” na Ubuntu serveru)
  • user@10.0.0.5:/volume1/backups/Linux_configs – kde chci kopírovat. V tomto případě na síťové úložiště NAS pod IP adresou 10.0.0.5 do složky “Linux_configs” pod uživatelem “user”. Uživatel “user” musí být vytvořený na cílovém síťovém úložišti.
  • password – heslo pro ověření na cílovém síťovém úložišti

Zabrousit do složky opt:

cd /opt

Povolit práva pro spouštění souboru script:

sudo chmod u+x script

Přes spuštěním scriptu je dobré se přihlásit na cílové úložiště pomocí SSH, zda na něm běží SSH server.

sudo ssh user@10.0.0.5

Výpis příkazu sudo ssh user@10.0.0.5. Je nutné potvrdit fingerprint – dopsáním yes a následně zadat heslo pro uživatele user:

ECDSA key fingerprint is 7b:bb:cc:dd:ee:4a:bb:cc:d7:ee:aa:bb:cc:9d:e1:.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.0.0.5' (ECDSA) to the list of known hosts.

Pokud dojde k úspěšnému připojení, lze soubor script spustit.

sudo ./script

Ověřit zda byla v tomto případě složka “snmp” zkopírována na cílovém síťovém úložišti.

Tuning scriptu:

Máme-li více složek či souborů, lze si například vytvořit pro každou složku, nebo soubor v jiné lokaci, jednu proměnnou a využít smyčky for.

#!/bin/bash

snmp="/etc/snmp/"
ntp="/etc/ntp.conf"
syslog="/etc/rsyslog.*"
samba="/etc/samba/"

for location in $snmp $ntp $syslog $samba
do
sshpass -p "password" scp -r -o Port=22 $location sec@10.0.0.5:/volume1/backups/Linux_configs
done

Automatizaci scriptu, lze provést pomocí nástroje Cron, což je správce úloh – viz článek níže:

Cron – správce úloh v Linuxu

Zdroje:

[1] https://askubuntu.com/questions/195652/is-there-a-standard-place-for-placing-custom-linux-scripts

 

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *