cron nespouští skripty v F12

Ahoj všem,
mám takový zajímavý problém. Mám tři servery, na kterých mám de facto tu samou konfiguraci, stejné uživatele i groupy (včetně ID), instalované balíčky i spouštěné skripty. Rozhodl jsem se, že na jeden z nich nainstaluji F12, tak jsem si ozálohoval to, co se mi nechtělo ručně přepisovat, například /etc/fstab (byť zrovna ten je v každé instalaci trochu jiný kvůli VolGroup), /var/spool/cron/*, /etc/proftpd.conf… No, a problém je v tom, že když vše překopíruji do čisté instalace F12, tak všechno funguje skvěle, až na cron. Něco spustí, něco ne. Nejdřív jsem zkopíroval cron soubory zpět do /var/spool/cron/, restartoval cron a … problém. Pak jsem vymazal tabulku uživatele (crontab -r) a ručně jsem jí naládoval znovu (crontab -e). Jako přihlášený uživatel všechny skripty, které chci spustit přes cron, ručně v pohodě spustím. Práva ke skriptům jsou v pořádku, kontroloval jsem to pětkrát, navíc by mi ani nešly spustit pod tím uživatelem. Fakt už nevím, co s tím. Googlil jsem, našel jsem pouze to, že někdo odinstaloval anacron, a že se mu podobné problémy odstranily, ale když jsem zkusil anacron odinstalovat, tak se chtěl odinstalovat i cron, páč jsou součástí jednoho balíčku, takže jsem to raději neudělal. Nevím, co bych ještě popsal. Snad jenom to, že v /var/log/cron to vypadá, jako kdyby to ty skripty normálně spouštělo. HELP PLEASE

A ten problem je co? :slight_smile: Ty skripty tam jsou a funguji?
Zvysit uroven debugovani…
co selinux context?

Skripty (sh) tam jsou a manuálně normálně fungují, v cronu mám absolutní cesty a cesty jsou správně.

SELinux mám na všech serverech vypnut, protože s ním neumím, a protože mi s ním neběží FTP. Až budu mít čas, podívám se na něj.

Zvýšit úroveň debugování - provedu, respektive provedl jsem. Udělal jsem jeden separátní skript, ale ten bohužel funguje, takže musím počkat na některý z těch nastavených. Dám hned vědět.

Ale i tak díky za rady

Máte u všech příkazů ve skriptu plné cesty nebo nastavujete proměnnou PATH?
Ve skriptech stačí na vhodné místo dopsat
set -x

Mám u všech skriptů plné cesty.

Zkoušel jsem to logovat přímo v tabulce uživatele cron-u přes /bin/sh -x cesta/skript > log, ale v logu se vše tváří v pohodě.

Vysledoval jsem ale, že mám teď nejspíš hlavní problém se spouštěním lame enkodéru, i když se to v logu tváří normálně, enkodér mi ze skriptu prostě neenkóduje. Manuálně s tím není problém, vše funguje jak má.

A nemas nahodou po prekopirovani spatne prava tech souboru ve spoolu?

No, to mě napadlo ještě než jsem založil vlákno. Soubory ve spoolu jsem odstranil crontab -r, a pak je znovu korektně vytvořil přes crontab -e, obsah souboru zkopíroval ze zálohy a vložil do souboru. Vše přes Putty, potažmo vi. Žádný Midnight, žádný gedit…snažil jsem se tomu crontabu co nejméně ublížit.

Aha, omlouvam se. Me tohle chovani take smrdi SELinuxem, tohle je pro nej naprosto typicke, ale kdyz rikas ze je vypnuty…

Je to dost možné. Tentokrát jsem na něj zapomněl a vypnul ho až po instalaci všech potřebných balíčků. Vypnul jsem ho přes GUI v Gnome.

Přikládám /etc/selinux/config, snad je to takhle správně.

This file controls the state of SELinux on the system.

SELINUX= can take one of these three values:

enforcing - SELinux security policy is enforced.

permissive - SELinux prints warnings instead of enforcing.

disabled - SELinux is fully disabled.

SELINUX=disabled

SELINUXTYPE= type of policy in use. Possible values are:

targeted - Only targeted network daemons are protected.

strict - Full SELinux protection.

SELINUXTYPE=targeted

O moc vic vypnute to asi byt nemuze - podivej se pro jistotu do audit.log a message jesli tam nejsou nejake hlasky, ale pochybuju.

Dalsi vec ktera me napadla - nekter programy nemaji rady, kdyz se pousti bez vystupu na stdout - typicky pokud maji nejaky interatnivni vystup typu progressbar - takze radno najit nejaky “quiet” vystup a presmerovat 1 i 2 nekam do souboru.