Benutzer-Werkzeuge

Webseiten-Werkzeuge


run_compress_dd.sh

Einträge für die root Crontab




 
# Images komprimieren 
25 8,18 * * 1,5 /usr/local/scripts/run_compress_dd.sh -b usb -n radiobox -c14 -l1 -s
25 8,18 * * 2,6 /usr/local/scripts/run_compress_dd.sh -b usb -n raven -c14 -l1 -s
59 9,19 * * 3,7 /usr/local/scripts/run_compress_dd.sh -b usb -n greenline -c14 -l1 -z18 -s
35 17  * * 1,3 /usr/local/scripts/run_compress_dd.sh -b usb -n neonlight -c14 -l1 -z18 -s
15 17  * * 5,7 /usr/local/scripts/run_compress_dd.sh -b usb -n neonlight -c14 -l1 -z18 -s
#
# Images loeschen 
26 11 * * 5,7 /usr/local/scripts/run_compress_dd.sh -b usb -n neonlight -c14 -d 
31 11 * * 5,7 /usr/local/scripts/run_compress_dd.sh -b usb -n radiobox -c14 -d 
46 11 * * 5,7 /usr/local/scripts/run_compress_dd.sh -b usb -n raven -c14 -d 
41 11 * * 5,7 /usr/local/scripts/run_compress_dd.sh -b usb -n greenline -c14 -d 
#
# Images verschieben ins ARCHIVE
50 18 5-9 * * /usr/local/scripts/run_compress_dd.sh -b usb -n neonlight -m
00 19 5-11 * * /usr/local/scripts/run_compress_dd.sh -b usb -n radiobox -m
10 19 5-9 * * /usr/local/scripts/run_compress_dd.sh -b usb -n raven -m
20 19 5-9 * * /usr/local/scripts/run_compress_dd.sh -b usb -n greenline -m



Optionsparameter

Ausgabe der Hilfe (Option -h) für das Shellscript.

root:~# /usr/local/scripts/run_compress_dd.sh -h
Syntax: /usr/local/scripts/run_compress_dd.sh [-h | -n <hostname> | -c <2...n> | -l <1-9> | -z <anzahl> | -d | -s | -m] | -b <nfs|usb>

 -h (help):             diese Hilfeseite anzeigen
 -c (archive counter):  Anzahl der zu archivierenden Backupversionen (gueltiger Wert=>1) die aufgehoben werden
 -l (compress level):   Qualitaet der Komprimierung (1=schnellste Kompr. 9=beste Kompr.)
 -z (zip):              Anzahl n (Default=12) der Images die pro Lauf max. komprimiert werden
 -d (delete only):      nur Anzahl n Backupversionen behalten, keine Komprimierung durchfuehren
 -s (shrink):           Backuplauf durchfuehren
 -m (move):             Aeltesten Backupsatz ins Archiv verschieben
 -n (name):             Hostname dessen Backupimages komprimiert werden sollen
 -b (backupmedia)       verwendetes Backupmedium (NAS oder USB-Disk)



Codelisting Konfigurationsdateien

Alle Hostnamen deren Backupdateien aus dem Sicherungslauf des Shellscriptes run_lvmsnap.sh komprimiert werden sollen.

/etc/compress_dd.conf
dagobert
micky
tick
trick
track



/usr/local/scripts/smtpmail.conf
SMTP_RECIPIENT="info@meine-empfaenger-mailadresse.de"
SMTP_SENDER="info@meine-sender-mailadresse.de"
SMTP_SERVER="smtpserver.meinprovider.de"
SMTP_MAIL_PWD="geheim"



Codelisting Shellscript

run_compress_dd.sh
#!/bin/bash
########## Globale Variablendefinitionen ##########
CONF_FILE="/etc/compress_dd.conf"
ARCHIVE_COUNTER="3"
COMPRESS_LEVEL="1"
LOCKPATH="/var/tmp"
LOCKFILE_LVMSNAP="run_lvmsnap.sh.lck"
MAILRECIPIENT="michael@localhost"
MAX_FILE_TO_ZIP="12"
SMTPCONF="/usr/local/scripts/smtpmail.conf"
SMTPMAILER=`which sendemail`
 
