OT: automaticke zalohovani medii
Jaroslav Lukesh
lukesh na seznam.cz
Neděle Červen 10 21:14:16 CEST 2018
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 ==========
Další informace o konferenci Hw-list