타임 스탬프를 사용하여 crontab에 로그를 추가하는 방법


9

crontab에서는 매일 백업 스크립트를 예약했습니다. 이제 cron이 스크립트를 실행할 때 상태는 아래와 같이 로그 파일에 기록됩니다.

0 0 * * * /home/backup.sh > /home/groupz/db-backup/fbackup.log 2>&1  

이제 cron이 스크립트를 실행할 때마다 로그 내용이 갱신됩니다. 따라서 실행 된 시간의 타임 스탬프와 각 시간의 내용 아래에 기존 내용과 함께 동일한 파일에 내용을 추가하고 싶습니다. 어떻게해야합니까?


crontab에서 "%"문자를 피하는 것을 잊지 마십시오! +%d-%m-%y/%H:%M:%S될 것입니다 :+\%d-\%m-\%y/\%H:\%M:\%S
Vylmarion

답변:



5

파일에서 타임 스탬프를 얻는 방법

당신이 사용할 수있는 파일에 타임 스탬프를 추가하려면 date참조를 man date자세한 내용은. 예를 들어 터미널에서 사용하면 다음과 같이 출력됩니다.

$ date +%d-%m-%y/%H:%M:%S
19-12-13/09:14:42

출력 형식은 dd-mm-yy/hour:min:sec

타임 스탬프를 파일에 넣으려면

date +%d-%m-%y/%H:%M:%S > filename

리디렉션

사용 date +%d-%m-%y/%H:%M:%S > filename하면 날짜가 파일에 저장되지만 명령을 사용할 때마다 날짜가 덮어 쓰기됩니다. 기존 파일 사용에 추가하려면

date +%d-%m-%y/%H:%M:%S >> filename

기존 파일의 끝에 마지막 실행 출력이 추가됩니다.

귀하의 경우에하는 일

당신은 당신의 끝에 다음 줄을 추가 할 수 있습니다 /home/backup.sh,

date +%d-%m-%y/%H:%M:%S

crontab에서 다음을 사용하십시오.

0 0 * * * /home/backup.sh >> /home/groupz/db-backup/fbackup.log 2>&1

위의 수정이 원하는 것을해야한다고 생각합니다.


이것은 정답입니다
Dominik

1

(Debian Jessie ts의 경우) moreutils패키지의 일부인 명령을 사용하십시오 . 예 :

0 0 * * * /home/backup.sh | ts '[%Y-%m-%d %H:%M:%S]' > /home/groupz/db-backup/fbackup.log 2>&1  

타임 스탬프를 출력의 모든 줄 앞에 추가하여 로그에 저장합니다.


1
나를 위해 작동하지 않았다, 나는 우분투 16.04를 사용하고 있습니다. 내가 설치 한moreutils
Hamman Samuel

0

쉘 스크립트를 실행하고 있으므로 다음과 같은 줄을 추가하지 마십시오.

some ./script    
echo `date -u `
some ./other/script

스크립트에서 /home/backup.sh

그때

0 0 * * * /home/backup.sh >> /home/groupz/db-backup/fbackup.log 2>&1

2018 년 6 월 14 일 11:10:22 UTC와 같이 fbackup.log 앞 / 뒤에 줄을 추가합니다


하지가 echo `date -u`같은 data -u?
Stephen Rauch

에코는 줄 바꿈 AIUI를 추가합니다.
pbhj

-2

이 두 가지 '>'를 사용하여 파일에 무언가를 추가 할 수 있습니다.

$ echo "test" >> test.txt
$ echo "test" >> test.txt

$ cat test.txt
test
test

2
타임 스탬프는 요
user3004356
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.