Как установить MAILTO в crontab программно? - PullRequest
0 голосов
/ 24 января 2020

В настоящее время я создаю свой crontab программно следующим образом:

echo "* * * * * run_some_job" | crontab -

Кроме того, я хочу программно установить адрес MAILTO, возможно ли это? То есть без интерактивного редактора crontab -e

1 Ответ

1 голос
/ 24 января 2020

crontab может принимать многострочный ввод. Итак, дайте две строки, например, таким образом:

> (echo "MAILTO=xxx@yyy.org"; echo "* * * * * run_some_job") | crontab -

> crontab -l
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (- installed on Fri Jan 24 16:26:20 2020)
# (Cronie version 4.2)
MAILTO=xxx@yyy.org
* * * * * run_some_job

И программно (из-за unix -tag, C пример):

#include <stdio.h>

void main()
{
    FILE* file = popen("/usr/bin/crontab -", "w");
    if (file)
    {
       fprintf(file, "MAILTO=xxx@yyy.org\n");
       fprintf(file, "10 11 * * * run_some_job\n");
       pclose(file);
    }
}

результат:

> gcc main.c
> ./a.out 
> crontab -l
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (- installed on Fri Jan 24 16:35:03 2020)
# (Cronie version 4.2)
MAILTO=xxx@yyy.org
10 11 * * * run_some_job
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...