Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Problem mit Shellscript

Frage Linux

Mitglied: Dani

Dani (Level 5) - Jetzt verbinden

16.03.2006, aktualisiert 18.03.2006, 5537 Aufrufe, 19 Kommentare

Guten Abend,

ich habe folgendes Problem:
Ich habe ein ganz kl. Shellscript. Dieses soll mit Hilfe der Suse 9.3 Mail - Funktion eine Datei verschicken!

Shellcript:
<font class="code">
#!/bin/bash
table=$1

date --universal +%d-%m-%Y >/tmp/tag.var
tag="$(cat /tmp/tag.var)"
rm /tmp/tag.var

mail xx@yy.de -s test -a /test/t-$tag.sh << /root/text #ein < gehört weg
</font>

Nun erscheint immer der Fehler das die Datei oder das Verzeichnis nicht existiert. Habe den Pfad 10x schon verglichen -> passt. Nun wenn ich das Datum hinten fest eintrage funktioniert es!
Weiß jemand weiter??

Gruß
Dani
Mitglied: stpe
16.03.2006 um 22:03 Uhr
zum einen, warum schreibst Du nicht einfach:

tag="`date --universal +%d-%m-%Y`"

zum zweiten:

was bezweckt "-a /test/t-$tag.sh"??
Moechtest Du den Inhalt aus /test/t-$tag.sh als Header-Informationen uebergeben? Das geht leider so nicht, denn "-a" liest keine Datei als Parameter ein. Du müsstest den Wert anders übergeben, z.B.

header=`cat /test/t-$tag.sh`

und dann

mail ... -a "$header"

Wenn t-$tag.sh ein Shellscript ist, verstehe ich den sinn nicht ganz.

Gruss
Stefan
Bitte warten ..
Mitglied: Dani
16.03.2006 um 22:09 Uhr
Hi,
ok.... -a heißt Anhang (Datei anhängen). Sry..das muss t-$tag.sql heißen.


Gruß
Dani
Bitte warten ..
Mitglied: stpe
16.03.2006 um 22:30 Uhr
Was für ein "mail" benutzt Du? Gnu Mail hat als Parameter "-a" (und auf diese Weise schon vielfach von mir genutzt:

"GNU mail -- the standard /bin/mail interface
-a, --append=HEADER: VALUE Append given header to the message being sent."

Wenn's bei Deinem Mailer wirklich ein Dateianhang ist:

Probier mal eine erweiterte Version der Datumszuweisung:

anhang="/test/t-`date --universal +%d-%m-%Y`.sql" und dann
mail -s test -a "$anhang" xx@yy.de ...
Bitte warten ..
Mitglied: ITwissen
17.03.2006 um 06:02 Uhr
Erstmal die gute Nachricht, auf meinem Linux laeuft das Script fehlerfrei.

Somit bist du von der Loesung nicht allzuweit entfernt.

Gehen wir zum Debugging ueber, um rauszufinden, wo es bei dir klemmt.

Kannst du mal das Script folgendermassen aufrufen und den output hier posten:

bash -xv script

<font class="code">
#!/bin/bash
table=$1

table=


date --universal +%d-%m-%Y >/tmp/tag.var

date --universal +%d-%m-%Y

tag="$(cat /tmp/tag.var)"
cat /tmp/tag.var

cat /tmp/tag.var

tag=17-03-2006

rm /tmp/tag.var

rm /tmp/tag.var


mail root -s test -a /tmp/t-$tag.sh < /tmp/text

mail root -s test -a /tmp/t-17-03-2006.sh

</font>
Bitte warten ..
Mitglied: Dani
17.03.2006 um 08:22 Uhr
Hi,
was macht das + bzw ++?!
Also wenn ich dich richtig verstanden habe, möchtest du den Dateinamen statisch haben. Nun, kann ich dir sagen, dass das geht.

Gruß
Dani
Bitte warten ..
Mitglied: ITwissen
17.03.2006 um 09:35 Uhr
Das im Kasten ist der Output von "bash -xv script".

und ++ sind die Zeilen, wie sie wirklich ausgefuehrt werden, nach aufloesen aller Variablen.

Bitte warten ..
Mitglied: stpe
17.03.2006 um 09:55 Uhr
Bloede Frage, was für ein "mail" benutzt Ihr?? (Die Ausgabe von mail --help würde mir schon helfen). Normalerweise ist es nämlich eine große Bastelei, mit Mail auch Dateianhänge zu übertragen. Meist behelfe ich mir in diesem Fall mit einem PHP-Script. Wäre ja schön, wenn ich zukünftig auf der Shell bleiben könnte.

Tia
Stefan
Bitte warten ..
Mitglied: Dani
17.03.2006 um 21:33 Uhr
Abend,
und was soll ich jetzt machen? Versteh grad nicht auf was du hinaus möchtest?!
Sorry...

Gruß
Dani
Bitte warten ..
Mitglied: stpe
17.03.2006 um 21:39 Uhr
ITwissen meint, Du sollst Dein Script mal mit der Eingabe von

bash -xv scriptname

aufrufen.

Die Bash führt das Script dann verbose aus, d.h. es werden Informationen beim Ablaufen des Scriptes mit ausgegeben.

Die Zeilen mit dem führenden "+" sind Informationen für Dich, die Dir zeigen, welcher Befehl denn jetzt gerade wirklich ausgeführt wurde, die Variablen werden nicht unter ihren Namen, sondern mit ihren aktuellen Werten ausgegeben.

Das Ganze sollte Dir helfen, den "Fehler" zu orten.

Gruss
Stefan

Und wenn Du mit Deiner Nachfrage meinen Post meintest: Mich interessiert einfach die Ausgabe von "mail --help" auf Deiner Konsole ;)
Bitte warten ..
Mitglied: Dani
17.03.2006 um 21:42 Uhr
Abend,
das kommt dabei raus:
#Ließt den 1.Para aus
table=$1

