Est-ce que la création du directory / var / log est seulement lisible sur debian linux?

J'installe un très petit server qui a obtenu une 512MB de voitures CF en HD. Non seulement je n'ai pas beaucoup d'espace, mais je voudrais minimiser les écritures sur le disque.

Je voudrais effacer complètement le directory / var / log et le rendre en lecture seule (protégé en écriture).

Le système sera-t-il suspendu si je le fais?

Au lieu de le lire uniquement, je créerais /var/log comme tempfs. et tailler régulièrement. Bien sûr, cela ne fonctionne que si vous avez suffisamment de RAM disponible.

Vous pouvez faire la même chose pour d'autres directorys non essentiels comme /var/tmp

Entrées dans mon /etc/fstab (maintenant commentées):

 tmpfs /var/tmp tmpfs defaults,noatime,mode=1777,size=128M 0 0 tmpfs /var/log tmpfs defaults,noatime,mode=0755,size=128M 0 0 

Si vous prévoyez de le rendre en lecture seule, il est alors inutile. Vous devriez contrôler comment et ce que vous vous connectez.

Si vous manquez d'espace, vous voudrez peut-être avoir une partition distincte de taille raisonnable / var et choisir un système de files capable de gérer un grand nombre de petits files, comme ReiserFS ou autre chose.

Selon la norme Debian FHS (système de hiérarchie de filesystems), / var / log doit être accessible en écriture. Au démarrage, le système lui-même doit pouvoir écrire dans un journal de ce directory. Vous pouvez créer / usr en lecture seule, mais / var doit être monté en écriture.

Pour répondre à la question posée dans votre article, oui, le système sera suspendu au démarrage. Le kernel tentera d'écrire sur dmesg, et se bloquera quand il ne le pourra pas.

Comme indiqué dans mon commentaire, un file /var/log inscriptible est important, mais il y a des choses que vous pouvez faire pour vous assurer que le less possible soit sauvegardé. Par exemple, vous pouvez configurer logrotate pour faire pivoter les files journaux en fonction de leur taille, en compressant les anciens. Vous pouvez également configurer syslog pour n'écrire que CRIT et au-dessus dans les journaux (les autres sont ignorés)

exemple logrotate :

  compress /var/log/messages { rotate 5 size 100k postrotate /usr/bin/killall -HUP syslogd endscript } 

(Vous devez également configurer logrotate /etc/logrotate.conf pour qu'il soit également exécuté dans un cronjob).

Exemple rsyslog.conf :

 $ModLoad imuxsock # provides support for local system logging (eg 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 * 

C'est probablement le meilleur terrain d'entente car presque rien n'est enregistré, mais vous êtes toujours averti des events critiques. Vous pouvez également penser à configurer le syslog distant sur un server avec un stockage plus important si la conservation du journal est importante.