Je suis propriétaire d'un NAS, exécutant une distribution Linux. Il est livré avec une interface d'administration Web, où je peux gérer plusieurs services, droits d'utilisateur et également quand il doit s'endormir. Mon problème est que, pour une raison quelconque, lorsque le NAS s'est endormi, le disque dur se rallume après quelques minutes. Ensuite, il tournera pendant un certain temps, puis dormira à nouveau. Cela continue indéfiniment.
Comment puis-je essayer de déterminer la cause de cela? Je suis très nouveau sur Linux, mais j'ai réussi à obtenir un accès root et j'ai maintenant une connexion SSH.
Réponses:
inotify-tools est un moyen simple de le faire. Il y a plusieurs exemples sur leur site qui pourraient faire ce que vous voulez (voir l'exemple inotifywatch pour un exemple vraiment basique).
la source
Essayez de courir
iotop
peut-être? Je l'ai trouvé utile dans le passé.la source
Un autre conseil: utilisez Systemtap, il y a un tas de scripts de sonde sur le site de systemtap assez utiles pour trouver le coupable.
Dans un autre cas tout à fait,
Si vous souhaitez savoir quel processus a provoqué la rotation du disque, vous pouvez collecter des informations en définissant l'indicateur
/proc/sys/vm/block_dump
. Lorsque cet indicateur est défini, Linux signale toutes les opérations de lecture et d'écriture sur disque qui ont lieu et tous les salissures de bloc effectuées sur les fichiers. Cela permet de déboguer la raison pour laquelle un disque doit tourner et d'augmenter encore la durée de vie de la batterie. La sortie de block_dump est écrite dans la sortie du noyau, et elle peut être récupérée à l'aide de "dmesg" ou consultez votre installation de kern syslog pour la destination des messages de débogage. En général, ça devrait l'être/var/log/debug
. Lorsque vous utilisez block_dump et que votre niveau de journalisation du noyau inclut également des messages de débogage du noyau, vous souhaiterez probablement désactiver klogd, sinon la sortie de block_dump sera journalisée, ce qui entraînera une activité du disque qui n'est pas normalement présente.la source
Vous devez dire au noyau de vous informer de toutes les lectures / écritures sur les disques, puis vous devez regarder ces informations.
Donc:
sync
vide toutes les écritures en attente sur les disques, de sorte que vous ne voyez que les nouvelles lectures ou écritures.dmesg -c
vous montre les messages du noyau et les efface (sinon vous voyez les anciens aussi, chaque fois que vous exécutez dmesg).grep
filtre la sortie de dmesg pour l'activité du disque qui vous intéresse. Remplacez / dev / sda par votre périphérique réel.J'utilise habituellement quelque chose comme ça pour faire tourner le disque, puis vérifie quand il tourne à nouveau:
La
while
boucle vérifie l'état actif / inactif du disque toutes les 10 minutes. Lorsque vous le voyez s'allumer, exécutez ladmesg
ligne ci-dessus pour voir Whununnit.la source