X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=changer-src%2Fchg-manual.sh.in;fp=changer-src%2Fchg-manual.sh.in;h=0000000000000000000000000000000000000000;hb=94a044f90357edefa6f4ae9f0b1d5885b0e34aee;hp=1c45651688456ad18e40e9b1574dc9d4b095317c;hpb=d3b2175e084f88c8736ad7073eacbf4670147aec;p=debian%2Famanda diff --git a/changer-src/chg-manual.sh.in b/changer-src/chg-manual.sh.in deleted file mode 100644 index 1c45651..0000000 --- a/changer-src/chg-manual.sh.in +++ /dev/null @@ -1,365 +0,0 @@ -#!@SHELL@ -# -# Exit Status: -# 0 Alles Ok -# 1 Illegal Request -# 2 Fatal Error -# - -# try to hit all the possibilities here -prefix=@prefix@ -exec_prefix=@exec_prefix@ -sbindir=@sbindir@ -libexecdir=@libexecdir@ - -PATH=$sbindir:$libexecdir:/usr/bin:/bin:/usr/sbin:/sbin:/usr/ucb -export PATH - -# -# Changer config file (changerfile) -# -# resend_mail=900 # 15 minutes -# timeout_mail=604800 # 7 days -# request="tty" # Use the tty to ask the user to change tape. -# # Can't be use by cron -# request="email" # Send an email to ask the user to change tape. -# request="tty_email" # Use the tty if it exist or send an email. -# #Default is "tty_email" -# -# - -if [ -d "@AMANDA_DBGDIR@" ]; then - logfile=@AMANDA_DBGDIR@/changer.debug -else - logfile=/dev/null -fi - -USE_VERSION_SUFFIXES="@USE_VERSION_SUFFIXES@" -if test "$USE_VERSION_SUFFIXES" = "yes"; then - SUF="-@VERSION@" -else - SUF= -fi - -myname=$0 - -EGREP='@EGREP@' - -if [ -x $sbindir/ammt$SUF ]; then - MT=$sbindir/ammt$SUF - MTF=-f -elif [ -x "@MT@" ]; then - MT=@MT@ - MTF=@MT_FILE_FLAG@ -else - answer=" $myname: mt program not found" - code=1 - echo "Exit -> $answer" >> $logfile - echo "$answer" - exit $code -fi -echo MT "->" $MT $MTF >> $logfile - -if [ -x $sbindir/amdd$SUF ]; then - DD=$sbindir/amdd$SUF -elif [ -x "@DD@" ]; then - DD=@DD@ -else - answer=" $myname: dd program not found" - code=1 - echo "Exit -> $answer" >> $logfile - echo "$answer" - exit $code -fi -echo DD "->" $DD >> $logfile - -MAILER=@MAILER@ -ONLINEREGEX="ONLINE|READY|sense[_ ]key[(]0x0[)]|sense key error = 0|^er=0$|, mt_erreg: 0x0|^Current Driver State: at rest$" -REPORTTO=`amgetconf$SUF mailto` -tape=`amgetconf$SUF tapedev` - -if [ -z "$tape" ]; then - echo " tapedev not specified in amanda.conf." - exit 2 -fi - -ORG=`amgetconf$SUF ORG` - -firstslot=1 -lastslot=99 -resend_mail=900 # 15 minutes -timeout_mail=604800 # 7 days - -changerfile=`amgetconf$SUF changerfile` - -conf_match=`expr "$changerfile" : .\*\.conf\$` -if [ $conf_match -ge 6 ]; then - configfile=$changerfile - changerfile=`echo $changerfile | sed 's/.conf$//g'` -else - configfile=$changerfile.conf -fi - -cleanfile=$changerfile-clean -accessfile=$changerfile-access -slotfile=$changerfile-slot -[ ! -f $cleanfile ] && echo 0 > $cleanfile -[ ! -f $accessfile ] && echo 0 > $accessfile -[ ! -f $slotfile ] && echo $firstslot > $slotfile -cleancount=`cat $cleanfile` -accesscount=`cat $accessfile` -slot=`cat $slotfile` - -request_tty() { - if > /dev/tty; then - echo -n "Insert tape into slot $1 and press return" > /dev/tty - read ANSWER < /dev/tty - else - echo "no /dev/tty to ask to change tape" - exit 1 - fi -} - - -### -# If $changerfile exists, source it into this script. One reason is to -# override the request() function above which gets called to request -# that a tape be mounted. Here is an alternate versions of request() -# that does things more asynchronous: -# -request_email() { - # Send E-mail about the mount request and wait for the drive - # to go ready by checking the status once a minute. Repeat - # the E-mail once an hour in case it gets lost. - timeout=0 - gtimeout=$timeout_mail - while true;do - if [ $gtimeout -le 0 ]; then - echo "timeout waiting for tape online" - exit 1; - fi - if [ $timeout -le 0 ]; then - msg="insert Amanda tape into slot $1 ($tape)" - subject="$ORG AMANDA TAPE MOUNT REQUEST FOR SLOT $1" - echo "$msg" | $MAILER -s "$subject" $REPORTTO - timeout=$resend_mail - fi - echo " -> rewind $tape" >> $logfile - $MT $MTF $tape rewind >> $logfile 2>&1 - echo " -> status $tape" >> $logfile - used=`$MT $MTF $tape status 2>&1 | tee -a $logfile | $EGREP "$ONLINEREGEX"` - echo " -> loaded <$used>" >> $logfile - if [ ! -z "$used" ];then - break - fi - sleep 60 - timeout=`expr $timeout - 60` - gtimeout=`expr $gtimeout - 60` - done -} -request_tty_email() { - if > /dev/tty; then - echo -n "Insert tape into slot $1 and press return" > /dev/tty - read ANSWER < /dev/tty - else - request_email "$1" - fi -} - -request() { - if [ X"$request" = X"tty" ]; then - request_tty "$1" - else if [ X"$request" = X"email" ]; then - request_email "$1" - else - request_tty_email "$1" - fi - fi -} - -if [ -f $configfile ]; then - . $configfile -fi - -# - -eject() { - echo " -> rewind $tape" >> $logfile - $MT $MTF $tape rewind >> $logfile 2>&1 - echo " -> status $tape" >> $logfile - used=`$MT $MTF $tape status 2>&1 | tee -a $logfile | $EGREP "$ONLINEREGEX"` - echo " -> loaded <$used>" >> $logfile - if [ ! -z "$used" ];then - echo " -> offline $tape" >> $logfile - $MT $MTF $tape offline >> $logfile 2>&1 - answer="$slot $tape" - code=0 - else - answer=" $myname: Drive was not loaded" - code=1 - fi - echo "Exit -> $answer" >> $logfile - echo "$answer" - exit $code -} - -# - -reset() { - echo " -> rewind $tape" >> $logfile - $MT $MTF $tape rewind >> $logfile 2>&1 - echo " -> status $tape" >> $logfile - used=`$MT $MTF $tape status 2>&1 | tee -a $logfile | $EGREP "$ONLINEREGEX"` - echo " -> loaded <$used>" >> $logfile - if [ ! -z "$used" ];then - answer="$slot $tape" - else - answer="0 $tape" - fi - echo "Exit -> $answer" >> $logfile - echo "$answer" - exit 0 -} - -# load # - -loadslot() { - echo " -> rewind $tape" >> $logfile - $MT $MTF $tape rewind >> $logfile 2>&1 - echo " -> status $tape" >> $logfile - used=`$MT $MTF $tape status 2>&1 | tee -a $logfile | $EGREP "$ONLINEREGEX"` - echo " -> loaded <$used>" >> $logfile - whichslot=$1 - case $whichslot in - current) - load=$slot - [ $load -eq 0 ] && load=$firstslot - [ $load -gt $lastslot ] && load=$firstslot - [ $load -lt $firstslot ] && load=$lastslot - ;; - next|advance) - load=`expr $slot + 1` - [ $load -gt $lastslot ] && load=$firstslot - ;; - prev) - load=`expr $slot - 1` - [ $load -lt $firstslot ] && load=$lastslot - ;; - first) - load=$firstslot - ;; - last) - load=$lastslot - ;; - [0-9]|[0-9][0-9]) - if [ $1 -lt $firstslot -o $1 -gt $lastslot ]; then - answer=" $myname: slot must be $firstslot .. $lastslot" - echo "Exit -> $answer" >> $logfile - echo "$answer" - exit 1 - fi - load=$1 - ;; - *) - answer=" $myname: illegal slot: $1" - echo "Exit -> $answer" >> $logfile - echo "$answer" - exit 1 - ;; - esac - # - if [ ! -z "$used" -a $load = $slot ];then - # already loaded - answer="$slot $tape" - echo "Exit -> $answer" >> $logfile - echo "$answer" - exit 0 - fi - - # if [ $load = $ecleanslot ]; then - # expr $cleancount + 1 > $cleanfile - # echo 0 > $accessfile - # else - expr $accesscount + 1 > $accessfile - # if [ $accesscount -gt 9 ]; then - # $myname -slot $cleanslot >/dev/null - # used=0 - # fi - # fi - - # - if [ ! -z "$used" ]; then - echo " -> offline $tape" >> $logfile - $MT $MTF $tape offline >> $logfile 2>&1 - used="" - fi - if [ $whichslot = advance ]; then - tape=/dev/null - else - echo " -> load $load" >> $logfile - while [ -z "$used" ]; do - request $load - echo " -> rewind $tape" >> $logfile - $MT $MTF $tape rewind >> $logfile 2>&1 - echo " -> status $tape" >> $logfile - used=`$MT $MTF $tape status 2>&1 | tee -a $logfile | $EGREP "$ONLINEREGEX"` - echo " -> loaded <$used>" >> $logfile - done - $DD if=$tape bs=32k count=1 >> $logfile 2>&1 - fi - echo $load > $slotfile - answer="$load $tape" - echo "Exit -> $answer" >> $logfile - echo "$answer" - exit 0 -} - -# - -info() { - echo " -> rewind $tape" >> $logfile - $MT $MTF $tape rewind >> $logfile 2>&1 - echo " -> status $tape" >> $logfile - used=`$MT $MTF $tape status 2>&1 | tee -a $logfile | $EGREP "$ONLINEREGEX"` - echo " -> loaded <$used>" >> $logfile - if [ -z "$used" ];then - answer="0 $lastslot 1" - else - answer="$slot $lastslot 1" - fi - echo "Exit -> $answer" >> $logfile - echo "$answer" - exit 0 -} - -# -# main part -# - -echo Args "->" "$@" >> $logfile -while [ $# -ge 1 ];do - case $1 in - -slot) - shift - loadslot $* - ;; - -info) - shift - info - ;; - -reset) - shift - reset - ;; - -eject) - shift - eject - ;; - *) - echo " $myname: Unknown option $1" - exit 2 - ;; - esac -done - -exit 0