Logs und Ergebnisse von Terminalbefehlen per Mail senden

An alle Interessenten, was aus meinem "Problem" (in #34 beschrieben) geworden ist:
Das "Delay" im mailscript habe ich temporär auf übertriebene 30s gesetzt (alles andere wie von lisanet gelassen) und der Fehler trat nicht mehr auf.
Offensichtlich ist mein Mailanbieter nicht der fixeste und benötigt etwas mehr Zeit ...
 
Moin,
nach dem Teilwechsel (Windows-> Mac) der gerade vor nicht mal 2 Wochen stattgefunden hat, stehe ich noch bei den Bash/ AppleScripts ein wenig auf dem Schlauch. Letzte Jahre 100% nur PowerShell machen sich doch stärker bemerkbar als ich dachte (werde auch nicht jünger)

Also danke dem super "Service" von @lisanet und dem Code bzgl Mail Versand habe ich ein Problem weniger. Danke an der Stelle dafür.

Ein kleines Wunsch hätte ich aber bzw. ein Tipp ob das überhaupt geht und wenn ja - wie ;)

Hier ein Bsp. Beim Durchlauf von einem Script wird ein Logfile unter ~/Library/Logs/Syncovery erstellt.
Name des Logs wird in Variable "$logfile" geschrieben. Dann steht da z.B:
Code:
echo $logfile
Fotografie Software Synchronisation Capture One Sessions - 2025-01-31 14.54.44 - 219 kopiert (2,8GB), Dauer 00.00.38.log

Mit
Code:
echo "$logFile" | $emailScript -s "Syncovery for MacOS - $logFile"  -a $emailSender -t $emailRecipient
wird die Mail verschickt.
So weit alles gut.
Was ich suche ist eine Möglichkeit den Names des Logs als Hyperlink in die Mail hinzuzufügen, so dass ich sie aus der Mail anklicken und somit anzeigen kann (so fern ich die Mail natürlich auf dem betroffenem Rechner lese).
Alternativ wäre das Log selbst als Anhang zu verschicken. Macht aber aus meiner Sicht wenig Sinn, da ich ja ggf "zu Fuß" in das Logverzeichnis gehen kann und mir es da anschauen wenn mir an dem Namen des Logs schon etwas verdächtig vorkommt

Tipps/ Vorschläge usw. sind sehr willkommen :D
 
Ich habe das mailscript von @lisanet so modifiziert, dass das $logFile als Anhang verschickt wird. Hyperlink wäre mir persönlich lieber, es scheint aber etwas komplizierter zu sein. Zumindest dann, wenn das $logFile Leerzeichen oder sonstige Sonderzeichen im Namen hat

Code:
#!/bin/zsh

while [ "$#" -gt 0 ]; do
  case "$1" in
    -s) subject="$2"
       shift
       ;;
    -a) account="$2"
       shift
       ;;
    -t) address="$2"
       shift
       ;;
    -f) logfile="$2"
       shift
       ;;
    *) echo "Unbekannter Parameter: $1"
      exit
      ;;
  esac
  shift
done

[ -z "$address" ] && exit
[ -z "$subject" ] && subject="empty"
[ -z "$logfile" ] && exit

osascript - << EOF
tell application "Mail"
    set newMessage to make new outgoing message with properties {sender:"$account", subject:"$subject", visible:false}
    tell newMessage to make new to recipient with properties {address:"$address"}

    -- $logfile als Anhang hinzufügen
    tell content of newMessage
        make new attachment with properties {file name:"$logfile"} at after last paragraph
    end tell

    send newMessage
    delay 13
    delete (first message of drafts mailbox)
end tell
EOF

Code:
echo "$logFile" | $emailScript -s "Syncovery for MacOS $(hostname) $profileName" -a $emailSender -t $emailRecipient -f "$logFile"
 
Zurück
Oben Unten