LINUX.ORG.RU

Многократная запись образа из командной строки


0

0

Многие графические оболочки имеют способность записывать один образ много раз, только болванки вставляй. Вставил новую болванку - пошла запись, подтверждать ничего не надо. Как бы реализовать такую же функционатьность из командной строки? Может кто то сталкивался с этой проблемой или видел решение?

★★★★★

>Как бы реализовать такую же функционатьность из командной строки?

Наваять простой bash скрипт с cdrecord

Selecter ★★★★
()
Ответ на: комментарий от Selecter

Наваяй, пожалуйста, но при одном условии: "Пользователь не использует клавиатуру/мышь. Только кладет СД в лоток и закрывает его (лоток сд-привода)"

sdio ★★★★★
()

Пока Selecter ваяет на bash, я тебе на perl набросаю :-)

#!/usr/bin/perl
use Fcntl;
use strict;

my $n=10; # Число записей 

my @args = ('/usr/bin/cdrecord', 'dev=0,0,0', 'speed=24', '-eject', '/home/iso/image1.iso');

my $i=0;
while ($i<$n) {
    sysopen(CD,'/dev/cdrom',O_RDONLY | O_NONBLOCK) || die "Can not access /dev/cdrom: $!";
    my $retval = ioctl(CD, 0x5327, 0); # CDROM_DISC_STATUS
    close (CD);
    # Диск в приводе?
    if ($retval == 101) {
        system(@args);
        $i++;
    }
    sleep 3;
}

sdio ★★★★★
()
Ответ на: комментарий от sdio

Ну да, щас. В bash-е я не силён. У меня есть готовый скриптик для бакапа системы. Оттуда и бери.

STORAGE="/root"
STORAGE_M="/root"
CDRW="/dev/hdd"
EXCLUDE="--exclude=/home/anton/src --exclude=/home/andrei/Desktop/Корзина --exclude=/cdrom --exclude=/distro --exclude=/media --exclude=/mnt --exclude=/proc --exclude=/srv --exclude=/sys --exclude=/tools --exclude=/vmlinuz --exclude=/home/anton/ISO --exclude=/var/cache/apt/archives --exclude=/home/anton/cron_screenshots"

echo "Starting archiving..."
echo "Please enter your password (sudo)"
sudo tar -czvpf $STORAGE_M/backup.tar.gz / $EXCLUDE --exclude=$STORAGE_M
echo "Testing archive..."
sudo gzip --test $STORAGE_M/backup.tar.gz

#exit 0

echo "Splitting archive..."
sudo split -d -b 700m $STORAGE_M/backup.tar.gz $STORAGE/backup.tar.gz_
echo "Deleting unnecessary files..."
sudo rm $STORAGE_M/backup.tar.gz

eject $CDRW
echo "Please insert CDRW media for burning backup files..."

for SLICE in `ls $STORAGE/backup.tar.gz_*`
do
while true
do
TIME=`/usr/bin/time -f %e eject $CDRW 2>&1`
#if (( $[ $TIME > 20 ] )) ; then
if (( `echo "$TIME > 1.0" | bc` )) ; then
#echo $TIME
echo "Starting blanking && burning..."
cdrecord -blank=fast dev=ATA:1,1,0
mkisofs -r $SLICE | cdrecord -v dev=ATA:1,1,0 -
eject $CDRW
echo "Please insert another CDRW media for burning backup files..."
break
fi
sleep 5
done
done

echo "The system was backuped successfuly!"

Selecter ★★★★
()

Спасибо ребята.

kilolife ★★★★★
() автор топика
Ответ на: комментарий от Selecter

Кстати прикольный способ, определять _окрыт_ ли дисковод, вместо того, чтобы определять, закрыт ли он. Очень симпатично.

kilolife ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.