Muskampen 2025: Segraren korad!
Permalänk
Medlem

Cron mailar

jag har ett script som jag kör varje halvtimme för att kolla så att jag är ansluten till internet, scriptet ser ut så här:

#!/bin/sh if `ping -c1 www.google.com > /dev/null` then echo "You're already logged in" else curl "jättelång webaddress" echo "You've been logged in" fi

det jag skulle vilja var att den inte skickade ut något echo av den anledningen att varje gång scriptet körs läggs får jag ett mail med echot.
Finns det något sätt att köra detta cron jobbet utan att den spottar ut något?

Visa signatur

/me

Permalänk
Medlem

Antingen sätter du

MAILTO=""

före skriptets crontab entry eller så exekverar du skriptet med stdout och stderr redirectat till /dev/null.

Permalänk
Medlem

jag vet inte riktigt vad du menade med "exekverar du skriptet med stdout och stderr redirectat till /dev/null."
men /dev/null låter intressant, och med strängen >/dev/null 2>&1 efter echot borde jag väl inte få någon utskrift? det e 10 min till scriptet körs så det ska bli spännande att se...

EDIT: Det funkade inte:-(

Visa signatur

/me

Permalänk
Medlem

Som NakedApe skrev så lägger du antingen till MAILTO="" på den första raden i crontab för att stänga av mailrapporteringen helt för crontab, eller så redirectar du output från scriptet till /dev/null.

Exempel

MAILTO="" # m h dom mon dow command 6 21 * * * /path/to/script.sh

eller

# m h dom mon dow command 6 21 * * * /path/to/script.sh > /dev/null 2>&1

Permalänk
Medlem

Om du bara kör scriptet via cron kan du ju kommentera bort echo-raderna helt, samt köra curl med '-s' som argument, så ska du slippa få mail.

Permalänk
Medlem

Tack, jag löste det med > /dev/null 2>&1 alternativet tillslut...

Visa signatur

/me