Portál AbcLinuxu, 6. května 2025 18:00

Dotaz: ako zachytit errorove vystupy z sh skriptu v crone

1.8.2014 16:48 adrinko | skóre: 22
ako zachytit errorove vystupy z sh skriptu v crone
Přečteno: 224×
Odpovědět | Admin
Ahojte,

v crone si chcem spustat pravidelne sh skript s prikazom: sudo rsync -axv / /mnt aby mi zazalohoval cely disk a jeho zmeny kazdy den. Ako ale dostanem vystup tohto prikazu do premennej, t.j. aby som si ho mohol poslat emailom v pripade, ze tam nejaky vystup bude (napr.hlasenie o chybe)?

viem to spustit v sh skipte, viem aj odoslat email, avsak netusim, ako si ulozim pripadny errorvy vystup do premennej (priklad by som velmi ocenil) dakujem pekne.
Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

1.8.2014 16:53 dan
Rozbalit Rozbalit vše Re: ako zachytit errorove vystupy z sh skriptu v crone
Odpovědět | | Sbalit | Link | Blokovat | Admin
poslat subor? skript.sh >>/tmp/skript.log 2>>/tmp/skript.log
1.8.2014 17:30 adrinko | skóre: 22
Rozbalit Rozbalit vše Re: ako zachytit errorove vystupy z sh skriptu v crone
takto cron ulozi po zbehnuti log a skonci. ja by som to ale chcel este v crone priamo v skripte spracovat, preto hladam cestu, ako to ulozit este pri behu skriptu do premennej a nasledne si to postnem na web.
1.8.2014 16:58 Filip Jirsák
Rozbalit Rozbalit vše Re: ako zachytit errorove vystupy z sh skriptu v crone
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vypište to normálně na standardní výstup. Cron už se postará o to, že když se na standardním výstupu něco objeví, pošle vám to na e-mail.
1.8.2014 17:28 adrinko | skóre: 22
Rozbalit Rozbalit vše Re: ako zachytit errorove vystupy z sh skriptu v crone
moj cron sa takto nezachova :/ preto by som si to najradsej este vramci cronu ulozil do premennej a sam postol na web.
1.8.2014 17:46 Filip Jirsák
Rozbalit Rozbalit vše Re: ako zachytit errorove vystupy z sh skriptu v crone
Jaký Cron používáte?

Jinak výraz shellu uděláte ze standardního výstupu příkazu použitím `...` nebo $(...) (nevím teď, co je standard a co rozšíření Bashe a dalších). Takže do proměnné třeba takhle:
VYSTUP=$(echo 'OK')
VYSTUP=`echo 'Chyba'`
1.8.2014 18:06 adrinko | skóre: 22
Rozbalit Rozbalit vše Re: ako zachytit errorove vystupy z sh skriptu v crone
bezi mi to na linux Rasbian a jeho standardnom crone (netusim co je to zac, moc sa v tom nevyznam)
1.8.2014 18:22 Filip Jirsák
Rozbalit Rozbalit vše Re: ako zachytit errorove vystupy z sh skriptu v crone
Tam bude bcron ten e-maily posílat umí.
pavlix avatar 1.8.2014 17:46 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: ako zachytit errorove vystupy z sh skriptu v crone
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nejjednodušší je přesměrovat výstupy do souborů.
#/bin/bash

exec > /tmp/myscript-stdout 2> /tmp/myscript-stderr

...
Je možné to udělat i dočasně a na konci skriptu zpracovat dosavadní výstup z těch souborů.
#!/bin/sh

exec 3>&1 4>&2 1> /tmp/myscript-stdout 2> /tmp/myscript-stderr

...

exec 1>&3 2>&4

...
Já už tu vlastně ani nejsem. Abclinuxu umřelo.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.