Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Obecná podpora => Téma založeno: Kony.cz 04 Dubna 2018, 08:27:54

Název: CRON provede script, ale je tam nekde chyba
Přispěvatel: Kony.cz 04 Dubna 2018, 08:27:54
Hoj, mam tady script , ktery kdyz pustim manualne tak projde, ale jakmile ho ma pustit cron tak se nevykoba uplne, ale nevim kde najit log kde bych nasel chybu. je to script na poslani souboru pres ftp pomoci curl, kdyz ho pustim ten script manulne tak projde , ale cron nic a nic...

Diky moc
Název: Re:CRON provede script, ale je tam nekde chyba
Přispěvatel: ntz_reloaded 04 Dubna 2018, 08:37:57
http://forum.ubuntu.cz/index.php?topic=5279.0
Název: Re:CRON provede script, ale je tam nekde chyba
Přispěvatel: Kony.cz 04 Dubna 2018, 10:03:13
jde o to, ze kdyz pustim script manualne tak se vse prenese, jakmile to dam pres cron, tak se data neprenesou a jen se prepise vzdaleny soubor na prazdny... z nulovou velikosti.

syslog nic nepise, jen to ze se cron pustil
Název: Re:CRON provede script, ale je tam nekde chyba
Přispěvatel: ntz_reloaded 04 Dubna 2018, 10:13:45
je to s nejvetsi pravdepodobnosti kvuli tomu, ze v cronu je orezany env

ve skriptu je dobre nastavit alespon promenne PATH a LANG a mozna neco dalsiho ..

takze nastav PATH a LANG a pokud to nebude stacit, tak dej na zacatek skriptu za shebang (https://en.wikipedia.org/wiki/Shebang_(Unix))

Kód: [Vybrat]
exec 2> /var/tmp/$(/usr/bin/basename $0).debug
set -x

a potom si precti, co tomu chybelo ve /var/tmp/<jmeno skriptu>.debug
Název: Re:CRON provede script, ale je tam nekde chyba
Přispěvatel: Kony.cz 05 Dubna 2018, 12:45:06
tak jsem na zacatek scriptu dal

Kód: [Vybrat]
#!/bin/bash
PATH=/opt/mujscript:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export PATH

......
.....
script
......
.....

vsechny sh soubory se nachazi ve slozce /opt/mujscript

ale je to to stejny
Název: Re:CRON provede script, ale je tam nekde chyba
Přispěvatel: Kony.cz 06 Dubna 2018, 11:35:42
tak jsem schvalne dal ten script do /etc a taky se to nespustilo, tak uz vazne nevim, ale kdy zse podivam

Kód: [Vybrat]
grep CRON /var/log/syslog
tak je tam zaznamenano ze se pustil

uz jsem udelal i uplne obycejny script
Kód: [Vybrat]
#!/bin/bash
PATH=/opt/mujscript:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
dt=$(date '+%d/%m/%Y %H:%M:%S');
echo $dt > test.txt

a stejne to nezapise kdyz to ma pustit cron, jakmile pustim manalne tak to projde a zapise
Název: Re:CRON provede script, ale je tam nekde chyba
Přispěvatel: ntz_reloaded 06 Dubna 2018, 12:42:33
...

s tebou je to tezky ... rekl jsem ti, co mas udelat a kde naprosto presne uvidis, co to dela

Kód: [Vybrat]
exec 2> /var/tmp/$(/usr/bin/basename $0).debug
set -x
Název: Re:CRON provede script, ale je tam nekde chyba
Přispěvatel: Kony.cz 06 Dubna 2018, 13:14:52
ale ja to udelal, zadny soubor se nevytvoril

aa tak vytvoril....

Kód: [Vybrat]
+ PATH=/opt/mujscript:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
++ date '+%d/%m/%Y %H:%M:%S'
+ dt='06/04/2018 13:16:01'
+ echo 06/04/2018 13:16:01

ale stejne do toho souboru test.txt se nic nezapsalo

jakmile pustim manualne tak krasne zapise, uz jsem i nastavil chmod 777 na soubor test.txt a vlastnikem je root/root


a nebo to udelat jinak, potrebuji aby se ten script a vykonal jednou denne.. ve 2 hodiny rano..
Název: Re:CRON provede script, ale je tam nekde chyba
Přispěvatel: ntz_reloaded 06 Dubna 2018, 13:49:00
co treba kdybys napsal plnou cestu :D

Kód: [Vybrat]
#!/bin/bash
export PATH=/opt/mujscript:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin;
export LANG=en_US.UTF-8;
date '+%d/%m/%Y %H:%M:%S' > /var/tmp/test.txt;
exit 0;

:D