Skrivet av Eazy:
Har tagit lite tid då jag har installerat om servern och detta är det sista jag vill göra nu då. Efter min ominstallation av Ubuntu Server så får jag nu inga mail alls till root. antingen för att det inte finns några errors att rapportera eller att Postfix inte fungerar av någon anledning. Nu vill jag gärna ha denna funktion, och också att dessa mails skickas min egna gmail.
Tänkte köra igenom efter guide du gjorde här. Installerar jag "ssmtp" vill den avinstallera "postfix", så det funkar inte.
Kan jag på något sätt kontrollera att Postfix tar emot meddelanden från cron, eller andra program som vill skicka meddelanden till root?
Undrar också om alla cronjob, både lyckade och misslyckade per default skickas till mail?
Ledsen för sent svar, det var ett tag sen jag tittade i detta forum.
Tips är att alltid prova allting virtuellt i virtualbox innan du gör det i verkligheten är mitt tips om det är första gången du gör det. Jag brukar alltid göra så, så att jag vet att de blir "clean" och ordentligt sedan när jag applicerar det till verkligheten.
jag installerade precis en helt ny Mint 18.1 dist i virtualbox duplicerade det jag gjorde tidigare:
sudo apt-get update; sudo apt-get upgrade -y
sudo apt-get install gedit -y
sudo apt-get install mailutils -y
sudo apt-get install ssmtp -y
gksudo gedit /etc/ssmtp/ssmtp.conf
Citat:
root=dittanvändarnamn@gmail.com
mailhub=smtp.gmail.com:587
rewriteDomain=
hostname=smtp.gmail.com:587
UseSTARTTLS=YES
AuthUser=dittanvändarnamn_igen@gmail.com
AuthPass=dittlösenord #siffror och bokstäver ENDAST, inga specialtecken
#FromLineOverride=YES # optional
redo för test (ingen service restart, ingen omstart av OS heller):
echo "meddelande" | mail -s "rubrik" anyUser@anydomain.com
Fungerade utmärkt.
Nu fixa så att du kan maila användare på localhost:
sudo apt-get install postfix
echo "meddelande" | mail -s "rubrik" root@localhost
sudo -s
mail
#tryck 1 för att visa första mailet
#tryck q för att avsluta
exit #exit root
dessvärre så fick jag dock ett felmeddelande i min gmail-inbox när jag försökte att skicka till root@localhost (men mailet fram till root såklart). Ta bort felmeddelandet genom att göra en fuling där du bara lägger till filterblockering på adressen:
mailer-daemon@googlemail.com i din gmail. Smidigare lösning finns säkert, men frågan är om den är värd att lägga energi på.
Automatisering localhost-mail
Lägg in detta inuti /etc/profile
Citat:
notifications=`cat /var/mail/johndoe`
echo "$notifications" | mail -s "Notification" anyUser@anyDomain.com
echo "" > /var/mail/johndoe #rensa, om du vill
Automatisering Cron
gksudo gedit /etc/crontab
Citat:
* * * * * root bash /home/blah.sh
Detta cronjobb körs varje minut, alltid för evigt...ja..du har nog lärt dig att tillverka en automatiserad mailbomb nu om du inte gör nånting åt intervallerna, men det duger för ett experiment.
gksudo gedit /home/blah.sh
Citat:
#!/bin/bash
blablabla /home/blah.txt #replace with touch and exit-status will be 0
STATUS=`echo $?`
#echo $STATUS
if [ $STATUS != 0 ]; then #some error occured
echo $STATUS | mail -s "cron-error" anyUser@anyDomain.com
fi
sudo chmod 700 /home/blah.sh
det finns inget kommando som heter blablabla så det kommer att ge error och utmynna i att ett mail skickas nånstans, kanske till din gmail i detta fallet då.
exit status 0 : allting gick rätt till
exit status 127 : nånting gick snett (skicka mail). detta gäller alla kommandon, tror att det gäller också ifall kommandot utfördes men med vissa avvikelser också.
så detta kan du tillämpa på dina cronjobb.
--------------------------------------------------------------------
eller så går du väg B: övervaka syslog/cron aktivitet
Logga cron-aktivitet till en annan fil än /var/syslog
gksudo gedit /etc/rsyslog.d/50-default.conf
Ta bort kommenteringen:
Citat:
#cron.* /var/log/cron.log
sudo service rsyslog restart
cron-aktivitet loggas nu hit: /var/log/cron.log
sedan taila /var/log/cron.log och filtrera den på på något sätt, men de där med filtrering är absolut inte min starka sida. Och jag gillar inte att taila filer och ha en ständig aktivitet som alltid tuggar på.
Såhär har jag gjort till punkt och pricka, jag tror att jag har skrivit ned varenda steg jag tagit här och allt fungerade till 100%
jag kan inte se på rak arm att jag har gjort något annorlunda i jämförelse med det första inlägget jag skrev dock.
glöm inte att gå hit och välja less security: https://www.google.com/settings/security/lesssecureapps
btw, man får nog tänka att allt är en fil eller går att redirecta output till en fil eller variabel och sedan maila innehållet i den till gmail, ingenting är nog omöjligt.
-----------
OT:
en sak som jag ibland har extremt nytta av är att få reda på ifall det förekommit errors eller avvikelser på kommandon, istället för att ta reda på exit status så brukar jag redirecta alla errors och avvikelser till error.log såhär:
blablabla 2> errors.log
säg att du har filen installera.sh
innehållet är:
Citat:
#!/bin/bash
sudo apt-get install asdf
sudo apt-get install cowsay
sudo apt-get install gnome-paint
sudo apt-get install gimp
sudo apt-get install shotwell
#och 27 andra program
kör:
sudo bash installera.sh 2> errors.sh
så får jag reda på ifall det förekommit errors på vägen, att försöka installera asdf kommer nog att ge errors i error.log, jag har inte provat det, i övrigt så bör det inte blivit några andra errors i loggen efter att ha exekverat "installera.sh"