Nie wiem czy dobry dział bo to problem z pogranicza systemu a programowania.
Do rzeczy. Mam napisaną pewną aplikacje w php. Aplikacja to kilka klas z exec(), gdyż php wiele rzeczy z poziomu systemu nie zrobi lub zrobi ale mało efektywnie. Gdy odpalę sobie "php index.php" - super, wykonuje co ma zrobić, zwraca mi komunikat że jest ok oraz cząstkowe info co zrobił. W exec() mam m.in jakieś polecenie rm oraz cp a także prosty skrypt bashowy co przechodzi do pewnego katalogu i go pakuje zipem.
Gdy zadowolony, że wszystko śmiga jak rakieta wrzuciłem to co crontaba:
[HTML]*/1 * * * * php /home/user111/system/index.php #>> /home/user111/log/cron22.log[/HTML]
Po takim zapisie w crontabie, aplikacja się uruchamia, ale kompletnie olewa skrypt bashowy, lub generuje jakiś błąd, ale nie mam jak go odczytać. Resztę exec() wykonuje - stwierdzam tak po analizie operacji. Gdy odkomentuje to co wyżej mam, nie wykonuje mi tego skryptu. Komponowałem jeszcze z > oraz 2>$1 bez efektu.
Kod: Zaznacz cały
exec("/bin/bash bin/zip.sh $path $dir_zip $dir");
#!/bin/bash
cd $1
zip -r $2 $3
[/HTML]
Możliwe że interpreter php inaczej widzi ścieżki itp, ale nie mam jak tego stwierdzić bo nie rejestruje mi błędów. Chciałbym chociaż zobaczyć komunikaty wyświetlane po wykonaniu skryptu z crontaba.