Napi teljes mentés FTP tárhelyre heti rotációval
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