이름에 타임 스탬프가있는 파일로 cron 출력 보내기


37

램프 설정에 다음과 같은 crontab이 있습니다.

0 0 * * * /some/path/to/a/file.php > $HOME/cron.log 2>&1

파일의 출력을 cron.log에 기록합니다 . 그러나 다시 실행될 때 파일에 이전에 있던 내용을 덮어 씁니다.

cron 이 파일 이름에 타임 스탬프가있는 파일출력하도록하려면 어떻게해야합니까?

파일 이름 예는 다음과 같습니다. 2010-02-26-000000-cron.log

타임 스탬프가 어떤 종류 인 한 실제로는 형식에 신경 쓰지 않습니다.

미리 감사드립니다.


8
$HOME/cron.log덮어 쓰지 않으려면 사용 >>하지 마십시오>
Dave Cheney

답변:


65

시험:

0 0 * * * /some/path/to/a/file.php > $HOME/`date +\%Y\%m\%d\%H\%M\%S`-cron.log 2>&1

원하는 경우 날짜 형식으로 놀아보십시오. 위와 %같이 그냥 탈출하십시오 \%.


그리고 일반적으로 0 0 * * * /some/path/to/a/file.php > $HOME/scriptname-날짜 + \ % Y \ % m \ % d \ % H \ % M \ % S 와 같은 파일 이름에 대한 접근 방식을 제안하겠습니다..log
Kristian

좀 더 인간이 읽을 수 있어야한다면 : date +\%Y\ \%m\ \%d\ \%H:\%M:\%S-cron.log
DevilCode

4
@DevilCode, 그렇습니다. 파일 이름의 공백은 Unix에서 그리 일반적이지 않습니다. 하이픈이나 밑줄이 더 나은 옵션 일 수 있습니다 date +\%Y-\%m-\%d_\%H:\%M:\%S-cron.log.
핵분열

1
그 괴물 탈출 캐릭터는 항상 나를 얻는다. 알림 주셔서 감사합니다!
Tony-Caffe

13

여기 설명 된 대로 타임 스탬프를 사용하여 모든 것을 동일한 파일에 저장하는 것이 좋습니다 .

없애다

2> & 1

타임 스탬프 스크립트를 통해 로그 파일에 저장하기 전에 스크립트를 실행하십시오 (위 링크에서 설명).


6

다음과 같이 출력을 로그 파일에 추가 할 수도 있습니다.

0 0 * * * /some/path/to/a/file.php >> $HOME/cron.log 2>&1

0

다음과 같이 스크립트를 수정했습니다.

`/bin/date +\%Y\%m\%d`.log

-2

이 문제를 해결했습니다. date 명령 앞에 날짜 경로 (/ bin / date)를 추가하십시오.


2
더 많은 정보와 예제를 추가하십시오.
Danijel

-2
@daily /some/path/to/a/file.php 2>&1 > $HOME/$(date +\%Y\%m\%d\%H\%M\%S)-cron.log

5
이것은 많은 설명이 필요합니다.
Sven
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.