====== /root/bin/cdrecord.sh ====== #!/bin/sh #==============================================================================# # # Dieses Skript erstellt aus einem Verzeichnis eine ISO-Datei und brennt diese. # #==============================================================================# # # Es wird mit dem Kommando "cdrecord -scanbus" nach dem Brenner gesucht. # Damit er gefunden werden kann, muss der Name des Brenners # (wie er in der Ausgabe des Kommandos zu sehen ist) unten eingegeben werden. # Es können auch mehrere Geräte, durch Leerzeichen getrennt, angegeben werden. # # Einer meiner Brenner: # > cdrecord -scanbus # ... # scsibus1: # 1,0,0 100) 'PLEXTOR ' 'PX-891SAF ' '1.J9' Removable CD-ROM # ... # # hier sind ein paar beispielhaft eingetragen, einer reicht aber :-) BRENNERNAMEN="PX-755A PX-820SA PX-891SAF" # #==============================================================================# #VERSION="v2013030300" #VERSION="v2018062600" VERSION="v2020030600" CACHE="128" # in MB SPEED="4" # 1-6 - fach BETRIEBSSYSTEM="$(uname -s)" OSREVISION="$(uname -r | tr -Cd '[0-9]')" #------------------------------------------------------------------------------# if [ "x${1}" != x ] ; then V="$(echo "${1}" | sed 's|/$||')" IMAGE="${V}.iso" echo "IMAGE='${IMAGE}'" if [ -e "${IMAGE}" ] ; then echo "Die Datei ${IMAGE} existiert bereits. ABBRUCH" exit 2 fi APPLICATION_ID="$(basename "${V}" | cut -c 1-128)" if [ -d "${V}" ] ; then if [ "$(uname -s)" = "SunOS" ] ; then # leider unterstuetzt die Solaris-Version den UTF-8-Zeichensatz nicht mkisofs -D -U -R -nobak -A "${APPLICATION_ID}" -pad -input-charset iso8859-15 -o ${IMAGE} ${V} elif [ "$(uname -s)" = "FreeBSD" ] ; then mkisofs -D -U -R -nobak -A "${APPLICATION_ID}" -pad -input-charset iso8859-15 -o ${IMAGE} ${V} else mkisofs -D -U -R -nobak -A "${APPLICATION_ID}" -pad -input-charset UTF-8 -o ${IMAGE} ${V} fi fi else echo "$0 [cd-tree]" echo "$0 [Datenverzeichnis]" echo "$0 /tmp/fritz/cd/" echo "$0 /tmp/fritz/cd.iso" echo "$0 /tmp/fritz/cd/ /tmp/fratz/cd/" echo "$0 /tmp/fritz/cd/ /tmp/fratz/cd.iso" exit 1 fi #==============================================================================# for RWNAME in ${BRENNERNAMEN} do BRENNERDEV="$(cdrecord -scanbus | fgrep "${RWNAME}" | awk '{print $1}')" if [ -n "${BRENNERDEV}" ] ; then echo "${BRENNERDEV}" #break else #------------------------------------------------------------------------------# if [ -z "${BRENNERDEV}" ] ; then #------------------------------------------------------------------------------# if [ "${BETRIEBSSYSTEM}" = "NetBSD" ] ; then BRENNERDEV="/dev/rcd0d" # CD-RW / DVD-RW elif [ "${BETRIEBSSYSTEM}" = "Linux" ] ; then # BRENNERDEV="/dev/scd0" # CD-RW / DVD-RW #BRENNERDEV="/dev/scd1" # CD-RW / DVD-RW BRENNERDEV="/dev/sr0" # CD-RW # BRENNERDEV="/dev/sr1" # CD-RW / DVD-RW #BRENNERDEV="/dev/dvd" # DVD-RW #BRENNERDEV="3,0,0" # CD-RW / DVD-RW elif [ "${BETRIEBSSYSTEM}" = "FreeBSD" ] ; then if [ "${OSREVISION}" -ge "90" ] ; then BRENNERDEV="/dev/${BRENNERDEV}" else if [ -z "$(kldstat | fgrep atapicam)" ] ; then echo " \"/dev/acd0\" funktioniert nicht! Um eine DVD-ROM brennen zu koennen, muss das Modul 'atapicam' geladen sein! Dann erhaelt man das Geraet \"/dev/cd0\", mit dem geht es dann: kldload atapicam echo 'atapicam_load=\"YES\"' >> /boot/loader.conf " kldload atapicam fi fi BRENNERDEV="$(camcontrol devlist|fgrep "${RWNAME}"|awk -F'(' '{sub("[)]","");gsub("[,]","\n");print $2}'|egrep '^cd')" if [ -z "${BRENNERDEV}" ] ; then BRENNERDEV="$(fgrep "${RWNAME}" /var/log/dmesg.boot|awk -F':' '{print $1}')" if [ -z "${BRENNERDEV}" ] ; then #BRENNERDEV="dev=ATA:/dev/acd0" BRENNERDEV="/dev/cd0" # 'PLEXTOR ' 'DVDR PX-820SA ' '1.00' Removable CD-ROM fi fi elif [ "${BETRIEBSSYSTEM}" = "SunOS" ] ; then #BRENNERDEV="/dev/sr0" # DVD-RW #BRENNERDEV="/dev/rdsk/c0t0d0p2" # CD-RW / DVD-RW BRENNERDEV="1,0,0" # Solaris 10 U6 else echo "nicht unterstuetztes OS..." exit fi #------------------------------------------------------------------------------# fi #------------------------------------------------------------------------------# fi done #==============================================================================# echo cdrecord -scanbus echo wodim --devices echo cdrecord -toc dev=${BRENNERDEV} if [ -z "${1}" ] ; then cdrecord -toc dev=${BRENNERDEV} echo "$0 [image.iso]" else if [ -d "${1}" ] ; then VERZ="`dirname ${1}`" DATEI="`basename ${1}`" /root/bin/make-iso.sh ${VERZ}/${DATEI}.iso ${1} IMAGE="${VERZ}/${DATEI}.iso" fi ##echo "cdrecord -v -eject -fs=${CACHE}m speed=${SPEED} dev=${BRENNERDEV} ${IMAGE}" ##cdrecord -v -eject -fs=${CACHE}m speed=${SPEED} dev=${BRENNERDEV} ${IMAGE} echo "cdrecord -v -eject -fs=${CACHE}m speed=${SPEED} dev=${BRENNERDEV} driveropts=burnfree ${IMAGE}" cdrecord -v -eject -fs=${CACHE}m speed=${SPEED} dev=${BRENNERDEV} driveropts=burnfree ${IMAGE} fi #------------------------------------------------------------------------------# echo " Es wurde die Datei '${IMAGE}' erstellt, sie kann gelöscht werden. "