at 작업에 대한 메일 출력을 비활성화하는 방법은 무엇입니까?

at 작업에 대한 메일 출력을 비활성화하는 방법은 무엇입니까?

at특정 직업군에 대한 메일 알림을 비활성화하고 싶습니다 . 예를 들어 아래 사용 사례를 테스트할 때(중간 작업 종료)~하지 않다출력을 원하지만 프로덕션에서 동일한 코드를 메일로 출력하고 싶습니다.

$ at now <<<'/usr/bin/timeout 15s nc -l 20242'
job 71 at 2016-05-16 15:03
$ pidof /usr/bin/timeout
11853
$ kill 11853
$ mail
Heirloom Mail version 12.4 7/29/08.  Type ? for help.
"/var/spool/mail/bishop": 1 message 1 new
>N  1 bishop@trencher  Mon May 16 15:03  16/920   "Output from your job       71"
& 1
Message  1:
From bishop@trencher  Mon May 16 15:03:30 2016
Date: Mon, 16 May 2016 15:03:30 -0400
From: bishop@trencher
Subject: Output from your job       71
To: bishop@trencher
Status: R

/bin/bash: line 1: 11853 Terminated              /usr/bin/timeout 15s nc -l 20242

설정할 수 있다는 것을 알고 있지만 MAILPATH=/dev/null좀 더 세밀하게 제어할 수 있는 기능을 선호합니다. 설정 MAIL하고 MAILTO뚜렷한 효과가 없었습니다. 지시어 를 제거하기 위해 작업을 편집할 수 있다고 생각했지만 # mail작동하지 않는 것 같습니다.

at 15:15 <<<'date'
at -c 73 | grep -v '^# mail bishop' | at 15:15
atrm 73

나는 높은 곳과 낮은 곳을 검색했지만 at이라는 명령을 검색하는 것이 사소하지 않다고 가정하겠습니다. 소스 코드를 찾을 수도 없는 것 같습니다. GNU coreutils에 있지 않습니까?

업데이트: 역 식별:

$ uname -a
Linux trencher 4.4.8-20.46.amzn1.x86_64 #1 SMP Wed Apr 27 19:28:52 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
$ at -V
at version 3.1.10

작업별로 출력(모든 출력)이 제출하는 사용자에게 메일로 전송되는지 여부를 제어할 수 있습니까?

답변1

RedHat(따라서 Centos 및 친구) at및 Debian 파생 빈티지( rpm -qi atRedHat에서 Debian URL을 나타내고 위의 주석에서 derobert도 나타냄)는 -M옵션을 지원해야 합니다.

    -M      Never send mail to the user.

이것이 부족한 경우 또 다른 옵션은 작업의 출력을 억제하는 것입니다.

#!/bin/bash
exec >/dev/null 2>&1
... the usual job commands here ...

또는 logger출력을 검사해야 하는 경우 출력을 로그 파일로 파이프하거나 로그 파일로 파이프하십시오.

또 다른 옵션은 특히 개발 시스템이기 때문에 메일 전송 에이전트를 변경하고 모든 메일을 /dev/null개발 서버 어딘가의 메일함 파일에 드롭하는 것이지만 이는 더 많은 작업입니다.

답변2

(패키지에서 ) at로 전달된 명령 앞에 계속해서 다음을 얻습니다.chronicmoreutils둘 다stderr 및 stdout(명령이 오류 상태로 종료된 경우), 그렇지 않으면 아무것도 없습니다.

크론 작업을 진행하는 동안 동일한 작업을 수행하세요.

관련 정보