Portál AbcLinuxu, 29. května 2024 22:39


Dotaz: Expanze proměnných cron versus bash

15.3.2017 16:47 ondatra
Expanze proměnných cron versus bash
Přečteno: 181×
Odpovědět | Admin
Mám skript, který chodí OK při ručním spuštění z terminálu. Jsou v něm cesty začínající /home/&USER/bin ..., při ručním spuštění je expanze správná.

Při spouštění skrze cron ale expanze uvnitř skriptu neproběhne (dostanu cesty /home//bin ...).

Jak tohle snadno řešit?

Díky všem
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

15.3.2017 17:05 NN
Rozbalit Rozbalit vše Re: Expanze proměnných cron versus bash
Odpovědět | | Sbalit | Link | Blokovat | Admin
Cron pouziva sh, ne bash a ma svoje vlastni cesty(vix /etc/crontab). Znak '&' neni zadna expanze pokud vim, ale necham se poucit. K "home dir" expanzi se pouziva '~'.
k3dAR avatar 15.3.2017 17:13 k3dAR | skóre: 62
Rozbalit Rozbalit vše Re: Expanze proměnných cron versus bash
predpokladam ze misto &USER, chtel napsat "/home/$USER", coz je ale porad (a stejne jako spravnejsi "$HOME") naplnene jen pri behu pod tim konkretnim uzivatelem, nikoliv pri behu systemoveho cron...
kazdopadne, aby zjistil obsah promenych neni nic snadnejsiho nez do toho scriptu dat:
echo "JEDNA je $JEDNA, DVA je $DVA" >/tmp/cojeco.log
porad nemam telo, ale uz mam hlavu... nobody
15.3.2017 18:21 ondatra
Rozbalit Rozbalit vše Re: Expanze proměnných cron versus bash
Jo, mělo být $USER :-)

čili to řešení nemá?
15.3.2017 21:12 rastos | skóre: 62 | blog: rastos
Rozbalit Rozbalit vše Re: Expanze proměnných cron versus bash
Riešenie sa vždy nájde. Odporúčam urobiť si cron job, ktorý spustí env (bez parametrov) a jeho výstup presmeruje do súboru. Tam sa potom dozvieš, aké premenné prostredia sú nastavené pre cron job a aké majú hodnoty. A potom sa zariaď podľa toho.
k3dAR avatar 16.3.2017 01:33 k3dAR | skóre: 62
Rozbalit Rozbalit vše Re: Expanze proměnných cron versus bash
muzes zkusit zjistit jake hodnotu mas na co nastavene, podle meho prikladu, nebo podle rastos by to(=pridani do scriptu co poustit cronem) bylo:
env >/tmp/env.log
jinak co je tvuj cil? mas na tom pocitaci urcite vice uctu? pokud mas jen 1, tak ho do toho scriptu muzes naprimo napsat, pokud chces mit script stejny pro vice PC kde mas take vzdy jeden ucet ale pokazdy jiny, muzes snad pouzit expandovatelne /home/*/bin, ale pokud tam budou 2 uzivatele tak uz to tak nepujde...

ono pokud mas tedy opravdu vice uzivatelu, jak myslis ze by mel script v kronu poznat ktereho uzivatele chces pouzit bin? podle aktualne prihlaseneho? co ale kdyz by bylo najednou prihlaseno vice uzivatelu? takze znovu, ceho se snazis docilit? :)
porad nemam telo, ale uz mam hlavu... nobody

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.