table=tennis


#Ließt das aktuelle Datum aus
date --universal +%d.%m.%y >/tmp/tag.var

date --universal +%d.%m.%y

tag="$(cat /tmp/tag.var)"
cat /tmp/tag.var

cat /tmp/tag.var

tag=17.03.06

rm /tmp/tag.var

rm /tmp/tag.var


mail webmaster@hochdorf-tennis.de -s MySQL-Dump -a /var/www/vhosts/hochdorf-tenn is.de/backup/mysql/$table-$tag.sql </var/www/vhosts/hochdorf-tennis.de/scripte/ mail_sql.txt

mail webmaster@hochdorf-tennis.de -s MySQL-Dump -a /var/www/vhosts/hochdorf-tennis.de/backup/mysql/tennis-17.03.06.sql

/var/www/vhosts/hochdorf-tennis.de/backup/mysql/tennis-17.03.06.sql: No such file or directory


mail ausgabe:
v25161:~ # mail --help
mail: illegal option -- -
Usage: mail [-BDFintv~] [-s subject] [-a attachment ] [-c cc-addr] [-b bcc-addr]
[-r from-addr] [-h hops] [-A account] [-R reply-addr] to-addr ...
mail [-BDeHiInNv~] [-T name] [-A account] -f [name]
mail [-BDeinNv~] [-A account] [-u user]


Gruß
Dani
Bitte warten ..
Mitglied: stpe
17.03.2006 um 21:47 Uhr
Und wenn Du "mail webmaster@hochdorf-tennis.de -s MySQL-Dump -a /var/www/vhosts/hochdorf-tennis.de/backup/mysql/tennis-17.03.06.sql "
direkt auf der Konsole eingibst, dann funktioniert das?

Läuft das Script unter dem gleichen User?
Bitte warten ..
Mitglied: Dani
17.03.2006 um 21:52 Uhr
Hi,
ich habe die Rechte der Datei schon auf 777 gesetzt.Ob das gut ist oder nicht, geht mir grad am A vorbei. Die Ordner zu der Datei sind auch ok. Läuft im Moment als root.

also direkt an der Konsole geht es!


Gruß
Dani
Bitte warten ..
Mitglied: stpe
17.03.2006 um 22:02 Uhr
Blöde Idee, aber es sollte Dich beim Debuggen hoffentlich einen Schritt weiterbringen:

Mach vor dem "mail" mal einen "cd /var/..." und übergib dann als Anhang nur den Dateinamen.
Bitte warten ..
Mitglied: Dani
17.03.2006 um 22:15 Uhr
G' Abend,
bringt nichts...


