Gửi đầu ra cron đến một tệp có dấu thời gian trong tên của nó


37

Tôi có một crontab như thế này trên thiết lập LAMP:

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

Điều này ghi đầu ra của tệp vào cron.log . Tuy nhiên, khi nó chạy lại, nó sẽ ghi đè lên bất cứ thứ gì trước đó trong tệp.

Làm cách nào tôi có thể nhận được cron để xuất ra một tệp có dấu thời gian trong tên tệp của nó?

Một tên tệp ví dụ sẽ là một cái gì đó như thế này: 2010-02-26-000000-cron.log

Tôi không thực sự quan tâm đến định dạng, miễn là nó có dấu thời gian của một số loại.

Cảm ơn trước.


8
nếu bạn không muốn $HOME/cron.logbị ghi đè, hãy sử dụng >>không>
Dave Cheney

Câu trả lời:


65

Thử:

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

Chơi xung quanh với định dạng ngày, nếu bạn thích; chỉ cần chắc chắn để thoát khỏi bất kỳ %like \%, như trên.


Và hãy để tôi thường đề xuất cách tiếp cận với tên tệp như 0 0 * * * /some/path/to/a/file.php > $HOME/scriptname-ngày + \% Y \% m \% d \% H \% M \% S.log
Kristian

Nếu bạn cần thêm một chút con người có thể đọc được, hãy thử: date +\%Y\ \%m\ \%d\ \%H:\%M:\%S-cron.log
DevilCode

4
@DevilCode, vâng, mặc dù khoảng trắng trong tên tệp không phổ biến trong Unix. Hyphens hoặc gạch dưới có thể là một lựa chọn tốt hơn : date +\%Y-\%m-\%d_\%H:\%M:\%S-cron.log.
phân hạch

1
Những nhân vật trốn thoát kỳ dị luôn có được tôi. Cảm ơn đã nhắc nhở!
Tony-Caffe

13

Tôi thực sự khuyên bạn nên lưu mọi thứ vào cùng một tệp, sử dụng dấu thời gian, như được giải thích ở đây .

tẩy

2> & 1

và chạy nó thông qua tập lệnh đánh dấu thời gian trước khi lưu nó vào tệp nhật ký (như được giải thích trong liên kết ở trên).



0

Tôi đã sửa đổi kịch bản như thế này:

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

-2

Tôi đã giải quyết vấn đề này; chỉ cần thêm đường dẫn ngày (/ bin / ngày) trước lệnh ngày.


2
Vui lòng thêm thông tin và ví dụ.
Danijel

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

5
Điều này sẽ cần rất nhiều lời giải thích.
Sven
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.