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


9

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

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

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


출력은 일반적으로 이메일을 통해 전송됩니다.
— 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
    

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

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


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