SlackwareThis Forum is for the discussion of Slackware Linux.
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Introduction to Linux - A Hands on Guide
This guide was created as an overview of the Linux Operating System, geared toward new users as an exploration tour and getting started guide, with exercises at the end of each chapter.
For more advanced trainees it can be a desktop reference, and a collection of the base knowledge needed to proceed with system and network administration. This book contains many real life examples derived from the author's experience as a Linux system and network administrator, trainer and consultant. They hope these examples will help you to get a better understanding of the Linux system and that you feel encouraged to try out things on your own.
Click Here to receive this Complete Guide absolutely free.
When I plug or unplug my network cable (from eth0, a standard 10/100 nic), and use "dmesg", I see status notices like:
eth0: network connection down
eth0: network connection up using port A
My question: is there a way to detect these changes without using dmesg? Perhaps something changes in /proc/ or some event I could listen to? Basically I want to run a simple script when the network cable is plugged in. I have tried ifplugd, but it didn't seem to work properly for me.
Any ideas / advice?
Thanks for the link, it looked like a good soluation, but then I realized it basically wraps ifplugd (and libdaemon), which I still haven't had any luck with.
Any more ideas? If not I guess I will have to write some sort of dmesg watching script
Have you tried syslog? It can log kernel messages that show up in dmesg and you can send output to the console. If you don't want to see all the kernel message ring data, you could log to a file and tail it to the console as a background process with a grep for just ethernet messages.
Not very elegant, but it's a quick hack & slash for what you want.
(Note: That's according to the man page for dmesg. I haven't bothered to test it.)
That seems to get me the notification I want; I can latch onto it and call my script when it changes.
I like this solution a bit better for 2 reasons: it's simple and clean, and it doesn't require 2 additional software packages (even if they are tiny).
So although I imagine your script is very useful Alien Bob, it is probably overkill for my needs in this situation. And since I didn't elaborate earlier, the problem I was having with ifplugd was it did not trigger anything when the cable was un/plugged. I could see the process running in 'ps', but it didn't seem to actually do anything. I imagine I could have dug deeper and tried different configurations, but the tail solution seems fine for now.
If you want sophisticated logfile monitoring with action triggers, take a look at SEC (simple event correlator) at http://www.estpak.ee/~risto/sec/
I've used this, and found it practical and useful. It's basically no more than one intelligent perl script that can daemonize itself.