Чому Cron зберігає в / root, коли слід в / var / www?


1

Чому мій cron */1 * * * * /usr/bin/php /var/www/query/query.php &> /root/querylog.logзберігає вихід query.php у папці / root /?

(цей скрипт повинен зберігати * .txt у своєму місці)

It should do so at /var/www

Власником папки var/www/query/є web-data.

Запускається на Debian Squeeze 6.0


Що з цікавості є результатом query.php? Можливо, вам слід вказати правильний шлях його виводу всередині вашого PHP-коду?

Для якого користувача працює cron?
danio

Відповіді:


3

querylog.logФайл зберігається в /rootкаталозі , тому що саме там , де ви вказали , що мають бути збережені.

Якщо ви хочете змінити його місцезнаходження, просто відредагуйте шлях до потрібного місця, наприклад /var/www/querylog.log.


зберігає query.php вихід 2 * .txt файлів. Коли мене обстрілюють на моїй локальній машині, вони створюються в тому ж режимі, що і query.php. Але крон зберігає їх там, де зберігається журнал - чому? (вихідний і журнальний вогонь - це дві окремі речі до речі)
Szymon Toda

Я думаю, що він не говорить про .log файл, а про вихід query.php, лог входить в корінь так, як він цього хоче.

1

Це відбувається тому, що завдання cron воно виконується як користувач root, тому воно виконується в $ HOME користувача root, тобто /root.

Якщо ви хочете, щоб робота cron запускалася в іншому місці, щоб результат був генерований там, слід спочатку переміститися туди, наприклад, написати сценарій, який виконує все, і запустіть його з cron:

my_query.bash

cd /var/www
/var/www/query/query.php &> /root/querylog.log

І лінія крона стає

*/1 * * * * /bin/bash /path/to/script/my_query.bash

Я не розумію голосів за цю відповідь: мабуть, говорить саме те, що відбувається (query.php зберігає вихід у каталог, з якого він запущений, cron запускає його як root, тому сценарій працює в .roo
danio,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.