Cronjob сохраняет json в неправильный каталог [duplicate]

Вы можете попробовать инструмент Gnome-tweak, предполагая, что вы работаете на гноме, если вы на единстве, есть инструмент для настройки единства. Оба могут быть установлены с помощью apt:

sudo apt-get update

& amp; & amp; & amp;

sudo apt-get install gnome-tweak-tool

OR

sudo apt-get install unity-tweak-tool

в инструменте настройки gnome под «Keyboard & amp; Mouse ', есть опция «Дополнительные макеты», здесь вы можете изменить поведение ключевого словака, сопоставить его с esc, а также практически все, что хотите.

Вот картина относительно того, что это может выглядеть как

3
задан 13 March 2018 в 16:25

3 ответа

По умолчанию задания Cron выполняются в домашнем каталоге пользователя. Хотя в вашем скрипте не указан путь, в котором будет сохранен выходной файл, он будет сохранен в каталоге, где выполняется скрипт.

В соответствии с этим вопросом вы хотите сгенерировать файл .json в тот же каталог, где находится скрипт. Поэтому (в этом случае) вам нужно каким-то образом изменить свой код, аналогично этому:

$parseinfo = 'parseme.json';
$path = realpath(dirname(__FILE__));
$handle = fopen("$path/" . $parseinfo, 'w');
fwrite($handle, json_encode($res));

Если вы не хотите менять скрипт, вы можете изменить задание Cron таким образом:

*/10 * * * * root    cd /var/www/somederictory/somefolder/ && php parse.php > /dev/null
6
ответ дан 22 May 2018 в 12:48
  • 1
    Предполагая, что вы используете bash, вы также можете настроить среду для всех cronjobs, установив BASH_ENV в ваш crontab, например. [F2] – ShadSterling 5 March 2018 в 17:57
  • 2
    Привет, @ShadSterling, я не вижу, что отношение вашего комментария к текущей теме. Проблема здесь не в задании Cron, а в расположении вывода исполняемого файла. – pa4080 5 March 2018 в 18:11
  • 3
    Настройка среды может включать в себя изменение текущего каталога. Если файл записывается в текущий каталог, может быть предпочтительнее изменить текущий каталог среды cron, чем жестко указать путь в скрипт (ы) или изменить каждое задание. – ShadSterling 5 March 2018 в 21:45

По умолчанию задания Cron выполняются в домашнем каталоге пользователя. Хотя в вашем скрипте не указан путь, в котором будет сохранен выходной файл, он будет сохранен в каталоге, где выполняется скрипт.

В соответствии с этим вопросом вы хотите сгенерировать файл .json в тот же каталог, где находится скрипт. Поэтому (в этом случае) вам нужно каким-то образом изменить свой код, аналогично этому:

$parseinfo = 'parseme.json'; $path = realpath(dirname(__FILE__)); $handle = fopen("$path/" . $parseinfo, 'w'); fwrite($handle, json_encode($res));

Если вы не хотите менять скрипт, вы можете изменить задание Cron таким образом:

*/10 * * * * root cd /var/www/somederictory/somefolder/ && php parse.php > /dev/null
6
ответ дан 17 July 2018 в 19:42

По умолчанию задания Cron выполняются в домашнем каталоге пользователя. Хотя в вашем скрипте не указан путь, в котором будет сохранен выходной файл, он будет сохранен в каталоге, где выполняется скрипт.

В соответствии с этим вопросом вы хотите сгенерировать файл .json в тот же каталог, где находится скрипт. Поэтому (в этом случае) вам нужно каким-то образом изменить свой код, аналогично этому:

$parseinfo = 'parseme.json'; $path = realpath(dirname(__FILE__)); $handle = fopen("$path/" . $parseinfo, 'w'); fwrite($handle, json_encode($res));

Если вы не хотите менять скрипт, вы можете изменить задание Cron таким образом:

*/10 * * * * root cd /var/www/somederictory/somefolder/ && php parse.php > /dev/null
6
ответ дан 23 July 2018 в 20:26

Другие вопросы по тегам:

Похожие вопросы: