ja i myslím že je to tím že cd je funkce bashe
takže to udělěj takto */3 * * * * (bash -c " cd /home/kopera/1_servis/cron; ./rm_all.sh ")
boze a proc neco takhle ohyzdneho
??
ma tam bejt normalne:
*/3 * * * * /cesta/ke/skriptu -a --pripadne --nejake=parametry
Videl jsem to vlakno, kde ten gentleman resi proc ten skript nejde (tak, jak predpoklada, ze ma jit) a nebudu na nej jiz vice reagovat .. napsal jsem jiz v tomto vlakne co je s tim spatne, komu neni rady, tomu neni pomoci .. (se skriptem i s cronem)
ale abych alespon trosku klamal telem a ukazal lidskou tvar (kterou normalne nenosim), tak si pouzij skript co jsem ti napsal, uloz si ho do souboru, dej mu chmod +x a spust ho pomoci
/cesta/k/tomu/skriptu /dev/md101
nevytiskne nic, to je umyslne, ale to co ti rika najdes ulozeno ve "/var/tmp/jmeno_skriptu.log", takze si to prosim precti a vyres si sve problemy s cronem upravou toho skriptu .. ten skript ocekava jeden parametr a sice cestu k tomu zarizeni, takze si ho poprvy opravdu pust s necim co neexistuje aka /dev/md101, protoze jinak se nedozvis, co ti chce rict
uz ale prosim nepokracuj v opakovani dokola stejnych hruz a neposlouchani, co ti zde lide rikaji .. proc to nejde, proc nemas pouzivat sudo ve skriptech co bezi pod rootem (crontab roota, na co sudo) a jak vytvorit ulohu v cronu jmse tady napsali 20x
#!/bin/bash
_log_p=/var/tmp/`basename $0`;
_log_debug=$_log_p.debug;
_log_out=$_log_p.log;
exec 2>$_log_debug;
exec >$_log_out;
set -x;
_device=$1;
_date_s=`date +%Y%m%d%H%M%S`;
posli_mi_majla_ze_se_to_podelalo() {
cp $_log_debug $_log_debug.$_date_s;
cp $_log_out $_log_out.$_date_s;
cat << EOF
tady si za domaci ukol muzes udelat tu svoji funkci na posilani maila misto
tohodle textu ..
soubor s logem najdes v: $_log_out.$_date_s
pripadne debug log v: $_log_debug.$_date_s
skript si samozrejme zmen dle potreby .. a nezapomen si na konci tyhle
funkce dat navratovou hodnotu ty veci co posila mejl ;) pomoci return X
hints:
a) skripty v cronu by NEMELY mit zadny vystup, jinak cron posila mejly, proto
na zacatku nastavuju pomoci exec(), kam pujde /dev/stdout a kam /dev/stderr
b) co tady asi potrebujes jako navratovou hodnou, aby cron vedel ze skript
funguje ? samozrejme tu z posilani mejla .. Tenhle skript posila mejl a musi
tedy indikovat, zda-li to dopadlo dobre a nebo ne. Proto je dulezity ten
vyse zmineny return() na vyskoku z tehle funkce, mdadm je nam fuk
c) pridej si nejake rotovani tech logu .. skript to vubec neresi .. proste
vytvori ten soubor pokazdy, kdyz mdadm --detail indikuje problem
d) pridej si tam taky neco jako, ze pokud je to zfailovany, tak aby to neposilalo
kazdych N minut majla, tak to vytvori nejakej soubor se zamkem, kterej bude existovat,
dokud to nebude spraveny (to si ho potom smaze) a nebo dokud ho nesmazes sam.
e) precti si manpage, jake navratove hodnoty ma mdadm --detail ....
EOF
#### pripominam zmenit 0 v returnU navratove hodnoty (treba $?) toho prikazu s mejlem
return 0;
};
if ! mdadm --detail "$_device" 2>&1; then
posli_mi_majla_ze_se_to_podelalo;
exit $?;
fi
exit 0;