Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
mam skrypt do nagrywania bekapów z konsoli na DVD, ale wymaga on jednak zmian przy tworzeniu nowej płyty a dodaniem nowej sesji
z powodu tego że:
growisofs -Z - tworzy sesję inicjującą, a z literką -M dodaje nową sesję
można byłoby uruchamiac skrypt z parametrem np ./nagraj.sh [nowa/nienowa] ale to i tak nie jest zbyt automatycznie
w jaki sposób skypt może sprawdzać czy nośnik jest nowy (lub nienowy)?
co można zrobić żeby skrypt wysunął płytę jeśli do końca nośnika DVD zostanie 50MB?
nasuwa mi się użycie do mount /dev/cdrom do przeprowadzania tych testów
Offline
Wiem, że to nie jest odpowiedź wprost, ale... spróbuj programu [deb]burn[/deb]. ;)
Offline
burn niestety nie rozpoznaje poprawnie "capacity" cośnika
stwierdził że moja czysta płyta DVD ma 308MB i czy może nagrywać w takim wypadku
no i nie rozwiązuje głównej kwestii, również się pyta o to, czy to pierwsza sesja czy dodawana do istniejących
a więc wujo - lipe żes zapodał :)
Offline
Jakiś czas temu również poszukiwałem konsolowych narzędzi do wypalania płyt. Natknąłem się wtedy na dwa bliźniacze projekty:
bashburn mybashburn
Ten drugi jest w repo. Zaznaczam jednak, że nie sprawdzałem ich pod kontem Twoich wymagań.
Offline
obydwa z tych programków wyświetlają okienko z menu, przy czym ten grugi nieco ładniejsze bo korzysta chyba z ncurses
siem więc nie nadają bo nie można użyć ich w skrypcie wywoływanym za pomoca cronu
Offline
po poszukiwaniach we dokumentacji pakietu dvd+rw-tools
natrafiłem na narzędzie [b]dvd+rw-mediainfo[/b], które rozwiązuje wszystkie me problemy (znaczy z nagrywaniem bekapów)
i taki skrypt mi się napisał, który robi to co chciałem:
#!/bin/bash DEV="/dev/cdrom" DATA=file01.bak DATA_CAP=$(( `ls -s "$DATA" | cut -f1 -d" "` * 1024 )) DISC_STAT=`dvd+rw-mediainfo /dev/cdrom | awk '/Disc status:/ {print $3}'` DISC_CAP=`dvd+rw-mediainfo /dev/cdrom | grep 'READ CAPACITY:' | cut -f2 -d"="` DISC_FULL=4300000000 echo "nagrywam: $DATA" echo "o wielkości: $DATA_CAP" echo "stan nośnika: $DISC_STAT" echo "zajętość nosnika $DISC_CAP" echo "dopuszczalna zajętość nośnika: $DISC_FULL" if [ "$((DISC_CAP+DATA_CAP))" -gt "$DISC_FULL" ]; then echo "nima miejsca, nie bede nagrywał" eject exit fi if [ "$DISC_STAT" == "blank" ]; then echo 'empty -> write_disc' growisofs -speed=8 -Z $DEV -R -J $DATA elif [ "$DISC_STAT" == "appendable" ]; then echo 'is_session -> write_disc' growisofs -speed=8 -M $DEV -R -J $DATA else echo "cos nie gra" | mail admin@redtube.com fi
czyli sprawdza czy nośnik jest pusty/częsciowo zapełniony/całkowicie zapełniony
podejmując odpowiednią akcje
Offline
Time (s) | Query |
---|---|
0.00008 | SET CHARSET latin2 |
0.00003 | SET NAMES latin2 |
0.00056 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.22.249.229' WHERE u.id=1 |
0.00073 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.22.249.229', 1732423286) |
0.00038 | SELECT * FROM punbb_online WHERE logged<1732422986 |
0.00021 | SELECT topic_id FROM punbb_posts WHERE id=150629 |
0.00054 | SELECT id FROM punbb_posts WHERE topic_id=17103 ORDER BY posted |
0.00056 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=17103 AND t.moved_to IS NULL |
0.00005 | SELECT search_for, replace_with FROM punbb_censoring |
0.00050 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=17103 ORDER BY p.id LIMIT 0,25 |
0.00067 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=17103 |
Total query time: 0.00431 s |