저는 512mb CF 자동을 HD로 사용하는 매우 작은 서버를 설치하고 있습니다. 공간이 충분하지 않을 뿐만 아니라 디스크에 쓰기를 최소화하고 싶습니다.
/var/log 디렉토리를 완전히 지우고 읽기 전용(쓰기 금지)으로 만들고 싶습니다.
이렇게 하면 시스템이 중단됩니까?
답변1
읽기 전용으로 만들지 않고 /var/log
tempfs로 만듭니다. 그리고 정기적으로 가지치기를 해주세요. 물론 이것은 여유 RAM이 충분한 경우에만 작동합니다.
필수가 아닌 다른 디렉터리에도 동일한 작업을 수행할 수 있습니다./var/tmp
내 항목 /etc/fstab
(현재 주석 처리됨):
tmpfs /var/tmp tmpfs defaults,noatime,mode=1777,size=128M 0 0
tmpfs /var/log tmpfs defaults,noatime,mode=0755,size=128M 0 0
답변2
~에 따르면데비안 FHS(파일 시스템 계층 표준),/var/log는 쓰기 가능해야 합니다. 시작 시 시스템 자체가 이 디렉터리의 로그에 쓸 수 있어야 합니다. /usr을 읽기 전용으로 설정할 수 있지만 /var는 쓰기 가능하게 마운트해야 합니다.
기사에서 묻는 질문에 대답하자면, 예, 시스템이 시작 시 중단됩니다. 커널은 dmesg에 쓰려고 시도하고, 쓸 수 없으면 정지됩니다.
답변3
읽기 전용으로 만들 계획이라면 쓸모가 없습니다. 기록되는 내용과 방법을 제어해야 합니다.
공간이 부족하다면 별도의 적당한 크기의 /var 파티션을 원하고 ReiserFS와 같이 많은 수의 작은 파일을 처리할 수 있는 파일 시스템을 선택할 수 있습니다.
답변4
댓글에서 말했듯이 쓰기 가능성 /var/log
은 중요하지만 가능한 한 적은 양만 저장되도록 할 수 있는 방법이 있습니다. 예를 들어, logrotate
크기에 따라 로그 파일을 회전하고 오래된 파일을 압축하도록 구성할 수 있습니다 . 및 그 이상 syslog
만 CRIT
로그에 기록 하도록 구성할 수도 있습니다 (나머지는 삭제됩니다).
logrotate
예:
compress
/var/log/messages {
rotate 5
size 100k
postrotate
/usr/bin/killall -HUP syslogd
endscript
}
logrotate /etc/logrotate.conf
(또한 cronjob에서 실행되도록 구성해야 합니다 ).
rsyslog.conf
예:
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog # provides kernel logging support (previously done by rklogd)
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
*.crit /var/log/messages
*.emerg *
거의 아무 것도 기록되지 않으므로 이는 아마도 가장 좋은 중간 지점일 것입니다. 하지만 여전히 중요한 이벤트에 대한 알림은 받게 됩니다. 로그 보존이 중요한 경우 저장 공간이 더 큰 서버에 원격 syslog를 구성하는 것을 고려할 수도 있습니다.