การส่งออก 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

และเรียกใช้ผ่านสคริปต์การประทับเวลาก่อนที่จะบันทึกลงในล็อกไฟล์ (ดังอธิบายในลิงค์ด้านบน)




-2

ฉันแก้ไขปัญหานี้แล้ว เพียงเพิ่มเส้นทางวันที่ (/ bin / date) ก่อนคำสั่ง date


2
โปรดเพิ่มข้อมูลและตัวอย่างเพิ่มเติม
Danijel

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.