Gruß
Dani
Bitte warten ..
Mitglied: stpe
17.03.2006 um 22:25 Uhr
Momentan fehlt mir da jetzt auch die nächste Idee. Aber das Problem interessiert mich jetzt schon. Ich besorge mir mal eine SuSE 9.3 und stelle das nach. Allerdings kann das noch zwei, drei Tage dauern, da ich morgen nicht am Rechner bin.

Hoffe das reicht aus.

Eine Probiermalkurzaus-Idee wäre noch, am Anfang des Scriptes die PATH-Variable mit allen relevanten Pfaden (sowohl von den Binaries, als auch vom zu mailenden Anhang) zu setzen.

Gruss
Stefan

und poste bitte auch noch einmal die Ausgabe Deines letzten Versuches mit dem "cd ..." vorneweg. Tia
Bitte warten ..
Mitglied: Dani
17.03.2006 um 22:29 Uhr
G' Abend,
Eine Probiermalkurzaus-Idee wäre noch,
am Anfang des Scriptes die PATH-Variable mit
allen relevanten Pfaden (sowohl von den
Binaries, als auch vom zu mailenden Anhang)
zu setzen.

Wie geht das??


Gruß
DAni
Bitte warten ..
Mitglied: ITwissen
17.03.2006 um 22:37 Uhr
Ich denke wir sollten uns auf die Datei konzetrieren bei der Fehlersuche.

/var/www/vhosts/hochdorf-tennis.de/backup/mysql/tennis-17.03.06.sql

Du sagst ja, dass die Datei da ist. Das hast du 10x geprueft.

Das einzige was mir dazu noch einfaellt waere, dass der Dateiname vielleicht noch ein Leerzeichen am Ende oder irgendwo ein anderes "unsichtbares" Zeichen drin hat, welches man so nicht gleich sieht?

Was sagt denn:
ls -lb /var/www/vhosts/hochdorf-tennis.de/backup/mysql/tennis-17.03.06.sql
Bitte warten ..
Mitglied: stpe
17.03.2006 um 22:42 Uhr
Das einzige was mir dazu noch einfaellt
waere, dass der Dateiname vielleicht noch
ein Leerzeichen am Ende oder irgendwo ein
anderes "unsichtbares" Zeichen
drin hat, welches man so nicht gleich sieht?

Dann wäre ein direkter Aufruf von mail ja auch nicht erfolgreich. An Sonderzeichen hatte ich auch schon gedacht, z.B. wenn beim Füllen der Variablen ein solches erzeugt würde. Aber das ist imho hier nicht der Fall. Probieren könnte man dies mit:

mail xx@yy.de -s test -a /var/www/vhosts/hochdorf-tennis.de/backup/mysql/tennis-`date --universal +%d.%m.%y`.sql

direkt aus der Console aufgerufen.

Gruss
Stefan
Bitte warten ..
Mitglied: Dani
18.03.2006 um 01:59 Uhr
Hi,
Was sagt denn:
ls -lb
/var/www/vhosts/hochdorf-tennis.de/backup/mysql/tennis-17.03.06.sql

Ergebnis:
-rw-r--r-- 1 root root 120005 Mar 18 00:05 /var/www/vhosts/hochdorf-tennis.de/backup/mysql/tennis-17.03.2006.sql

>Dann wäre ein direkter Aufruf von mail ja auch nicht erfolgreich. An Sonderzeichen hatte >ich auch schon gedacht, z.B. wenn beim Füllen der Variablen ein solches erzeugt würde. >Aber das ist imho hier nicht der Fall. Probieren könnte man dies mit:

>mail xx@yy.de -s test -a /var/www/vhosts/hochdorf-tennis.de/backup/mysql/tennis-`date ->-universal +%d.%m.%y`.sql

KEINE FEHLERMELDUNG!!!!! Danke...an alle für ihren Einsatz! *g*
Gute Nacht...

Gruß
Dani
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Exchange Server
Problem mit POP3-Abruf eines Exchange-2013-Postfachs

Frage von YotYot zum Thema Exchange Server ...

Multimedia & Zubehör
gelöst BENQ Beamer Fernbedingung Frequenz Problem (4)

Frage von xbast1x zum Thema Multimedia & Zubehör ...

Windows Server
Google Chrome Web Store Problem auf Terminal Farm

Frage von dakoerry zum Thema Windows Server ...

Multimedia & Zubehör
gelöst Problem: DVI zu VGA (8)

Frage von Protected zum Thema Multimedia & Zubehör ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...