Page 1 of 1

ausgabe von gzip unterdrücken und kbyte in mbyte umwandeln

Posted: 2005-10-30 13:11
by syberia
ich habe mir ein automatiches backupscript geschrieben das mir jede nacht ein backup als email schickt
die email ist schön im asciiformat formatiert und sieht auch alles toll aus
allerdings ist zwischendurch die ausgabe von gzip
genauer gesagt folgende:

Code: Select all

         compressed        uncompressed  ratio uncompressed_name
             353344             2713602  87.0% /pfad/zur/datei.gz
das stört mich etwas und das hätte ich da gerne raus aus der email
ich schreibe die komplette ausgabe (die bis auf diese zwei zeilen aus echos besteht) in eine datei mit folgendem anfangsbefehl

Code: Select all

LOGFILE=/pfad/zur/datei.log
touch $LOGFILE
exec 6>&1
exec > $LOGFILE
warum ich das so mache? weil ich es so bei nem anderen backupscript gefunden habe und es funktioniert :)

zum schluss wird diese logdatei noch als emailcontent verschickt

außerdem habe ich nochein problem mit dem formatieren der zahlen
ich schicke zu jeder email den aktuellen speicherplatz der backups
das mache ich mit folgendem befehl:

Code: Select all

SIZEGESAMT=`du -c /var/www/backups/ | grep "[[:digit:][:space:]]insgesamt$" |sed s/s*insgesamt//`
danach wandel ich die kbyte in mbyte um:

Code: Select all

SIZEGESAMT=$[$SIZEGESAMT / 1024]
da kommt dann irgendeine zahl raus
diese zahl hätte ich nun aber gerne mit 3 stellen hinter dem komma und vorzusweise mit führenden nullen damit alle zahlen einheitlich sind (ne andere lösung mit leerzeichen wäre auch okay)
wir mache ich das?

Re: ausgabe von gzip unterdrücken und kbyte in mbyte umwandeln

Posted: 2005-10-30 13:27
by Joe User
Poste bitte das vollständige Script, sonst müssen wir wieder zur kaputten Glaskugel greifen...

Re: ausgabe von gzip unterdrücken und kbyte in mbyte umwandeln

Posted: 2005-10-30 13:42
by syberia

Code: Select all

#!/bin/bash


PATH=/usr/local/bin:/usr/bin:/bin
YEAR=`date +%Y`
MONTH=`date +%m`
DAY=`date +%d`
DATE=`date +%Y_%m_%d`
TIME=`date +%H:%I:%S`
MAILDATE=`date +%d.%m.%Y`
MAILADDR="meine mail"
BACKUPFILES=""

USERNAME=root
PASSWORD=
DBHOST=localhost



LOGFILE=/var/www/backups/log/$YEAR-$MONTH-$DAY.log
touch $LOGFILE
exec 6>&1
exec > $LOGFILE

VERZEICHNIS=/var/www/backups/$YEAR/$MONTH/$DAY
echo "################################################################################"
echo "#                                                                              #"
echo "# Backupscript                                                                 #"
echo "#                                                                              #"
echo "# Datum: $MAILDATE                                                            #"
echo "# Uhrzeit: $TIME                                                            #"
echo "#                                                                              #"
echo "################################################################################"
echo "#                                                                              #"

if [ ! -e "$VERZEICHNIS" ]
	then
	mkdir -p "$VERZEICHNIS"
fi
echo "# Verzeichnis wurde angelegt                                                   #"

tar -cf $VERZEICHNIS/files_$DATE.tar /var/www/
BACKUPFILES="$BACKUPFILES $VERZEICHNIS/files_$DATE.tar"


echo "# Dateien wurden Gepackt                                                       #"

OPT="--quote-names --opt --databases"

dbdump () {
mysqldump --user=$USERNAME --password=$PASSWORD --host=$DBHOST $OPT $1 > $2
return 0
}

compression () {
gzip -f "$1"
gzip -l "$1.gz"
return 0
}


dbdump "pyrogx" "$VERZEICHNIS/db_$DATE.sql"
compression "$VERZEICHNIS/db_$DATE.sql"
BACKUPFILES="$BACKUPFILES $VERZEICHNIS/db_$DATE.sql.gz"