########## Funktionsdefinitionen ##########
usage()
{
	echo "Syntax: $0 [-h | -n <hostname> | -c <2...n> | -l <1-9> | -z <anzahl> | -d | -s | -m] | -b <nfs|usb>"
	echo ""
	echo " -h (help):             diese Hilfeseite anzeigen"
	echo " -c (archive counter):  Anzahl der zu archivierenden Backupversionen (gueltiger Wert=>1) die aufgehoben werden"
	echo " -l (compress level):   Qualitaet der Komprimierung (1=schnellste Kompr. 9=beste Kompr.)"
	echo " -z (zip):              Anzahl n (Default=12) der Images die pro Lauf max. komprimiert werden"
	echo " -d (delete only):      nur Anzahl n Backupversionen behalten, keine Komprimierung durchfuehren"
	echo " -s (shrink):           Backuplauf durchfuehren"
	echo " -m (move):             Aeltesten Backupsatz ins Archiv verschieben"
	echo " -n (name):             Hostname dessen Backupimages komprimiert werden sollen"
	echo " -b (backupmedia)       verwendetes Backupmedium (NAS oder USB-Disk)"
	exit 1
}
 
 
do_lock_moveperm()
{
	if [ "$1" = "on" ]
		then
		if [ ! -e "$LOCKPATH/$LOCKFILE_MOVEPERM" ]
			then
			echo " --> Attention no log file $LOCKPATH/$LOCKFILE_MOVEPERM exists" >> $LOGFILE 2>&1
			echo " --> Trying create a lock file for moving the monthly backup sets" >> $LOGFILE 2>&1
			date '+%s' > $LOCKPATH/$LOCKFILE_MOVEPERM
			RC=$?
			if [ $RC -eq 0 ]
				then
				echo " --> Lock file $LOCKPATH/$LOCKFILE_MOVEPERM was created" >> $LOGFILE 2>&1
			elif [ $RC -ne 0 ]
				then
				echo " --> Lock file $LOCKPATH/$LOCKFILE_MOVEPERM could not be created" >> $LOGFILE 2>&1
			fi
		else
			LOCKFILE_TIMESTAMP=`stat $LOCKPATH/$LOCKFILE_MOVEPERM|egrep ^Modify:|cut -d" " -f2,3|cut -d"." -f1`
			echo " --> Verify lock file $LOCKPATH/$LOCKFILE_MOVEPERM from $LOCKFILE_TIMESTAMP for moving the monthly backup set" >> $LOGFILE 2>&1
			HISTORICAL_MOVEDATE=`cat $LOCKPATH/$LOCKFILE_MOVEPERM`
			CURRENT_MOVEDATE=`date '+%s'`
			# 30 Tage = 2592000 Sekunden 
			# 28 Tage = 2419200 Sekunden 
			MOVE_INTERVAL=2419200
			MOVE_INTERVAL_DAYS=`expr $MOVE_INTERVAL / 86400`
			# Alle 28 Tage einen Backup verschieben
			TIME2MOVE=`expr $CURRENT_MOVEDATE - $HISTORICAL_MOVEDATE`
		fi
	elif [ "$1" = "off" ]
		then
		LOCKFILE_TIMESTAMP=`stat $LOCKPATH/$LOCKFILE_MOVEPERM|egrep ^Modify:|cut -d" " -f2,3|cut -d"." -f1`
		rm -v $LOCKPATH/$LOCKFILE_MOVEPERM >> $LOGFILE 2>&1
		echo " --> Old lock file $LOCKPATH/$LOCKFILE_MOVEPERM is deleted from $LOCKFILE_TIMESTAMP" >> $LOGFILE 2>&1
 
 
	fi
}
 
 
do_lock()
{
	if [ "$1" = "on" ]
		then
		echo " --> Processing begins now" >> $LOGFILE 2>&1
		pidof -x $0 > $LOCKPATH/$LOCKFILE
		echo " --> Set lock in file $LOCKPATH/$LOCKFILE" >> $LOGFILE 2>&1
	elif [ "$1" = "off" ]
		then
		rm -v $LOCKPATH/$LOCKFILE >> $LOGFILE 2>&1
		echo " --> Script run complete" >> $LOGFILE 2>&1
	fi
}
 
 
do_delete_older_lockfile()
{
	# Lockfile aelter als 4 Stunden (210 min) loeschen (unter /var/lock/run_compress_dd.sh_<hostname>.lck)
	OLDER_LOCKFILE=`find $LOCKPATH -name $LOCKFILE -mmin +210`
	if [ "$OLDER_LOCKFILE" ]
		then
		echo " --> A lock file $LOCKPATH/$LOCKFILE is older than 3.5 hours (210 min) from a previous processing has been deleted" >> $LOGFILE 2>&1
		rm $LOCKPATH/$LOCKFILE
	elif [ "$OLDER_LOCKFILE" = "" ]
		then
		echo " --> No lock file $LOCKPATH/$LOCKFILE exists older than 3.5 hours from a previous processing" >> $LOGFILE 2>&1
	fi
}
 
 
do_runtest()
{
	do_delete_older_lockfile
	if [ ! -e "$LOCKPATH/$LOCKFILE" -a ! -e "$LOCKPATH_LVMSNAP/$LOCKFILE_LVMSNAP" ]
		then
		do_lock on
	elif [ -e "$LOCKPATH/$LOCKFILE" ]
		then
		echo " --> No run available (lock file: $LOCKPATH/$LOCKFILE)" >> $LOGFILE 2>&1
		print_message LOCK1
		create_logentry stop
		exit 2
	elif [ -e "$LOCKPATH_LVMSNAP/$LOCKFILE_LVMSNAP" ]
		then
		echo " --> No run available (lock file: $LOCKPATH_LVMSNAP/$LOCKFILE_LVMSNAP)" >> $LOGFILE 2>&1
		print_message LOCK2
		create_logentry stop
		exit 3
	fi
 
}
 
 
create_logentry()
{
	if [ "$1" = "start" ]
		then
		LOGFILE_START_TIMESTAMP=`date '+%Y-%m-%d %H:%M:%S'`
		echo "[Log started: $LOGFILE_START_TIMESTAMP]" >> $LOGFILE
	elif [ "$1" = "stop" ]
		then
		LOGFILE_END_TIMESTAMP=`date '+%Y-%m-%d %H:%M:%S'`
		echo "[Log ended: $LOGFILE_END_TIMESTAMP]" >> $LOGFILE
	fi
}
 
 
do_compress()
{
	DD_COUNTER=`find $BACKUP_PATH -name "*.dd" | wc -l`
	DD_COUNTER=`expr $DD_COUNTER + 0`
	if [ $DD_COUNTER -gt 0  ]
		then
		echo "" >> $LOGFILE 2>&1
		echo " --> Start the compression of the backup set of $MASCHINENAME" >> $LOGFILE 2>&1
		#find $BACKUP_PATH -name "*.dd" | tail -$MAX_FILE_TO_ZIP | xargs pbzip2 -m150 -v -$COMPRESS_LEVEL >> $LOGFILE 2>&1
		find $BACKUP_PATH -name "*.dd" | tail -$MAX_FILE_TO_ZIP | xargs lzop -U -v -$COMPRESS_LEVEL >> $LOGFILE 2>&1
		RC=$?
		echo " --> Complete the compression of the backup set of $MASCHINENAME" >> $LOGFILE 2>&1
	elif [ $DD_COUNTER -eq 0 ]
		then
		echo " --> No uncompressed image of maschine $MASCHINENAME available"  >> $LOGFILE 2>&1
		RC=0
	fi
}
 
 
do_del_oldest_backup()
{
	if [ $RC -eq 0 ]
		then
		BACKUP_COUNTER=`find $BACKUP_PATH -type d -name "????-??-??-????" | wc -l`
		if [ $BACKUP_COUNTER -gt $ARCHIVE_COUNTER ]
			then
			SUM_BACKUPDIR=`ls -1r $BACKUP_PATH | wc -l`
			TO_DEL_BACKUPDIR=`expr $SUM_BACKUPDIR - $ARCHIVE_COUNTER`
			OLDEST_BACKUPDIR=`ls -1r $BACKUP_PATH | tail -$TO_DEL_BACKUPDIR`
			for DEL in $OLDEST_BACKUPDIR
				do
				echo ""  >> $LOGFILE 2>&1
				echo " --> Remove the oldest backup sets from the archive"  >> $LOGFILE 2>&1
				rm -rv $BACKUP_PATH/$DEL >> $LOGFILE 2>&1
			done
 
		elif [ $BACKUP_COUNTER -le $ARCHIVE_COUNTER ]
			then
			echo " --> Number of archive versions ($BACKUP_COUNTER of $ARCHIVE_COUNTER) within limits" >> $LOGFILE 2>&1
		fi
	elif [ $RC -ne 0 ]
		then
		echo ""  >> $LOGFILE 2>&1
		echo " --> Error (RC=$RC) during compression" >> $LOGFILE 2>&1
	fi
	}
 
 
