Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.

Autor Téma: záloha + přenos zálohy po síti na jiný PC  (Přečteno 2230 krát)

Tomáš Břinčil

  • Občanské sdružení Ubuntu ČR
  • Zasloužilý Ubunťák
  • Závislák
  • *
  • Příspěvků: 1610
  • moje obrázky ↓
    • Zobrazit profil
    • TomasBrincil.cz
záloha + přenos zálohy po síti na jiný PC
« kdy: 18 Únor 2010, 18:01:51 »
Zálohovat by měl dneska každý a ten kdo si myslí, že ne, tak dvakrát.
Pokud se útočník dostane na server jsou nám zálohy plat prtný, protože může s dostatečnými právy smáznout vše, tedy i naše zálohy.
Proto k redundanci dat přistupuji s SSH, RSYNC, CRONem zodpovědně a dělám ještě replikaci dat na jiný stroj v síti, který ani nemusít být většinou času online...
BTW: radši ani nebudu těm méně paranoidnějším odhalovat celou pravdu, veškerá data mám na 4ks HDD (RAID1[server] → LAN → RAID1[PC])

Nebudeme nic potřebovat, vše je defaultně v bUbuntu... (až na sshd)

[SERVER]
Ošéfíme nejdřív přihlašování ze serveru na PC skrze SSH bez nutnosti zadat heslo
Kód: [Vybrat]
user@server:~$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_dsa): [enter]
Enter passphrase (empty for no passphrase):  [enter]
Enter same passphrase again: [enter]
Your identification has been saved in /home/user/.ssh/id_dsa.
Your public key has been saved in /home/user/.ssh/id_dsa.pub.
The key fingerprint is:
55:94:94:47:c7:4c:47:36:7c:d3:26:44:89:9f:c1:58 user@server
The key's randomart image is:
+--[ DSA 1024]----+
|        o        |
|     o     o     |
|   o    o    o   |
| o      o      o |
|   o    o    o   |
|     o     o     |
|        o        |
+-----------------+
Vygenerovaný klíč je potřeba uložit na PC (stále z SHHčka serveru)
Kód: [Vybrat]
user@server:~$ ssh-copy-id -i ~/.ssh/id_dsa.pub user@10.0.2.250
user@10.0.2.250's password:
Now try logging into the machine, with "ssh 'user@10.0.2.250'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

user@server:~$ ssh 10.0.2.250
user@pc:~$ exit
logout
Connection to 10.0.2.250 closed.
user@server:~$

Připravíme si místo pro zálohy a soubory pro dávky
Kód: [Vybrat]
user@server:~$ sudo mkdir /backups
user@server:~$ sudo mkdir /backups/current
user@server:~$ sudo nano /backups/current/Backups.sh
user@server:~$ sudo nano /backups/current/Remote.sh

Backups.sh
Kód: [Vybrat]
#!/bin/sh
#přesun aktuálních záloh do složky /backups/
mv /backups/current/* /backups/
#záloha konfiguračních souborů
tar czf /backups/current/etc_backup-`date '+[%Y-%m-%d][%A][%T]'`.tar.gz /etc
#záloha MySQL zdrojových souborů pro databáze
tar czf /backups/current/mysql_backup-`date '+[%Y-%m-%d][%A][%T]'`.tar.gz /var/lib/mysql
#záloha webových stránek
tar czf /backups/current/www_backup-`date '+[%Y-%m-%d][%A][%T]'`.tar.gz /root/stránek
#smazání záloh starších 7 dní
find /backups/ -mtime +7 -delete

Remote.sh
Kód: [Vybrat]
#!/bin/sh
#Vzdalene nahrani nejnovejsich zaloh na mischel
rsync --delete-before -ae ssh /backups/current/ user@10.0.2.250:/home/user/server/backups/

Kód: [Vybrat]
user@server:~$ sudo crontab -e

# takhle by to mělo vypadat
## m h  dom mon dow   command
01 04 * * * /backups/current/Backups.sh

[sudo] password for user:
crontab: installing new crontab
user@server:~$  sudo crontab -l
#čeknem jestli to tak fakt vypadá

Kód: [Vybrat]
user@server:~$ crontab -e

# takhle by to mělo vypadat
## m h  dom mon dow   command
01 20 * * * /backups/current/Remote.sh

[sudo] password for user:
crontab: installing new crontab
user@server:~$ crontab -l
#čeknem jestli to tak fakt vypadá

PC, ta nejtěžší část ^^
Kód: [Vybrat]
user@PC:~$ sudo apt-get install ssh

BTW: na obou strojích mám stejného usera pod kterým je prováděna komunikace pomocí SSH,
jinak je potřeba zadávat ve tvaru: "ssh user@host"!

BTW2: čas si cronu je třeba nastavit podle podmínek, já vim, že jsem většinou večer na PC, proto volím tento čas...

BTW3: na straně serveru jsem ještě nestihl vyřešit hromadění starých záloh, takže je promáznout ručně, nebo napsat upgrade a přidat sem...

EDIT: Tak jsem doplnil i mazání záloh starších sedmi dní... Stálo by za to možná dělat jednu kompletní a pak jenom přírůstky...
Snad se bude líbit snouman  :D
« Poslední změna: 18 Únor 2010, 19:50:58 od snouman.net »