Bagaimana cara menghapus isi file error.log tetapi tetap file tersebut tetap utuh


25

Saya ingin menghapus isi file error.log (file log kesalahan nginx), tetapi saya tidak ingin benar-benar menghapus file.

apakah ini mungkin?

menjalankan ubuntu

Jawaban:


67

Anda bisa menggunakan ini:

>error.log

(diketik begitu saja - redirection output kosong)

atau

truncate -s0 error.log

@Ignacio: Jika file sudah ada, salah satu akan memotongnya. Jika file tidak ada, keduanya akan membuatnya.
Dijeda sampai pemberitahuan lebih lanjut.

Anda benar, salah saya.
Ignacio Vazquez-Abrams

Opsi terakhir bekerja untuk saya, untuk beberapa alasan sudo> error.log tidak bekerja untuk saya (ubuntu 12.04)
davidkonrad

5
@davidkonrad: Anda harus sudah menjadi root agar pengalihan berfungsi sejak dilakukan sebelum sudodiberlakukan. Atau Anda dapat melakukannyasudo bash -c '>error.log'
Dijeda hingga pemberitahuan lebih lanjut.

1
@ divHelper11: Dalam jawaban saya, saya katakan itu adalah "redirection output kosong". Itu berarti bahwa "tidak ada" sedang dikirim ke file bernama dan yang menimpa konten yang ada. Ini mirip echo "some words" > output.txttetapi tidak ada yang masuk.
Dijeda sampai pemberitahuan lebih lanjut.

1

Anda akan membingungkan daemon. Hapus file lalu kirim SIGHUPke nginx.


PENJUALAN? Tidak bisakah saya mematikan nginx, membersihkan file, lalu mulai? Saya ingin tahu cara menghapus file demi pengetahuan juga.
user27449

Jika Anda mau, tentu saja. Tapi itu akan mengganggu layanan.
Ignacio Vazquez-Abrams

Saya pikir pengalihan nol dan truncateatomik, jadi selama tidak ada pencarian yang sedang berlangsung (terutama jika satu-satunya operasi yang terjadi adalah menambahkan) itu tidak boleh mengganggu.
Dijeda sampai pemberitahuan lebih lanjut.
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.