vop Опубликовано 8 ноября, 2019 · Жалоба 10 minutes ago, Andrei said: чё, реально?! или это шутка юмора такая? Все же в сырцы заглядывать никто не мешает. 5 секунд дела: > apt-get source cron (void) gethostname(hostname, MAXHOSTNAMELEN); (void) snprintf(mailcmd, sizeof(mailcmd), MAILARGS, MAILCMD, mailto); if (!(mail = cron_popen(mailcmd, "w", e))) { perror(MAILCMD); (void) _exit(ERROR_EXIT); } fprintf(mail, "From: root (Cron Daemon)\n"); fprintf(mail, "To: %s\n", mailto); fprintf(mail, "Subject: Cron <%s@%s> %s%s\n", usernm, fqdn_in_subject ? hostname : first_word(hostname, "."), e->cmd, status?" (failed)":""); # if defined(MAIL_DATE) fprintf(mail, "Date: %s\n", arpadate(&StartTime)); # endif /* MAIL_DATE */ fprintf(mail, "MIME-Version: 1.0\n"); ... и так далее ... MAILCMD Определяется так: #if !defined(_PATH_SENDMAIL) # define _PATH_SENDMAIL "/usr/lib/sendmail" #endif /*SENDMAIL*/ .... #define MAILCMD _PATH_SENDMAIL /*-*/ ... и неколько вариантов ... /* #define MAILCMD "/bin/mail" -*/ ... /* #define MAILCMD "/usr/mmdf/bin/submit" -*/ ... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Andrei Опубликовано 8 ноября, 2019 · Жалоба 5 минут назад, jffulcrum сказал: Отключить только перенаправлением stdout в /dev/null Ну так в конце у меня и указано " >/dev/null 2>&1 " Но не срабатывает. 2 минуты назад, vop сказал: Все же в сырцы заглядывать никто не мешает. Да я понимаю. Но в прошлых версиях это делалось на раз-два, а теперь обязательно в сырцы лазить, чтобы такое элементарное сделать? Не верится. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vop Опубликовано 8 ноября, 2019 · Жалоба 8 minutes ago, Andrei said: Да я понимаю. Но в прошлых версиях это делалось на раз-два, а теперь обязательно в сырцы лазить, чтобы такое элементарное сделать? Не верится. Ээээ... Ну можно не лазить. Можно, например, на форуме спросить. :) :) :) :) :) Ну не знаю, кроны они разные бывают. Поэтому проще заглянуть. Я так подозреваю, что меня поэтому лет 20 и втянули буржуи в хостинговый бизнес, что у меня "на столе" всегда сырцы апачи и другого софта открыты были. Откуда и черпались точные знания о том, что и как работает. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Andrei Опубликовано 8 ноября, 2019 · Жалоба 5 минут назад, vop сказал: Откуда и черпались точные знания о том, что и как работает. ОК, ты молодец, ты умный. :) А решение-то поставленного вопроса где? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vop Опубликовано 8 ноября, 2019 · Жалоба 6 minutes ago, Andrei said: ОК, ты молодец, ты умный. :) А решение-то поставленного вопроса где? А что там решать то? Если нельзя почту отключить, надо послать ее в /dev/null. Добавьте аккаунт в системе и отправьте его в/dev/null через алиасы. Типа Vasiunchik DevNull (devnul) aliases: devnul: /dev/null Ну и определить MAILTO="devnul" Как-то так. Решению отправлять почту в нул лет 30-40 как уже.:) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Andrei Опубликовано 8 ноября, 2019 · Жалоба 26 минут назад, Andrei сказал: в конце у меня и указано " >/dev/null 2>&1 " Это не тоже самое (отправка в /dev/null)? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vop Опубликовано 8 ноября, 2019 · Жалоба 1 minute ago, Andrei said: Это не тоже самое? Нет. Крон в STDOUT не пишет. Я же там привел код, который должен, как бы сказать, что крон запускает sendmail и прямиком херачит туда вывод. PS Есть еще вариант - похачить слегка и пересобрать crond. Но это диструктивный вариант :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Andrei Опубликовано 8 ноября, 2019 · Жалоба Провел небольшой эксперимент - ничего не меняя в настройках системы и крона добавил в тот же крон еще задачу: 32 22 * * * root cd /home/andrey; cat .screenrc | gzip > "sc.`date +\%F`.gz" ; wput "sc.`date +\%F`.gz" ftp://............ >/dev/null 2>&1 скрипт отработал и... ничего на почту не пришло. Любопытно, да? :) А если задачу закончить вот так ... ; rm *.gz >/dev/null 2>&1 то сообщение на почту приходит. И финалочка - делим задачу на две: 32 22 * * * root cd /home/andrey; cat .screenrc | gzip > "sc.`date +\%F`.gz" ; wput "sc.`date +\%F`.gz" ftp://............ >/dev/null 2>&1 33 22 * * * root cd /home/andrey ; rm *.gz >/dev/null 2>&1 Обе задачи отработали и ничего на почту не пришло. Как это объяснить? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
st_re Опубликовано 8 ноября, 2019 · Жалоба Я сильно извиняться, но в дев нул вы завернули вывод команды rm *.gz Все что до неё это отдельные команды и они в девнул не перенаправляются... то что Вам надо делается обрамлением всго от начала первой команды до перенаправления в круглые скобки. Кролн тут вообще не при делах. впросто наппишите echo a; echo b > /dev/null и возхадуйтесь вываоду буквы а 1 час назад, Andrei сказал: Провел небольшой эксперимент - ничего не меняя в настройках системы и крона добавил в тот же крон еще задачу: 32 22 * * * root cd /home/andrey; cat .screenrc | gzip > "sc.`date +\%F`.gz" ; wput "sc.`date +\%F`.gz" ftp://............ >/dev/null 2>&1 скрипт отработал и... ничего на почту не пришло. Любопытно, да? :) А если задачу закончить вот так ... ; rm *.gz >/dev/null 2>&1 то сообщение на почту приходит. И финалочка - делим задачу на две: 32 22 * * * root cd /home/andrey; cat .screenrc | gzip > "sc.`date +\%F`.gz" ; wput "sc.`date +\%F`.gz" ftp://............ >/dev/null 2>&1 33 22 * * * root cd /home/andrey ; rm *.gz >/dev/null 2>&1 Обе задачи отработали и ничего на почту не пришло. Как это объяснить? чтением мана не sh ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Andrei Опубликовано 8 ноября, 2019 · Жалоба 4 минуты назад, st_re сказал: то что Вам надо делается обрамлением всго от начала первой команды до перенаправления в круглые скобки. Вот спасибо - то, что надо! :) Чувствовал, что что-то подобное должно быть, но гугл не подсказал. И никаких разглядываний сырцов, новых юзеров и т.п. :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
GrandPr1de Опубликовано 8 ноября, 2019 · Жалоба Вообще крон тащит не из /etc/crontab переменную MAILTO а для каждого файла свой лукап. Так что надо положить MAILTO="" /cron.d/backup где ему и место в рамках обсуждаемого. Ну и я уже молчу почему это не оформить скриптом человеческим а не использовать множественный вывод с повторяющимся перенаправлением "> " 2 часа назад, vop сказал: Нет. Крон в STDOUT не пишет. его стдаут в почту направляется Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vop Опубликовано 9 ноября, 2019 · Жалоба 5 hours ago, GrandPr1de said: его стдаут в почту направляется Если быть точнее, то stdout запускаемых задач. Хотя, это уже не имеет значения. Я отвечал, как оказалось, не на тот вопрос.:) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Andrei Опубликовано 9 ноября, 2019 · Жалоба 8 часов назад, GrandPr1de сказал: Вообще крон тащит не из /etc/crontab переменную MAILTO а для каждого файла свой лукап. Так что надо положить MAILTO="" /cron.d/backup где ему и место в рамках обсуждаемого. Гугл говорит, что не так, ну да ладно. 8 часов назад, GrandPr1de сказал: Ну и я уже молчу почему это не оформить скриптом человеческим а не использовать множественный вывод с повторяющимся перенаправлением "> " Так компактней, и при переезде на другой сервер забирать всего 1 файл из /etc/cron.d, а не собирать кучу скриптов отдельными файлами. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
taf_321 Опубликовано 11 ноября, 2019 · Жалоба В 09.11.2019 в 00:51, Andrei сказал: Ну так в конце у меня и указано " >/dev/null 2>&1 " Так-то указанное в конце перенаправление работает только для последней команды, а именно только для "rm *.gz". Добавьте ">/dev/null 2>&1 " перед каждой точкой с запятой в строке, и порадуйтесь результату. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Andrei Опубликовано 11 ноября, 2019 · Жалоба 1 минуту назад, taf_321 сказал: Добавьте ">/dev/null 2>&1 " перед каждой точкой с запятой в строке, и порадуйтесь результату. Немного проще - https://forum.nag.ru/index.php?/topic/103520-strannosti-s-planirovschikom-debian-linux-cron/&do=findComment&comment=1573697 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...