Wątek przeniesiony 2019-01-02 09:08 z Newbie przez Adam Boduch.

Cron job nie działa prawidłowo

0

Witam,
mam dziwny problem.. utworzyłem scrypt bash który wykonuje jakieś prace na serwerze i odpala comende z symfony.
odpalenie głónego pliku: /[path]/asari.sh
w tym pliku odpalenie comendy symfony: php $START_DIR/bin/console pww24:import asari
jak wywoluje te akcje z konsoli na serwerze to wszystko ładnie działa i śmiga
natomiast po ustawieniu corna scrypt bash nadal jest wykonywany i przechodzi caly jednakże comenda symfony nie jest już odpalana.
i tutaj moje pytanie... co robie nie tak??
dodam jeszcze ze crontab został utworzony jako root (crontab -u root -e), sam cron: 30 * * * * /var/www/pww24/bin/asari.sh

Może ma ktoś pomysł. Wydaje mi się, że wszystkie najważniejsze tematy zapisałem ale może jeszcze jakaś informacja jest kluczowa??

0
Daniel123123 napisał(a):

Witam,
mam dziwny problem.. utworzyłem scrypt bash który wykonuje jakieś prace na serwerze i odpala comende z symfony.
odpalenie głónego pliku: /[path]/asari.sh
w tym pliku odpalenie comendy symfony: php $START_DIR/bin/console pww24:import asari
jak wywoluje te akcje z konsoli na serwerze to wszystko ładnie działa i śmiga
natomiast po ustawieniu corna scrypt bash nadal jest wykonywany i przechodzi caly jednakże comenda symfony nie jest już odpalana.
i tutaj moje pytanie... co robie nie tak??
dodam jeszcze ze crontab został utworzony jako root (crontab -u root -e), sam cron: 30 * * * * /var/www/pww24/bin/asari.sh

Może ma ktoś pomysł. Wydaje mi się, że wszystkie najważniejsze tematy zapisałem ale może jeszcze jakaś informacja jest kluczowa??

Co masz w logach? journalctl -u cron

0

Co masz w logach? journalctl -u cron

Nov 29 0901 danielllll CRON[1458]: pam_unix(cron:session): session opened for user root by (uid=0)
Nov 29 0901 danielllll CRON[1466]: (root) CMD ( [ -x /usr/lib/php/sessionclean ] && if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessionclean; fi)
Nov 29 0901 danielllll CRON[1458]: pam_unix(cron:session): session closed for user root
Nov 29 0901 danielllll CRON[1591]: pam_unix(cron:session): session opened for user root by (uid=0)
Nov 29 0901 danielllll CRON[1592]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Nov 29 0901 danielllll CRON[1591]: pam_unix(cron:session): session closed for user root
Nov 29 0901 danielllll CRON[1761]: pam_unix(cron:session): session opened for user root by (uid=0)
Nov 29 0901 danielllll CRON[1761]: pam_unix(cron:session): session closed for user root
Nov 29 1001 danielllll CRON[1869]: pam_unix(cron:session): session opened for user root by (uid=0)
Nov 29 1001 danielllll CRON[1870]: (root) CMD ( [ -x /usr/lib/php/sessionclean ] && if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessionclean; fi)
Nov 29 1001 danielllll CRON[1869]: pam_unix(cron:session): session closed for user root
Nov 29 1001 danielllll CRON[1952]: pam_unix(cron:session): session opened for user root by (uid=0)
Nov 29 1001 danielllll CRON[1952]: pam_unix(cron:session): session closed for user root
itd..

natomiast w spisie cronow dla usera root mam pokazane ze normalnie odpala polecenie

0

w komendzie o która prosiles:

30 * * * * /var/www/pww24/bin/asari.sh (wycina gwizdki na forum)

natomiast na liscie logow dla roota:

Dec 29 1801 danielllll CRON[12813]: (root) CMD (/var/www/pww24/bin/asari.sh)
Dec 29 1802 danielllll CRON[12812]: (CRON) info (No MTA installed, discardin g output)
Dec 29 1801 danielllll CRON[13634]: (root) CMD ( [ -x /usr/lib/php/sessionc lean ] && if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessionclean; fi)
Dec 29 1901 danielllll CRON[15510]: (root) CMD ( [ -x /usr/lib/php/sessionc lean ] && if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessionclean; fi)
Dec 29 1901 danielllll CRON[16020]: (root) CMD ( cd / && run-parts --repor t /etc/cron.hourly)
Dec 29 1901 danielllll CRON[16556]: (root) CMD (/var/www/pww24/bin/asari.sh)
Dec 29 1925 danielllll CRON[16554]: (CRON) info (No MTA installed, discardin g output)
Dec 29 1901 danielllll CRON[17316]: (root) CMD ( [ -x /usr/lib/php/sessionc lean ] && if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessionclean; fi)
Dec 29 2001 danielllll CRON[18478]: (root) CMD ( [ -x /usr/lib/php/sessionc lean ] && if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessionclean; fi)
Dec 29 2001 danielllll CRON[18819]: (root) CMD ( cd / && run-parts --repor t /etc/cron.hourly)
Dec 29 2001 danielllll CRON[19671]: (root) CMD (/var/www/pww24/bin/asari.sh)
Dec 29 2002 danielllll CRON[19670]: (CRON) info (No MTA installed, discardin g output)
Dec 29 2001 danielllll CRON[20600]: (root) CMD ( [ -x /usr/lib/php/sessionc lean ] && if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessionclean; fi)
Dec 29 2101 danielllll CRON[21920]: (root) CMD ( [ -x /usr/lib/php/sessionc lean ] && if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessionclean; fi)
Dec 29 2101 danielllll CRON[22359]: (root) CMD ( cd / && run-parts --repor t /etc/cron.hourly)
Dec 29 2101 danielllll CRON[22995]: (root) CMD (/var/www/pww24/bin/asari.sh)
Dec 29 2124 danielllll CRON[22990]: (CRON) info (No MTA installed, discardin

generalnie wiem ze na 100% scrypt asari.sh jest wykonuwany bo wykonuje prace jakie ma do wykonania (np przerzuca zdjecia) natomiat nie wykonuje wywowalania komendy z symfony bo w bazie nie mam zmian.

0

UPDATE

udało mi sie wywołać poprawnie pliki php. Zamiast php .. trzeba było podać mu dokładną ścieżkę oraz rozszerzenie -> /usr/bin/php -q

Niestety problem jest cały czas z odpaleniem komendy z symfony w pliku bash: /usr/bin/php -q /var/www/pww24/bin/console pww24:import asari $office > /dev/null

Może ktoś jeszcze na coś wpadnie..

1

[ROZWIĄZANIE]

rozwiązanie tego problemu okazało się bardzo proste (może komuś się to przyda więc się podzielę):
projekt w symfony korzysta z ustawionych przeze mnie zmiennych systemowych typu APP_ENV=prod
APP_SECRET=... itd które dodałem bezpośrednio na serwerze lub przy konfiguracji continuous integration. Po utworzeniu się projektu powstaje dodatkowy plik .env.dist Odpalając projekt przez www albo uruchamiając comendy przez konsole system widzi te zmienne i wszystko gra. Niestety w chwili odwołania się przez Crona zmienne te są gubione. Aby wszystko było poprawnie należy utworzyć nowy plik .env i wrzucić do niego te zmienne (.env.dist jest pomijany).

Co do samego wywoływania crona to dodałem dwie rzeczy na górze pliku
PATH=~/bin:/usr/bin/:/bin
SHELL=/bin/bash

1 użytkowników online, w tym zalogowanych: 0, gości: 1