echo "# Datenbank wurde gesichert                                                    #"
echo "#                                                                              #"
echo "################################################################################"
echo "#                                                                              #"


SIZEGESAMT=`du -c /var/www/backups/ | grep "[[:digit:][:space:]]insgesamt$" |sed s/s*insgesamt//`
SIZEGESAMT=$[$SIZEGESAMT / 1024]
SIZEJAHR=`du -c /var/www/backups/$YEAR/ | grep "[[:digit:][:space:]]insgesamt$" |sed s/s*insgesamt//`
SIZEJAHR=$[$SIZEJAHR / 1024]
SIZEMONAT=`du -c /var/www/backups/$YEAR/$MONTH/ | grep "[[:digit:][:space:]]insgesamt$" |sed s/s*insgesamt//`
SIZEMONAT=$[$SIZEMONAT / 1024]
SIZETAG=`du -c /var/www/backups/$YEAR/$MONTH/$DAY/ | grep "[[:digit:][:space:]]insgesamt$" |sed s/s*insgesamt//`
SIZETAG=$[$SIZETAG / 1024]

echo "# Größe des Backupordners                                                      #"
echo "#                                                                              #"
echo "# Aktueller Tag $DAY:        $SIZETAG MB                                                #"
echo "# Aktueller Monat $MONTH:     $SIZEMONAT MB                                                #"
echo "# Aktuelles Jahr $YEAR:    $SIZEJAHR MB                                                #"
echo "# Gesamtgröße:            $SIZEGESAMT MB                                                #"
echo "#                                                                              #"
echo "################################################################################"
echo "#                                                                              #"

ETC=`du -c /etc/ | grep "[[:digit:][:space:]]insgesamt$" |sed s/s*insgesamt//`
ETC=$[$ETC / 1024]
WWW=`du -c /var/www/ | grep "[[:digit:][:space:]]insgesamt$" |sed s/s*insgesamt//`
WWW=$[$WWW / 1024]
LOG=`du -c /var/log/ | grep "[[:digit:][:space:]]insgesamt$" |sed s/s*insgesamt//`
LOG=$[$LOG / 1024]
VAR=`du -c /var/ | grep "[[:digit:][:space:]]insgesamt$" |sed s/s*insgesamt//`
VAR=$[$VAR / 1024]

echo "# Größe der wichtigsten Ordner                                                 #"
echo "#                                                                              #"
echo "# /etc/                    =  $ETC MB                                            #"
echo "# /var/                    = $VAR MB                                            #"
echo "# /var/log/                =  $LOG MB                                            #"
echo "# /var/www/                =  $WWW MB                                            #"
echo "#                                                                              #"
echo "################################################################################"

BACKUPFILES=`echo "$BACKUPFILES" | sed -e "s# # -a #g"`
mutt -s "Dateisicherung vom $MAILDATE" $BACKUPFILES $MAILADDR < $LOGFILE


exit 0
da fällt mir grad ein das wenn ich zwei verzeichnisse sichern will mutt meckert wegen irgendeinem speicherzugriffsfehler

Re: ausgabe von gzip unterdrücken und kbyte in mbyte umwandeln

Posted: 2005-11-04 05:10
by syberia
ich habe es inzwischen geschafft das die zahlen alle untereinander sind und das design dadurch nicht zerrissen wird (egal wie groß die zahlen sind)
allerdings stört mich immernoch die anzeige der gzip ausgabe
habs mal mit tar probiert aber da war die tar datei größer als die ungepackte sql-datei

außerdem fänd ich es super wenn ich die mbyte mit drei stellen hinterm komma angezeigt bekommen würde

Re: ausgabe von gzip unterdrücken und kbyte in mbyte umwandeln

Posted: 2005-11-04 16:50
by jaytee
man du

Schonmal du -h probiert ?

cya jt

Code: Select all

system:/export/ups/backup/best_archiv # du -c
12      ./00
18832   ./01
22030   ./02
24194   ./03
1175    ./04
8       ./99
142719  .
142719  insgesamt

system:/export/ups/backup/best_archiv # du -ch
12K     ./00
19M     ./01
22M     ./02
24M     ./03
1,2M    ./04
8,0K    ./99
140M    .
140M    insgesamt
system:/export/ups/backup/best_archiv #