A cron.mounthly-ba tettem egy ilyen mini scriptet.
#!/bin/bash
echo "Olvasd le a villanyóra állást" | mail -s "Villanyóra" nextra
A levél meg is jön, de nem úgy a hogy vártam.
Jelenleg a szöveges üzenetet, mint csatolmányt küldi, a -s subject: villanyóra meg villany??ra-ként jelenik meg.
Most éppen átállítottam a sendmail.cf-ben a charset-et, de továbbgondolva a dolgot, itt ez irreleváns, mivel a mail parancs az amely dolgozik, tehát a mail-ban kéne megadnom a charset-et.
googlizás után a -S lenne a nyerő. De továbbra sem értem miért csatolmány a szöveges üzenet?
echo "Olvasd le a villanyóra állást" | mail -s "Villanyóra" -S sendcharsets=utf-8 nextra
S a végső kérdés. Hogyan működik a cron.monthly? Azt tudom hogy havonta egyszer fut le. De mikor? Melyik nap? Minden hónap elején, közepén?
Vagy ahhoz a naphoz méri magát amely napon manuálisan elindítom? Tehát ha elindítom 10.-én akkor minden hónap 10.-én fog lefutni?
Hozzászólások
A cronos jobok nagyon primitív környezettel indulnak.
Tedd a szkripted elejére, hogy
export LANG=hu_HU.UTF-8
Ha neked fontos, hogy mikor fut le a jobod, akkor ne bízd a /etc/cron.{daily,weekly,monthly} fájlokra, hanem vedd a piciny fáradságot, és időzítsd saját felhasználói jogon a megfelelő időre.
Természetesen a sima cront ismerem, de ezt direkte el akartam kerülni.
Az exportot ki fogom próbálni, de ez még nem valószínű hogy megoldja hogy ne csatolmányként kapjam az echo utáni szöveget.
Nem állítom, csak sejtem, hogy a binárisnak vélt tartalom készteti a mailedet arra, hogy csatolásként küldje a szöveget, ami a helyes nyelvbeállítással megszűnik.
cron.monthly ugy mukodik, ahogy be van allitva. Debianon alap /etc/crontab-ban ez szerepel:
Eszerint minden ho elsejen 6:52-kor kezdi el futtatni.
--
|8]
Na ez volt az a válasz, amiből meg is értettem. Köszi.
No de hogy ne csatolmány legyen a szöveg?
Jelentem az export nélkül is jó lett.
echo "Olvasd le a villanyóra állást" | mail -s "Villanyóra" -S sendcharsets=utf-8 nextra
A -S hatására a charset jó lett, ráadásul a teljes nevem is kiírásra került az eddigi nicknév helyett, illetve az echo utáni szöveg sem csatolmányként jelent meg.
Remélem nem csak azért mert simán ráentereztem? De most kivárom az egy órát, mert jelenleg a cron.hourly-ban van tesztelés miatt.
Csak elkiabáltam, mivel csak akkor volt helyes és jó minden, ha manuálisan indítottama parancsot. Ha a cron indította, akkor felléptek a már említett anomáliák.
Ezért dobtam mindent és átírtam erre:
#!/bin/bash
(
echo "To: nextra"
echo "Subject: Villanyóra"
echo "Content-Type: text/plain; charset=UTF-8"
echo
echo "Olvasd le a villanyóra állást!" ) | /usr/sbin/sendmail -t
Ez már az amit szerettem volna.
Komolyan azt mondod, hogy ez így egyszerűbb volt, mint odabiggyeszteni a szkript elejére az export LANG-ot?
(Költői kérdés, hiszen bennem is van szakmai dac, a saját megoldás kivakarásának akarata. ;)