Biztonsági másolat készítés SSH-n, 1 hónapos megőrzéssel

Néhány konfig fájlt kell viszonylag sűrűn lementenem az egyik éles szerverünkről a backupra, úgy, hogy lehetőleg sűrűn mentsem őket (esetemben 10 percenként), őrizzem meg őket egy hónapig, de az 1 napnál régebbiekből elég csak egyet. Ha valamiért nem menne a másolás, emailt küld a kudarcról. Egyszerű ügy.

Kis agyalás után végül ezzel a szkripttel oldottam meg:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/bash
ATTACHFILE=`date +bkp_files_%Y%m%d%H%M.tar.gz` SRC_DIR="/innen/mentjuk" BKP_DIR="/backup" BACKUP_SRV="bckserver" ERR_MAILS="mailcimem@posta.hu" EXP_TIME=31cd ${SRC_DIR} 
# Betomoriti egy tar.gz-be a mentendo fajlokat es ssh-n atmasolja a backup szerverre/gepre - egy szusszanásra
tar cf - fajl1.dat fajl2.cfg fajl3.exe fajl4.jpg  | gzip -c9 | ssh ${BACKUP_SRV} "cat > ${BKP_DIR}/${ATTACHFILE}"
if [[ $? -ne 0 ]]; then         
  echo -e 'Biztonsági mentés másolása sikertelen.' | mail -s "Backup error" ${ERR_MAILS};        
  logger -s -t backup 'A biztonsági mentés másolása sikertelen.'
else        
  logger -s -t backup 'A biztonsági mentés másolása sikeres.'
fi
# A 31 napnal regebbi masolat fileokat torli, az 1 napnal regebbiekbol csak a 02:00 orait hagyja meg
ssh ${BACKUP_SRV} "find ${BKP_DIR}/bkp_files_*0200.tar.gz -exec touch -a {} ;"
ssh ${BACKUP_SRV} "find ${BKP_DIR}/* -atime +1 -exec rm {} ;"
ssh ${BACKUP_SRV} "find ${BKP_DIR}/bkp_files_*0200.tar.gz -mtime +${EXP_TIME} -exec rm {} ;"

Másoljunk 4 fájlt a BCKSERVER-re az ottani /backup mappába tar.gz-be tömörítve a gépünk /innen/mentjuk mappájából.

Tar-ral betuszkolom a 4 pálda fájlt egy tar-ba, átadom a gzip-nek, hogy letömörítse, és már lököm is be egy SSH sessionbe, aminek a túlsó végén mindezt bele irányítom egy időbélyeggel ellátott fájlba.

Hiba esetén repül a mail. (A másolás sikerességét a /var/messages-be is beírjuk a logger-rel.)

Aztán a túloldalon a backup fájlok közül a 2 óraiakat “megérintem” a touch paranccsal, hogy mostanra módosítsam a “Last access”-üket. Ezután kitörlök minden 1 napnál régebbi “Last acces”-ű fájlt. A mai összes, és az egy napnál régebbi 2 óraiak ugye megmaradnak. Ezután kitörlöm a 31 napnál régebbi “Modified date”-ű fájlokat, így a 2 óraiakból is csak egy hónapnyi marad.

Nyilván ez nem egy nagy fájlrendszer backupolására való, mert nem lehet vele inkrementálist (arra egyébként ez pl kis környezetben elég jó szerintem). De kis fájloknál, nagy számú verzió megőrzésére simán elég.

(Ja, és persze ahhoz, hogy cron-nal ütemezni tudjuk nem árt legenerálni a publikus kulcsot a gépünkön, és átmásolni a backup gépre az authorized_keys-be, hogy ne kérjenek az SSH session-ök jelszót, hanem csak szép csendben végezzék a dolgukat.)

If you enjoyed this post, please consider leaving a comment or subscribing to the RSS feed to have future articles delivered to your feed reader.
This entry was posted in Uncategorized and tagged , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

2 Comments

  1. Tamas Pal
    Posted -0001-11-30 at 00:00 | Permalink

    na, kösz Petierre vártunk – öcsit rá is uszítom a szerverre, hogy a szívem csücskeit archiválgassuk :)

  2. Ágoston Péter
    Posted -0001-11-30 at 00:00 | Permalink

    <p>Na, akkor gészségetekre! :)<br> &gt;</p>

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>