crontab에서 실행되는 스크립트가 쉘 화면에 출력을 제공하지 않습니다.

crontab에서 실행되는 스크립트가 쉘 화면에 출력을 제공하지 않습니다.

crontab을 통해 간단한 에코 스크립트를 실행하려고 합니다. 1분마다 실행되도록 설정했지만 쉘 화면에 출력을 제공하지 않습니다. 그러나 스크립트를 독립형으로 실행하면 정상적으로 실행됩니다.

스크립트

#!/bin/bash
echo "Test Script"

크론탭 항목:

root@example-server ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed
  *  *  *  *  * root /root/test.sh

답변1

cron 작업의 출력은 화면에 표시되지 않습니다. 그럴 수 없습니다. 작업이 실행되는 동안 로그인하지 않았을 수도 있습니다!

cron 작업의 출력은 이메일을 통해 전송됩니다. 작동 중인 UNIX 시스템에는 항상 네트워크 연결과 독립된 로컬 전자 메일 기능이 있습니다. 로컬 이메일을 원격 계정으로 보내려면 .forward홈 디렉터리에 원격 이메일 주소가 포함된 파일을 만드세요. 일부 배포판로컬 이메일을 기본으로 사용하지 마세요, 이 경우 cron 출력이 블랙홀로 사라집니다. 너 하나 필요해메일 전송 대행지역 이메일을 보내세요. 별도의 시스템에서 네트워크로부터 들어오는 연결을 허용하지 않도록 구성합니다(대부분의 배포판에는 이를 쉽게 설정할 수 있는 방법이 있습니다). 일반적인 MTA에는 Exim 및 Postfix가 포함됩니다. 배포에 기본 MTA가 있는 경우 이를 선택합니다.

답변2

echo 출력을 일부 파일로 리디렉션해야 합니다.

1.- 다음 명령을 실행하세요: tty

/dev/pts/X 확인 번호 X와 같은 내용이 표시됩니다.

2.- 다음 명령을 사용하여 크론 작업을 수정합니다.

크론탭 -e

*/1 * * * * echo "매분마다 안녕하세요" > /dev/pts/X

이것이 바로 친구입니다.

관련 정보