Napi teljes mentés FTP tárhelyre heti rotációval

Az alábbi segítségével tetszőleges fájlt, de akár teljes könyvtárszerkezetet tudunk menteni távoli FTP szerverre.
Az alábbi megoldás teljes mentést készít és a korábbi mentéseket 7 napig őrzi.
Rekurzív FTP feltöltés az ncftp segítségével valósítható meg.

A szkript elején megadjuk az FTP felhasználónevet, jelszót, host-ot és azt a könyvtárat, amin belül szeretnénk elhelyezni a fájlokat.
A feltöltést egy upload nevű függvény készíti. Ez jó példa shell függvényre is. Ahogy látható argumentumokat kap a függvény. Az első függvény argumentum a fájl (vagy könyvtár), amit szeretnénk feltölteni, a második a könyvtár, amibe szeretnénk az FTP feltöltést. Az FTP kapcsolat felépülése után  beállított könyvtárba lépünk, majd a régi mentés könyvtárát töröljük. Az OLDDATE módosításával állítható, hogy hány napig őrizzük a mentést. Az FTP kapcsolat következő lépése az aktuális mentéshez a könyvtár létrehozása, majd könyvtárváltás. A put -R segítségével tudunk rekurzívan fájlokat másolni FTP szerverre.
A feltöltés végén az FTP kapcsolatot lezárjuk.

FTPUSER=USERNAME
FTPPASS=PASS
FTPHOST=HOST
FTPDIR=ROOTDIR

DATE=`date +%Y%m%d`
OLDDATE=`date --date='7 day ago' +%Y%m%d`

# Fuggveny argumaentumok:
#1: FILE - to upload
#2: DIR - dir where upload
function upload(){
    ncftp -u $FTPUSER -p $FTPPASS $FTPHOST  -m <        cd $FTPDIR
        rmdir $2.$OLDDATE
        mkdir $2.$DATE
        cd  $2.$DATE
        put -R $1
        quit
    EOF
}


Csak bizonyos fájlok feltöltése (példa):

find /var/backups/ | grep  bak | grep -v shadow | while read F; do upload $F REMOTEDIR ;done

Egész könyvtár feltöltés rekurzívan:

cd /backup
upload . backup


Kulcsszavak: Linux, mentés, backup, script, Cron, FTP

Új hozzászólás: