error.logファイルの内容を消去するが、ファイルはそのままにしておく方法


25

ファイルerror.log(nginxエラーログファイル)の内容を消去したいのですが、実際にファイルを削除したくありません。

これは可能ですか?

実行中のubuntu

回答:


67

これを使用できます:

>error.log

(そのように入力-空の出力リダイレクト)

または

truncate -s0 error.log

@Ignacio:ファイルが既に存在する場合、どちらかが切り捨てます。ファイルが存在しない場合は、どちらでも作成されます。
追って通知があるまで一時停止します。

あなたは正しい、私の悪い。
イグナシオバスケス-アブラムス

最後のオプションは私のために働いた、何らかの理由でsudo> error.logは私のために働いていなかった(ubuntu 12.04)
davidkonrad

5
@davidkonrad:リダイレクションsudoが有効になる前に実行されるため、リダイレクションを機能させるには、すでにルートになっている必要があります。または、あなたがすることができますsudo bash -c '>error.log'
さらなる通知まで一時停止します

1
@ divHelper11:私の答えでは、「空の出力リダイレクト」だと言います。つまり、指定されたファイルに「何も」送信されず、既存のコンテンツが上書きされます。それはに似ていますecho "some words" > output.txtが、何もして行くされていない。
一時停止追って通知があるまで。

1

デーモンを混乱させます。ファイルを消去してSIGHUPから、nginxに送信します。


SIGHUP?nginxをシャットダウンし、ファイルを消去してから開始できませんか?私も知識のためにファイルを消去する方法を知りたいです。
user27449

あなたがしたいなら、確かに。しかし、それはサービスを混乱させるでしょう。
イグナシオバスケス-アブラムス

nullリダイレクトとa truncateはどちらもアトミックであるため、シークが行われていない限り(特に、発生している唯一の操作が追加である場合)、混乱を招くべきではありません。
追って通知があるまで一時停止します。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.