내 Mac에 있는 대부분의 로그에는 다음과 같은 출력 메시지 앞에 타임스탬프가 있습니다.
Nov 14 17:55:24 - SoftRAID Driver: SoftRAID driver loaded, version 5.8.1.
cron에서 실행 파일을 실행 중인데 메일을 사용하는 대신 모든 정보를 로그 파일에 출력하고 출력 앞의 각 줄에 타임스탬프를 추가하고 싶습니다. >>
단일 파일에 추가하는 데 사용하고 있습니다 .
이것은 내 크론탭입니다:
SHELL=/bin/bash
MAILTO=""
* 6-23 * * * /usr/local/bin/urlwatch >> /Users/john/cronjobs/urlwatch.log
이것이 내가 urlwatch.log에서 얻은 내용입니다.
UNCHANGED: (01)urlwatch update released (https://github.com/thp/urlwatch/releases/latest)
출력을 다음과 같이 만들려면 어떻게 해야 합니까?
Nov 14 17:55:24 - UNCHANGED: (01)urlwatch update released (https://github.com/thp/urlwatch/releases/latest)
나는 웹 전반에 걸쳐 다양한 제안을 시도했지만 운이 없었습니다. 텍스트 파일로 저장하는 것이 더 쉽다면 그것도 작동할 것입니다.
가까운 이것을 시도했습니다.
* 6-23 * * * (date && /usr/local/bin/urlwatch) >> /Users/john/cronjobs/urlwatch.log
로그 파일의 출력은 다음과 같습니다.
Sun Mar 15 13:35:00 CDT 2020
UNCHANGED: (03)RansomWhere? Objective-See (https://objective-see.com/products/ransomwhere.html)
UNCHANGED: (01)urlwatch update released (https://github.com/thp/urlwatch/releases/latest)
UNCHANGED: (02)urlwatch webpage (https://thp.io/2008/urlwatch/)
답변1
귀하가 가지고 있거나 얻을 수 있는 경우집에서 만든 맥주예를 들어)ts
티지금에스tammp 유틸리티를 사용하면 다음과 같은 작업을 수행할 수 있습니다.
/usr/local/bin/urlwatch | /path/to/ts >> /Users/john/cronjobs/urlwatch.log
( /path/to/ts
일반적으로 Linux 시스템에 있으며 /usr/bin/ts
OSX에서는 다른 위치에 있을 수 있습니다). 에서 man ts
:
DESCRIPTION ts adds a timestamp to the beginning of each line of input.
기본이 아닌 시간 형식을 지정하려는 경우 그렇게 할 수 있지만 기호는 %
특별한 의미가 있으므로 cron
이스케이프해야 한다는 점을 기억하세요. 예를 들어 참조
라인 그룹에 동일한 타임스탬프가 부여되는 것을 볼 수 있습니다.5월이는 이를 생성하는 프로그램이 출력을 버퍼링하고 있기 때문입니다. 시스템에서 unbuffer
또는 유틸리티를 사용할 수 있는 경우stdbuf
5월여기에 설명된 대로 라인 버퍼링을 적용할 수 있습니다.