М. Китт прав в том, что Stack Exchange предпочитает один вопрос на вопрос, но в данном случае оба вопроса проистекают из фундаментальной ошибки, которую вы совершаете.:Вы ошибочно предполагаете, что запускаете задания cron.
Как видно из самого описания задания cron, которое находится перед вами, ваши задания cron отключаются , потому что они видят, как systemd работает в вашей системе:
… && if [ ! -d /run/systemd/system ]; then … ; fi
/etc/cron.d/php
, кстати, не является неофициальным. Он устанавливается с помощью общего пакета Debian php -. Также из этого же пакета установлены вещи, которые запускают вместо этого задания cron :
.
phpsessionclean.timer
phpsessionclean.service
Это шаблон, который в настоящее время можно найти во все большем количестве таких пакетов Debian :задания cron вытесняются модулями systemd, и само -отключается, когда (работает только )systemd.
Таким образом, настройка расписания в таблице cron ничего не даст (, кроме изменения, когда команда оболочки, которая ничего не делает , запланирована ). Точно так же установка переменных среды в таблице cron ничего не даст. Вам нужно изменить расписание в блоке таймера и изменить переменные среды в сервисном блоке.
Подробности этого выходят за рамки этого ответа, но очень кратко вам нужно узнать о модулях systemd, файлах переопределения модулей и systemctl cat
, systemctl status
,и systemctl edit
команды.
systemd.exec
. справочные страницы systemd. Freedesktop.org. systemd.timer
. справочные страницы systemd. Freedesktop.org. Если это вывод, созданный сценарием, который вы можете изменить, просто выводите табуляцию после символов :
при печати строки.
Используя GNU sed
(, который понимает\t
):
$ sed 's/: */:\t/' file
Name of user: test1
username: test1
User ID: 1004
Group ID: 1004
Это просто заменяет символы :
и любые пробелы после них на :
, за которым следует символ табуляции.
Для не -GNUsed
(например. в системах BSD )вместо \t
используйте буквальную вкладку. Вы вставляете буквальную вкладку в командную строку с помощью Ctrl+VTab .