Új hozzászólás Aktív témák

  • loszerafin

    senior tag

    válasz loszerafin #2008 üzenetére

    Hát, ez meglepően egyszerű volt.

    A megoldás kulcsa, hogy hardlinkeket kell létrehozni. Így nem foglalnak plussz helyet a fájlok.
    Ráadásul nem is látni, hogy melyik ''fájl'' (azaz hardlink) volt az eredeti, de nem is számít.

    Íme a script: (10 sor)


    #!/bin/bash

    # az előző mentés könyvtára
    . mybackup-last

    #ez a forráskönyvtár
    SRC=/home/kukk/tmp/src
    #ez a célkönyvtár
    DEST=/home/kukk/tmp/dest

    #ez a célkönyvtárban levő alkönyvtár
    #formátuma: ÉÉÉÉ-HH-NN-ÓÓPPMM
    #például: 2006-10-13-113758
    DESTDIR=$DEST/`date +%Y-%m-%d-%H%M%S`

    #Ez egy trükk, kissé csúnya:
    #az előző mentés könyvtárát beírom a mybackup-last
    #fájlba, amit majd a következő mentés beolvas.
    #innen tudom, melyik az előző mentés
    echo ''LASTDIR=$DESTDIR'' > mybackup-last

    mkdir $DESTDIR

    #Ha már volt előző mentés, akkor az előző mentést
    #bemásolom az új könyvtárba, de igazi másolás
    #helyett hardlinkelem, hogy ne foglaljon plussz helyet
    if [ ''$LASTDIR'' != '''' ]; then
    cp -R -l $LASTDIR/* $DESTDIR
    fi;

    #Rámásolok rsync-kel. Az rsync az megváltozott
    #fájlok hardlinkjeit felülírja az új fájllal
    rsync -av --no-p $SRC/ $DESTDIR/





    Minden futáskor létrehozza a mybackup-last fájlt, amiben az utolsó mentés
    könyvtára van.
    Ezt ki lehetne találni a könyvtárak létrehozásának idejéből is, de nekem jó ez is.

Új hozzászólás Aktív témák