Page 1 of 1

Kleines Script: Datein packen, per mail senden, ordner inhalt löschen.

Posted: 2007-04-01 14:44
by breiteseite
Hallo,

ich habe leider keiner Erfahrung im Linux-Scripting-Bereich aber vielleicht könnt ihr mir ja weiterhelfen.

Ich habe zwei Benutzer/Ordner:
gs28960 -> /home/gs28960/
gs28961 -> /home/gs28961/

Ich möchte täglich um 3 Uhr nachts, dass der Inhalt des Ordners /svss/ aus /home/$USER$/pb/ in eine .tar.gz gepackt wird, danach der Inhalt des Ordner (nicht der Ordner selbst) gelöscht wird und das Archiv an XxX@googlemail.com gesendet wird.

Re: Kleines Script: Datein packen, per mail senden, ordner inhalt löschen.

Posted: 2007-04-01 18:32
by der kleine tux
Hallo BreiteSeite :-D

ca so mkdir /backup

Code: Select all

#!/bin/bash
DATUM=`date +%d-%m-%y`
BACKDIR=/backup

tar czvf $BACKDIR/backup_$DATUM.tar.gz /home/gs28960/ /home/gs28961/
if [ "$?" != 0 ]
   then
     echo "Fehler aufgetreten"
else
     mail -s"Backup" -r backup@domain.tld  XxX@googlemail.com < $BACKDIR/backup_$DATUM.tar.gz
fi
sleep 10 
if [ -e $BACKDIR/backup_*.tar.gz ]; then
    rm -i $BACKDIR/backup_*.tar.gz
fi
ist ungetestet sollte aber so funktionieren .......
wenn du ohne abfrage löschen willst dann rm -f
Gruß

Re: Kleines Script: Datein packen, per mail senden, ordner inhalt löschen.

Posted: 2007-04-01 20:21
by breiteseite
Hallo kleiner Tux (so trifft man sich wieder),

das Script ist schonmal super, nur kommt bei mir kein Anhang an, sondern nur ziemliches Zeichenwirwarr.. also das wird nicht angehangen sondern direkt reingeschrieben.

Habe dein Script mal etwas geändert, da er bei -r meckerte...

Code: Select all

#!/bin/bash
DATUM=`date +%d-%m-%y`
BACKDIR=/backup

tar czvf $BACKDIR/backup_$DATUM.tar.gz /home/gs28960/pb/svss /home/gs28961/pb/svss
if [ "$?" != 0 ]
   then
     echo "Fehler aufgetreten"
else
     mail -s "Backup" -a "From: backups@ngz-server.de" XxX@googlemail.com < $BACKDIR/backup_$DATUM.tar.gz
fi
sleep 17
if [ -e $BACKDIR/backup_*.tar.gz ]; then
    rm -f $BACKDIR/backup_*.tar.gz
fi
Wie beheben wir nun das Problem?

P.S.: Schlimm wenn ich es unter root ausführe? :O

Re: Kleines Script: Datein packen, per mail senden, ordner inhalt löschen.

Posted: 2007-04-01 22:54
by daemotron
Man kann eine binäre Datei nicht einfach in einen Mailbody reinpappen - ziemliches ungemach, das. Bevor Binär-Dateien per Mail verschickt werden, muss man sie auf base64 umcodieren und in einen hübschen MIME-Envelope stecken. Außerdem lässt sich das Skript auf einen Einzeiler verkürzen:

Code: Select all

tar czvf - /home/gs28960/pb/svss /home/gs28961/pb/svss | uuenview -b -s "Betreffzeile" -m name@mailhost.de -

Re: Kleines Script: Datein packen, per mail senden, ordner inhalt löschen.

Posted: 2007-04-01 23:06
by breiteseite
Auf uuenview bin ich mit Google auch schon gestoßen, aber wenn ich das ausführen möchte, meint der folgendes:

Code: Select all

-bash: uuenview: command not found
tar: Removing leading `/' from member names
/home/gs28960/pb/svss/
/home/gs28961/pb/svss/
/home/gs28961/pb/svss/pb000001.htm
/home/gs28961/pb/svss/pb000001.png
/home/gs28961/pb/svss/pb000002.htm
/home/gs28961/pb/svss/pb000002.png

Re: Kleines Script: Datein packen, per mail senden, ordner inhalt löschen.

Posted: 2007-04-01 23:11
by Joe User
Installiere das entsprechende Paket Deiner Distribution nach #-o

Re: Kleines Script: Datein packen, per mail senden, ordner inhalt löschen.

Posted: 2007-04-01 23:18
by breiteseite

Code: Select all

R221148:~# aptitude install uuenview
Reading Package Lists... Done
Building Dependency Tree
Reading extended state information
Initializing package states... Done
Reading task descriptions... Done
Couldn't find any package matching "uuenview".  However, the following
packages contain "uuenview" in their description:
  libconvert-uulib-perl
No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B of archives. After unpacking 0B will be used.
Writing extended state information... Done
Reading Package Lists... Done
Building Dependency Tree
Reading extended state information
Initializing package states... Done
Reading task descriptions... Done

Re: Kleines Script: Datein packen, per mail senden, ordner inhalt löschen.

Posted: 2007-04-01 23:27
by Joe User

Re: Kleines Script: Datein packen, per mail senden, ordner inhalt löschen.

Posted: 2007-04-01 23:28
by daemotron
Unter Debian heißt das Paket "utils/uudeview". BTW. ein bisschen Eigeninitiative wäre schon angebracht... http://packages.debian.org/cgi-bin/sear ... &arch=i386

EDIT @Joe User: OK, hast gewonnen :wink: Musste nebenher noch Wäsche aufhängen...

Re: Kleines Script: Datein packen, per mail senden, ordner inhalt löschen.

Posted: 2007-04-02 01:29
by Joe User
jfreund wrote:@Joe User: OK, hast gewonnen :wink: Musste nebenher noch Wäsche aufhängen...
Dafür hast Du auch mehr geschrieben und den vollständigen Searchlink gepostet ;)