automaticke zalohovani medii

"Jaroslav Lukesh" <[email protected]>
Newsgroups gmane.linux.region.czech
Message-ID <119001d400ef$74cbe410$84d810ac@IBMXP>
Dobrý den,

udělal jsem si skript, který po strčení média do mechaniky toto automaticky 
zkopíruje, třeba se vám bude hodit. Po zkopírování ho na chvilku vysune a 
pak zase zajede. Zatím nejsou ošetřené vadné média a chyby čtení. To tam 
dodělám, až na nějakou chybu narazím.

Divoké kopírování přes DD tam je proto, že přes CP trvá řádově 10x až 100x 
déle (nekecám, až tak MS zkurvil linux)

Do /etc/crontab přidejte tento řádek:

* *     * * *   root    /opt/AUTO_DVD_COPY

===== SKRIPT /opt/AUTO_DVD_COPY ========
#!/bin/bash
#  POSTUP kopírování z CD - tento skript bude spouštěný každou minutu

OUTDIR="/media/usb0/DVD_COPY"
STATUS="$OUTDIR/status_disk_archiv"
touch $OUTDIR/ZKOPIROVANE.log

if [ "`mount|grep "/dev/sr0 on /mnt/dvd"`" ]
then    # v 2. běhu se označí že je namontováno
    echo "NAMONTOVANO"
    touch $STATUS.MNT
    CD_ID=`blkid /dev/sr0 | cut -d"\"" -f 2`
else    # v prvním běhu se namontuje
    rm -f $STATUS.MNT
    echo "MONTUJI"
    mount -o iocharset=utf8 /dev/cdrom /mnt/dvd >/dev/null
fi

# a pokud je namontováno, ověří CD a spustí kopírování
if [ ! -f $STATUS.COPY ]; then
if [ -f $STATUS.MNT ]; then
if [ "`cat $OUTDIR/ZKOPIROVANE.log | grep $CD_ID`" ]; then
    echo "CD je již zkopírované"
    #umount /mnt/dvd
else
    echo "CD je připraveno"
    touch $STATUS.COPY
    echo "$CD_ID" > $STATUS.CD_ID    # řádek: /dev/sr0: 
UUID="2013-04-09-23-38-27-00" LABEL="DVD" TYPE="iso9660"
    mkdir "$OUTDIR/$CD_ID"
    echo "$CD_ID"
    echo "KOPIRUJI"
    # cp -aR /mnt/dvd/ "$OUTDIR/$CD_ID"

    # kopie prázdné adresářové struktury
    rsync -a --include '*/' --exclude '*' "/mnt/dvd/" "$OUTDIR/$CD_ID"


    find "/mnt/dvd" -type f |  awk "/^\//{print\"\"substr(\$0,10)}" |
    while read item
    do
        echo "$item"
        dd if="/mnt/dvd/$item" of="$OUTDIR/$CD_ID/$item" bs=32M 
iflag=nonblock oflag=nonblock
    done



    echo "VSE HOTOVO, VYSUNOUT"
    eject /dev/sr0
    echo "`cat $STATUS.CD_ID` `date`" >> $OUTDIR/ZKOPIROVANE.log
    rm -f $STATUS.MNT
    rm -f $STATUS.COPY
    rm -f $STATUS.CD_ID
fi
fi
else
    echo "KOPIROVANI SE JIZ PROVADI"
fi



===== KONEC ========== 

_______________________________________________
Linux mailing list
[email protected]
http://www.linux.cz/mailman/listinfo/linux
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.