J'ai actuellement un serveur Debian qui manque d'espace disque dur et en utilisant le lsof | grep deleted | less
Commande J'ai trouvé les fichiers incriminés qui ont utilisé l'espace (mais pas libéré).
in:imklog 462 518 root 7w REG 8,1 11199498620 1448243 /var/log/daemon.log (deleted)
Je sais que le redémarrage de 99,999% libère ces fichiers, mais cela n'est pas souhaitable.
J'apprécie que la suppression des fichiers (au lieu d'un logrotate
) a abouti à cette situation, alors abordera ceci, mais ma question est que je puisse libérer ces fichiers et ne pas libérer de l'espace sans redémarrer? Et est oui, comment?
Merci d'avance.
Recharger/redémarrer ou envoyer un signal HUP
(kill -1
) À tout ce qui détient les fichiers journaux ouverts (probablement rsyslogd
). Vous courez probablement SystemD, alors c'est:
systemctl restart rsyslog.service
ou /etc/init.d/rsyslog restart
Si vous exécutez sysvinit
.
Cela causera RSYSLOGD pour recharger son (s) fichier (s) de configuration, fermer et réouvrira tous ses fichiers journaux.
(Remarque: avec la plupart des démons, "Recharger" est le mot-clé à utiliser pour les amener à recharger leurs fichiers de configuration et/ou à proximité et à relancer tous les fichiers. Pour une raison quelconque, "redémarrage" est utilisé avec les packages RSYSlog debian)
Dès qu'il n'y ait aucun processus restant avec une poignée de fichier ouverte sur ce fichier journal, l'espace qu'il utilise sera libéré.