`at`과`cron` 작업의 출력은 어디로 가는가?


9

표시 할 화면이없는 경우 표준 출력 atcron작업의 위치 는 어디 입니까?

작업이 시작된 디렉토리 나 홈 디렉토리에는 나타나지 않습니다.

백그라운드 작업을 디버그하거나 추적하는 방법을 모른다면 실제로 어떻게 이것을 알 수 있습니까?


출력은 일반적으로 이메일을 통해 전송됩니다.
donothingsuccessfully

출력을 읽으려면 "작지만 강력한 텍스트 기반 메일 클라이언트"인 mutt을 사용하는 것이 좋습니다. 내가 사용한 모든 배포판의 저장소에 있습니다.
kwarrick

답변:


10

cron 매뉴얼 페이지에서 :

명령을 실행할 때 모든 출력은 crontab의 소유자 (또는 crontab의 MAILTO 환경 변수에 이름이 지정된 사용자에게있는 경우)로 메일로 전송됩니다. 이러한 프로세스를 실행하는 크론의 하위 사본은 syslog 및 ps 출력에서 ​​볼 수 있듯이 이름이 대문자로 강제 변환됩니다.

따라서 / root의 메일 또는 syslog (예 : / var / log / syslog)를 확인해야합니다.


내 Mac에서는 단순히 "cron"을 호출 한 후 "email"경로를 표시했습니다. 제 경우에는 / var / mail / <username>이었습니다.
Cédric Guillemette

4

장시간 실행되는 프로세스의 경우 이메일을 받기 전에 출력이 무엇인지 아는 것이 때때로 유용합니다.

  1. ps실행중인 프로그램의 프로세스 ID를 찾는 데 사용하십시오 ( PID 아래).
  2. 사용하는 lsof출력이 기록되는 파일을 찾을 수 :

    lsof -p PID
    

출력 에서 열 머리글 아래에서 1u2u행을 찾으십시오 FD.

이 줄은 프로세스 출력이 메일로 전송되기 전에 어떤 임시 파일로 들어가는 지 알려줍니다. 일반적으로의 at경우 파일은 아래에 /var/spool/cron/atjobs/있습니다. 마지막으로 해당 파일을 표시하면 프로세스 (현재) 출력을 찾을 수 있습니다.


세 이하의 파일 1u2u유형입니다 UNIX. 나는 이것이 UNIX 소켓이라고 생각합니다. 지금 파일을 어떻게 조사합니까?
kapad
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.