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
-
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
-
http://forum.ubuntu.cz/index.php?topic=5279.0
-
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
-
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))
exec 2> /var/tmp/$(/usr/bin/basename $0).debug
set -x
a potom si precti, co tomu chybelo ve /var/tmp/<jmeno skriptu>.debug
-
tak jsem na zacatek scriptu dal
#!/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
-
tak jsem schvalne dal ten script do /etc a taky se to nespustilo, tak uz vazne nevim, ale kdy zse podivam
grep CRON /var/log/syslog
tak je tam zaznamenano ze se pustil
uz jsem udelal i uplne obycejny script
#!/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
-
...
s tebou je to tezky ... rekl jsem ti, co mas udelat a kde naprosto presne uvidis, co to dela
exec 2> /var/tmp/$(/usr/bin/basename $0).debug
set -x
-
ale ja to udelal, zadny soubor se nevytvoril
aa tak vytvoril....
+ 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..
-
co treba kdybys napsal plnou cestu :D
#!/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