신비한 자동 이메일

신비한 자동 이메일

몇 달 전에 crontab을 조작하고 서버에서 이메일 기능을 설정했던 기억이 납니다. 그런데 갑자기 다음과 같은 이메일을 받았습니다.

이메일 헤더:

from:    root <[email protected]>
to:  root
date:    Thu, Dec 5, 2013 at 6:48 AM
subject:     Cron <root@server-ip> test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
mailed-by:   gmail.com

이메일 본문:

/etc/cron.daily/mlocate:
/usr/bin/updatedb.mlocate: `/var/lib/mlocate/mlocate.db' is locked (probably by an earlier updatedb)
run-parts: /etc/cron.daily/mlocate exited with return code 1

이것은 Ubuntu Server 12.04.1 LTS에 있습니다. 내가 사용하고 있는 이메일 서버가 무엇인지, 어떻게 확인하는지조차 모릅니다. 디렉토리 에 대한 나의 이해 /etc/cron.daily는 꺼져 있어야 합니다. 왜냐하면 내가 그렇게 할 때 crontab -l(루트와 일반 사용자 모두에 대해) crontab이 없다고 말하기 때문입니다.

updatedb어쩌면 이메일이나 cron이 아닌 문제일까요 ?

/bin/bash /etc/cron.daily/mlocate편집: 및 프로세스 를 종료 /usr/bin/updatedb.mlocate하고 잠금을 제거했습니다. 이제 오류가 다시 발생하는지 기다려야 합니다.

답변1

  1. 현재 사용 중인 OS를 지정하면 정말 도움이 됩니다. 아마도 이것은 Linux 배포판인 것 같습니다.
  2. 실행 중이고 /etc/cron.daily/mlocate해당 스크립트에 오류가 발생하면 이를 수정해야 할 것입니다.
  3. 거기 어디에도 질문이 없습니다.

답변2

이전 포스터는 목표를 완전히 놓쳤습니다!

우선, 원본 포스터에는 그가 어떤 OS를 사용하고 있는지 명확하게 나와 있습니다: Ubuntu Server 12.04.1 LTS

둘째, UNIX 계열 시스템에서 시스템 수준의 프로세스를 이해하는 데 도움이 됩니다. 시스템 수준 cron 테이블은 정기적으로 예약된 시간에 하우스키핑 프로세스를 실행하도록 설정됩니다. cron 작업에는 오류 메시지를 출력할 연결된 터미널이 없으므로 오류 메시지는 cron-tab의 사용자(이 경우 시스템 관리자)에게 이메일로 전송됩니다.

셋째, 이러한 메시지의 이메일 전송을 끄거나 크론 작업 처리를 꺼서는 안 됩니다. 이는 문제가 있음을 나타내는 것이므로 근본 원인을 해결해야 합니다.

이 특정 메시지의 경우, 나 역시 mlocate와 관련된 정기적인 업그레이드를 수행한 후에 메시지를 받기 시작했습니다. 프로세스가 중단되어 I/O 작업이 완료될 때까지 기다리지 못했습니다. 프로세스 테이블을 살펴보십시오.

$ ps -ef |grep mlocate
scott    14564 14416  0 19:49 pts/0    00:00:00 grep mlocate
root     16326 16113  0 Apr06 ?        00:00:00 /bin/bash /etc/cron.daily/mlocate
root     16332 16326  0 Apr06 ?        00:00:00 /usr/bin/updatedb.mlocate

가장 간단한 해결책은 관련된 프로세스를 종료하고 다음 크론 예약 시간에 나중에 다시 실행하도록 하는 것입니다.

$ sudo kill -9 16326 16332

중단된 프로세스가 제거되고 cron이 이를 오류로 간주하므로 하나의 새로운 cron 메시지가 생성됩니다.

From: root@XXXXXXX (Cron Daemon)
To: root@XXXXXXX
Subject: Cron <root@XXXXXXX> test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
Content-Type: text/plain; charset=ANSI_X3.4-1968
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <LOGNAME=root>
Date: Sun, 08 Apr 2014 19:54:36 -0400 (EDT)

run-parts: /etc/cron.daily/mlocate exited because of uncaught signal 9

이는 문제가 해결되었으며 이제 다음 인스턴스가 정상적으로 작동한다는 표시입니다.

답변3

  1. mlocate에 문제가 있습니다.
  2. 메시지는 server-ip 서버에서 직접 전송됩니다.
  3. 가서 파일 의 항목 에 대해 동일한 검사를 /var/spool/cron/수행하십시오 .grep -ir MAILTOMAILTO/etc/crontab
  4. crond로부터 메시지를 받고 싶지 않다면 간단히 MAILTO 문자열을 제거하세요.
  5. (아마도 이전 업데이트에 의해) <- 오늘 메시지를 받기 시작했다면 mlocate에게 서버 작업을 완료할 시간을 좀 더 주세요.

관련 정보