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

pengguna27449
sumber

Jawaban:

67

Anda bisa menggunakan ini:

>error.log

(diketik begitu saja - redirection output kosong)

atau

truncate -s0 error.log
Dijeda sampai pemberitahuan lebih lanjut.
sumber
@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.

Ignacio Vazquez-Abrams
sumber
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.