crontab이 작업을 실행할 때마다 고유한 로그를 생성하도록 하려면 어떻게 해야 합니까?

crontab이 작업을 실행할 때마다 고유한 로그를 생성하도록 하려면 어떻게 해야 합니까?

다음은 crontab 작업입니다.

/usr/local/bin/python2.7 /home/scripts/script.py >> /home/scripts/logs/log.log 2>&1

작업이 실행될 때마다 새 로그를 생성하려면 어떻게 해야 합니까?

로그 파일이 생성될 때마다 로그 파일에 증가하는 카운터를 추가하는 것이 좋습니다. 이 작업을 수행하는 방법을 모릅니다.

그렇게 하려면 실제로 또 다른 크론 작업을 실행해야 합니까?

답변1

date다음 명령을 사용하여 고유한(ish) 파일 이름을 생성 할 수 있습니다 .

/usr/local/bin/python2.7 /home/scripts/script.py > /home/scripts/logs/"`date +\%d\%m\%y_\%H\%M\%S`".log 2>&1

편집하다:백분율 기호를 피하십시오( \%). 그들은특별한 의미cron에서는 crontab이 오류를 반환합니다.

이렇게 하면 <date_time>.log작업이 실행될 때마다 새 로그 파일( 라고 함)이 생성됩니다.

$ date; touch "`date +%d%m%y_%H%M%S`.log"
  Tue Sep 25 04:39:25 CEST 2012
$ ls *log
  250912_043925.log

스크립트가 1초에 한 번 이상 실행되지 않는다고 가정하면(간단한 crontab을 실행하는 경우에는 실행할 수 없음) 문제가 없을 것입니다.

설명에서 제안한 대로 다른 사용자가 스크립트를 실행하는 경우 로그 파일 이름에 사용자 이름을 추가할 수 있습니다.

/usr/local/bin/python2.7 /home/scripts/script.py > /home/scripts/logs/$(echo -n `whoami`_`date +\%d\%m\%y_\%H\%M\%S`).log 2>&1

관련 정보