print_message()
{
	NOARGUMENT="Bei der Option -$OPTION wurde kein Wert angegeben"
	MISSINGARGUMENT="Bei der Option -$OPTION wurde ein falscher Wert angegeben"
	NOTAVAILIBLEOPT="Option $2 ist nicht erlaubt und wird ignoriert"
	TOSMALLARGUMENT="Bei der Option -$OPTION wurde ein zu kleiner Wert angegeben"
	NO_RUN1="Es laueft noch die Komprimierung der LVM-Snapshots oder die Verarbeitung wurde abgebrochen"
	NO_RUN2="Es laeuft noch ein LVM-Snapshot oder die Verarbeitung wurde abgebrochen"
 
	if [ "$1" = "MISSINGARGUMENT" ]
		then
		echo $MISSINGARGUMENT
	elif [ "$1" = "NOTAVAILIBLEOPT" ]
		then
		echo $NOTAVAILIBLEOPT
	elif [ "$1" = "TOSMALLARGUMENT" ]
		then
		echo $TOSMALLARGUMENT
	elif [ "$1" = "LOCK1" ]
		then
		echo $NO_RUN1
	elif [ "$1" = "LOCK2" ]
		then
		echo $NO_RUN2
	elif [ "$1" = "NOARGUMENT" ]
		then
		echo $NOARGUMENT
	fi
}
 
 
do_mailsend()
{
	MAILSUBJECT=$1
	if [ "$SMTPMAILER" ]
		then
		. "$SMTPCONF"
		sed -n "/\[Log started: $LOGFILE_START_TIMESTAMP\]/,/\[Log ended: $LOGFILE_END_TIMESTAMP\]/p" $LOGFILE | sendemail -q -f $SMTP_SENDER -t $SMTP_RECIPIENT -u "$MAILSUBJECT" -s $SMTP_SERVER -xu $SMTP_RECIPIENT -xp $SMTP_MAIL_PWD
	else
		sed -n "/\[Log started: $LOGFILE_START_TIMESTAMP\]/,/\[Log ended: $LOGFILE_END_TIMESTAMP\]/p" $LOGFILE | mailx -s "$MAILSUBJECT" $MAILRECIPIENT
	fi
}
 
 
do_naswakeup()
{
	ping -c4 -q -W10 diskstation >/dev/null 2>&1
	RC_PING=`echo $?`
	if [ "$RC_PING" = "0" ]
		then
		echo " --> Backup media (NAS) is awake" >> $LOGFILE 2>&1
		sleep 10
		RC_NFS=`mount | grep -o "$BACKUP_MOUNTDIR type nfs " | cut -d" " -f3`
		if [ "$RC_NFS" = "nfs" ]
			then
			echo " --> NFS on backup media (NAS) is available" >> $LOGFILE 2>&1
		elif [ "$RC_NFS" != "nfs" ]
			then
			echo " --> NFS on backup media (NAS) is not available" >> $LOGFILE 2>&1
		fi
	elif [ "$RC_PING" != "0" ]
		then
		echo " --> Backup media (NAS) is not awake" >> $LOGFILE 2>&1
	fi
}
 
 
do_availability_backupmedia()
{
	RC=""
	if [ "$BACKUP_MEDIA_TYPE" = "nfs" ]
		then
		BACKUP_MOUNTDIR_CHECK=`mount | grep -o "$BACKUP_MOUNTDIR type nfs " | cut -d" " -f1`
	elif [ "$BACKUP_MEDIA_TYPE" = "usb" ]
		then
   	BACKUP_MOUNTDIR_CHECK=`mount | grep -o "$BACKUP_MOUNTDIR type ext4 " | cut -d" " -f1`
	fi
 
	if [ "$BACKUP_MOUNTDIR_CHECK" = "$BACKUP_MOUNTDIR" ]
		then
		RC=0
		echo " --> Remote backup (NAS-Station or USB-Station) directory is available" >> $LOGFILE 2>&1
	else
		mount $BACKUP_MOUNTDIR >> $LOGFILE 2>&1
		if [ $? = "0" ]
			then
			RC=0
		else
			RC=1
			echo " --> No backup media (NAS-Station or USB-Station) available" >> $LOGFILE 2>&1
		fi
	fi
}
 
 
print_startup_parameter()
{
	echo -n " Startup Parameters:" >> $LOGFILE 2>&1
	echo " $CALL_PARAMETER" >> $LOGFILE 2>&1
	echo "" >> $LOGFILE 2>&1
}
 
