
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 at
RedHat에서 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
로 전달된 명령 앞에 계속해서 다음을 얻습니다.chronic
moreutils
둘 다stderr 및 stdout(명령이 오류 상태로 종료된 경우), 그렇지 않으면 아무것도 없습니다.
크론 작업을 진행하는 동안 동일한 작업을 수행하세요.