Mengirimkan output cron ke file dengan stempel waktu atas namanya


38

Saya punya crontab seperti ini di pengaturan LAMP:

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

Ini menulis output file ke cron.log . Namun, ketika dijalankan lagi, ia menimpa apa pun yang sebelumnya ada di file.

Bagaimana saya bisa mendapatkan cron untuk menghasilkan file dengan stempel waktu dalam nama file?

Contoh nama file akan menjadi seperti ini: 2010-02-26-000000-cron.log

Saya tidak terlalu peduli dengan formatnya, asalkan punya timestamp.

Terima kasih sebelumnya.


8
jika Anda tidak ingin $HOME/cron.logditimpa, gunakan >>tidak>
Dave Cheney

Jawaban:


66

Mencoba:

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

Bermain-main dengan format tanggal, jika Anda suka; pastikan untuk melarikan diri %seperti \%, seperti di atas.


Dan izinkan saya secara umum menyarankan pendekatan untuk nama file seperti 0 0 * * * /some/path/to/a/file.php > $HOME/scriptname-tanggal + \% Y \% m \% d \% H \% M \% S.log
Kristian

Jika Anda membutuhkannya sedikit lebih dapat dibaca manusia coba: date +\%Y\ \%m\ \%d\ \%H:\%M:\%S-cron.log
DevilCode

4
@DevilCode, ya, meskipun spasi dalam nama file tidak terlalu konvensional di Unix. Tanda hubung atau garis bawah mungkin menjadi pilihan yang lebih baik: date +\%Y-\%m-\%d_\%H:\%M:\%S-cron.log.
fisi

1
Karakter pelarian yang aneh itu selalu membuatku kesal Terima kasih atas pengingatnya!
Tony-Caffe

14

saya akan sangat menyarankan Anda menyimpan semuanya ke dalam file yang sama, menggunakan cap waktu, seperti yang dijelaskan di sini .

menghapus

2> & 1

dan jalankan melalui skrip timestamping sebelum menyimpannya ke file log (seperti yang dijelaskan dalam tautan di atas).



0

Saya memodifikasi skrip seperti ini:

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

-2

Saya memecahkan masalah ini; cukup tambahkan jalur tanggal (/ nampan / tanggal) sebelum perintah tanggal.


2
Silakan tambahkan lebih banyak info dan contoh.
Danijel

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

5
Ini akan membutuhkan banyak penjelasan.
Sven
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.