print_additional_archive_info()
{
	echo "$1" >> $LOGFILE 2>&1
}
 
 
move_backup()
{
	if [ ! -d "$ARCHIVE_PATH" ]
		then
		mkdir $ARCHIVE_PATH
	fi
	BACKUP_COUNTER=`find $BACKUP_PATH -type d -name "????-??-??-????" | wc -l`
	if [ $BACKUP_COUNTER -gt 1 ]
		then
		echo " --> Try to move the oldest backup sets to the archive directory" >> $LOGFILE 2>&1
		OLDEST_BACKUPDIR=`ls -1r $BACKUP_PATH | tail -1`
		mv -v $BACKUP_PATH/$OLDEST_BACKUPDIR $ARCHIVE_PATH >> $LOGFILE 2>&1
		echo " --> All backup sets on the archive directory moved" >> $LOGFILE 2>&1
	fi
}
 
 
do_set_enviroment()
{
   if [ "$BACKUP_MEDIA_TYPE" = "nfs" ]
      then
		BACKUP_PATH="/mnt/import/diskdump/"
		BACKUP_MOUNTDIR="/mnt/import/diskdump"
		ARCHIVE_PATH="/mnt/import/archive/"
		LOCKPATH_LVMSNAP="$BACKUP_MOUNTDIR/lock"
   elif [ "$BACKUP_MEDIA_TYPE" = "usb" ]
      then
		BACKUP_PATH="/mnt/share/usbstation/diskdump/"
      BACKUP_MOUNTDIR="/mnt/share/usbstation"
		ARCHIVE_PATH="/mnt/share/usbstation/archive/"
		LOCKPATH_LVMSNAP="$BACKUP_MOUNTDIR/lock"
   else
      echo "Wrong backup media type $BACKUP_MEDIA_TYPE (nfs|usb)"
      exit 4
   fi
}
 
 
set_local_variables()
{
	MASCHINENAME=$1
	LOGFILE="/var/log/compress_dd_"$MASCHINENAME".log"
	BACKUP_PATH="$BACKUP_PATH$MASCHINENAME"
	ARCHIVE_PATH="$ARCHIVE_PATH$MASCHINENAME"
	LOCKFILE_MOVEPERM="move_perm_$MASCHINENAME.lck"
	LOCKFILE="`basename $0`_$MASCHINENAME.lck"
}
 
 
set_existing_hostnames()
{
	if [ -s "$CONF_FILE" ]
		then
		for ROW in `cat $CONF_FILE`
			do
			ARRAY_HOSTS[$INDEX_HOSTS]=$ROW
			INDEX_HOSTS=`expr $INDEX_HOSTS + 1`
		done
	else
		echo "Die Konfigurationsdatei $CONF_FILE mit den gueltigen Hostnamen existiert nicht, bitte anlegen!"
		exit 99
	fi
}
 
 
set_valid_hostname()
{
	for ROW in ${ARRAY_HOSTS[@]}
		do
		if [ "$ROW" = "$OPTARG" ]
			then
			VALID_HOST=$ROW
		fi
	done
	if [ -z "$VALID_HOST" ]
		then
		echo "Angebener Hostname $OPTARG ist nicht in der Konfigurationsdatei $CONF_FILE vorhanden"
		exit 99
	fi
}
 
 
debug_printarray()
{
	echo ""
	echo "-----------------Debuging Ausgabe--------------------"
	for I in ${ARRAY_HOSTS[@]}
		do
		echo $I
	done
	echo "-----------------Debuging Ausgabe--------------------"
	echo ""
}
 
 
if [ $# -eq 0 ]; then
	usage
fi
 
CALL_PARAMETER="$0 $@"
########## Hauptprogramm ##########
while getopts hb:n:c:z:l:dsmx OPTION
	do
	case $OPTION in
		h)
		usage
		;;
 
		b)
		BACKUP_MEDIA_TYPE=$OPTARG
		do_set_enviroment
		;;
 
		n)
		set_existing_hostnames
		set_valid_hostname
		set_local_variables $OPTARG
		;;
 
		l)
		if [ $OPTARG -gt 0 -a $OPTARG -lt 10 ]
			then
			COMPRESS_LEVEL=$OPTARG
		else
			FALSEOPT=$1
			print_message MISSINGARGUMENT $FALSEOPT
		fi
		;;
 
		c)
		if [ $OPTARG -lt 2 ]
			then
			FALSEOPT=$1
			print_message TOSMALLARGUMENT $FALSEOPT
			exit 2
		elif [ $OPTARG -ge 2 ]
			then
			ARCHIVE_COUNTER=$OPTARG
		else
			FALSEOPT=$1
			print_message MISSINGARGUMENT $FALSEOPT
			exit 3
		fi
		;;
 
		z)
		MAX_FILE_TO_ZIP=$OPTARG
		if [[ $OPTARG = -* ]]
			then
			print_message NOARGUMENT
			exit 99
		fi
		if [[ $OPTARG -eq 0 ]]
			then
			print_message TOSMALLARGUMENT
			exit 99
		fi
		;;
 
		s)
		create_logentry start
		print_startup_parameter
		do_runtest
		print_additional_archive_info	" --> Set compress level to value: $COMPRESS_LEVEL"
		print_additional_archive_info	" --> Set archive version(s) to value: $ARCHIVE_COUNTER"
		print_additional_archive_info	" --> Set maximum number of backup files to be compressed in a single pass on the value: $MAX_FILE_TO_ZIP"
		do_availability_backupmedia $BACKUP_MEDIA_TYPE
		if [ "$RC" != "0" ]
			then
			do_lock off
			create_logentry stop
			do_mailsend "[BATCH: COMPRESS IMAGE] $MASCHINENAME: Komprimierung der Images nicht durchfuehrbar. Diskstation nicht verfuegbar!"
		elif [ "$RC" = "0" ]
			then
			do_compress
			do_del_oldest_backup
			do_lock off
			create_logentry stop
			do_mailsend "[BATCH: COMPRESS IMAGE] $MASCHINENAME: Komprimierung der Images duruchgefuehrt"
		fi
		;;
 
		d)
		RC=0
		create_logentry start
		print_startup_parameter
		do_runtest
		do_availability_backupmedia $BACKUP_MEDIA_TYPE
		if [ "$RC" != "0" ]
			then
			do_lock off
			create_logentry stop
			do_mailsend "[BATCH: DELETE IMAGE] $MASCHINENAME: Loeschen der Images nicht moeglich. Diskstation nicht verfuegbar!"
		elif [ "$RC" = "0" ]
			then
			do_del_oldest_backup
			do_lock off
			create_logentry stop
			do_mailsend "[BATCH: DELETE IMAGE] $MASCHINENAME: Loeschen der Images durchgefuehrt"
		fi
		;;
 
		m)
		create_logentry start
		print_startup_parameter
		do_runtest
		do_availability_backupmedia $BACKUP_MEDIA_TYPE
		if [ "$RC" != "0" ]
			then
			do_lock off
			create_logentry stop
			do_mailsend "[BATCH: MOVE IMAGE] $MASCHINENAME: Verschieben der Images nicht durchfuehrbar. Diskstation nicht verfuegbar!"
		fi
 
		do_lock_moveperm on
		if [ $TIME2MOVE -gt $MOVE_INTERVAL ]
			then
			move_backup
			do_lock off
			do_lock_moveperm off
			do_lock_moveperm on ###
			create_logentry stop
			do_mailsend "[BATCH: MOVE IMAGES] $MASCHINENAME: Verschieben der Images durchgefuehrt"
		else
			do_lock off
			create_logentry stop
			do_mailsend "[BATCH: MOVE IMAGES] $MASCHINENAME: Verschieben der Images nicht noetig. Zeitintervall von $MOVE_INTERVAL_DAYS Tagen noch nicht erreicht"
		fi		
		;;
 
		x)
		debug_printarray
		;;
 
		\?)
		FALSEOPT=$1
		print_message NOTAVAILIBLEOPT $FALSEOPT
		exit 4
		;;
	esac
done
shift `expr $OPTIND - 1`
 
exit 0
#EOF
run_compress_dd.sh.txt · Zuletzt geändert: 2020/02/21 18:38 von dwadmin