Fórum Ubuntu CZ/SK
		Ostatní => Tipy a triky pro Linux => Téma založeno: Tomáš Břinčil  18 Února 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
 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)
 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
 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
 #!/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
 #!/bin/sh
 #Vzdalene nahrani nejnovejsich zaloh na mischel
 rsync --delete-before -ae ssh /backups/current/ user@10.0.2.250:/home/user/server/backups/
 
 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á
 
 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 ^^
 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