error.log 파일의 내용을 지우고 파일을 그대로 유지하는 방법


25

error.log (nginx error log file) 파일의 내용을 지우고 싶지만 실제로 파일을 삭제하고 싶지 않습니다.

이것이 가능한가?

우분투 실행

답변:


67

이것을 사용할 수 있습니다 :

>error.log

(빈 출력 리디렉션과 같이 입력)

또는

truncate -s0 error.log

@Ignacio : 파일이 이미 존재하면 잘립니다. 파일이 존재하지 않으면 파일을 만듭니다.
추후 공지가있을 때까지 일시 중지되었습니다.

당신 말이 맞아요
Ignacio Vazquez-Abrams

마지막 옵션은 어떤 이유로 든 나를 위해 일했습니다. 어떤 이유로 sudo> error.log가 나를 위해 작동하지
않았습니다

5
@davidkonrad : 리디렉션 sudo이 적용 되기 전에 리디렉션이 작동하려면 이미 루트 여야합니다 . 또는 당신이 할 수있는sudo bash -c '>error.log'
추후 공지가있을 때까지 일시 중지.

1
@ divHelper11 : 내 대답에 따르면 "빈 출력 리디렉션"이라고합니다. 즉, "아무것도"라는 이름의 파일로 전송되고 기존 내용을 덮어 씁니다. 비슷 echo "some words" > output.txt하지만 아무 것도 들어 가지 않습니다.
추후 공지가있을 때까지 일시 중지되었습니다.

1

데몬을 혼동합니다. 파일을 지우고 SIGHUPnginx 로 보냅니다 .


SIGHUP? nginx를 종료하고 파일을 삭제 한 다음 시작할 수 없습니까? 지식을 위해 파일을 지우는 방법도 알고 싶습니다.
user27449

원한다면 확실 해요 그러나 그것은 서비스를 방해 할 것입니다.
Ignacio Vazquez-Abrams

나는 truncate탐색이 진행되지 않는 한 (특히 발생하는 유일한 작업이 추가되는 경우) null 리디렉션과 a 가 원자 적이라고 생각하여 방해해서는 안됩니다.
추후 공지가있을 때까지 일시 중지되었습니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.