Bash-Skript mit mailx-mail-Anhang

Habe ich ein bash-Skript, das ausgeführt wird, eine Abfrage in postgres, gibt es in csv. Ich möchte hinzufügen, um das Skript zu verwenden, mailx, um E-Mail .csv-Datei an eine bestimmte E-Mail.

Das problem, das ich habe ist, es wird keine E-Mail die Datei. Ich kann die E-Mail, damit ich weiß, mailx-setup korrekt. Ich kann einfach nicht bekommen es, um E-Mail als Anhang. Es kann auch die E-Mail-Ausgang in den Körper der E-Mail.

So, hier ist der code.

    #!/bin/bash
    NOWDATE=`date +%m-%d-%Y`
    PGPASSWORD=password psql -w -h host -p 5432 -d database -U user -o /tmp/folder/file-$NOWDATE.csv <<EOF
    Query is here

    # remove the first 2 lines of the report as they are headers
    sed -i '2d' /tmp/folder/file-$NOWDATE.csv

    uuencode /tmp/folder/file-$NOWDATE.csv | mailx -s "Accounts No Credit Card Report for '$NOWDATE'" mail@gmail.com

Habe ich versucht das mailx-Teil mit:

    uuencode /tmp/folder/file-$NOWDATE.csv /tmp/folder/file-$NOWDATE.csv | mailx -s "Accounts No Credit Card Report for '$NOWDATE'" mail@gmail.com

und

    uuencode /tmp/folder/file-$NOWDATE.csv file-$NOWDATE.csv | mailx -s "Accounts No Credit Card Report for '$NOWDATE'" mail@gmail.com

Also das problem, das ich bekomme, ist es spuckt diese Fehlermeldung, wenn ich das ausführen .sh Datei.

    uuencode: fopen-ing /tmp/folder/file-01-11-2011.csv: Unknown system error
  • Ist der Pfad /tmp/folder/file-$NOWDATE.csv richtig? Tun pwd wo Sie die Datei und überprüfen. Dieser Fehler tritt auf, wenn /path/to/file existiert nicht.
  • Auch sed -i '2d' filename löscht die zweite Zeile und nicht ersten beiden. Für das löschen der ersten beiden Zeilen, die Sie tun müssen sed -i '1,2d' filename
  • Jaypal. Ich Stimme dem Kommentar falsch war, fand ich, dass ich nur benötigt, um zu löschen Sie die zweite Zeile... ich hatte es zunächst das löschen der ersten und zweiten. LOL... Ok ich check it out.
  • der Pfad der Datei existiert mit dem pwd es sich in der Tat zeigen den richtigen Weg. bahhhhh... obwohl ich nur einen Allgemeinen Pfad ausblenden, die Pfade, die Sie zeigen tatsächlich den richtigen Weg.. Frage mich, ob es die $NOWDATE, die werfen es Weg, jedoch habe ich es auch nur versuchen mit dem korrekten Dateinamen, ohne die $NOWDATE und bekam trotzdem den Fehler. Könnte ich sein, fehlt etwas, das installiert werden soll?
  • Wenn der Befehl funktioniert von der Kommandozeile aus, dann sollte es funktionieren aus dem Skript zu :-). Versuchen Sie, die geschweifte Klammern um die variable. uuencode /tmp/folder/file-${NOWDATE}.csv /tmp/folder/file-${NOWDATE}.csv | mailx -s "Accounts No Credit Card Report for '$NOWDATE'" [email protected]
  • Tut mir Leid, mein Letzte Kommentar, wenn Sie versucht, läuft es mit dem Namen dann Klammern nicht helfen. Führen Sie den Befehl stand-alone-von der Befehl-Linie und lassen Sie mich wissen, was Sie bekommen.

InformationsquelleAutor DoCnTex | 2012-01-11
Schreibe einen Kommentar