¶ÔÓÚÔËÐÐLinux²Ù×÷ϵͳµÄÉ豸¶øÑÔ£¬ÅжÏÍøÏßÊÇ·ñ³É¹¦½ÓÈëÊÇÈ·±£ÍøÂçͨÐÅ˳³©µÄÊ×Òª²½Öè
ÎÞÂÛÊÇ·þÎñÆ÷¡¢¹¤×÷Õ¾£¬»¹ÊÇǶÈëʽÉ豸£¬Õýȷʶ±ðÍøÏßµÄÁ¬½Ó״̬¶ÔÓÚά»¤ÏµÍ³Îȶ¨ÐÔºÍÐÔÄÜÖÁ¹ØÖØÒª
±¾ÎĽ«ÉîÈë̽ÌÖÔÚLinux»·¾³ÏÂÅжÏÍøÏß½ÓÈëµÄ¶àÖÖ·½·¨£¬²¢½áºÏʵ¼Ê°¸Àý£¬ÎªÄúÌṩһÌ×È«ÃæÇÒ¸ßЧµÄ½â¾ö·½°¸
Ò»¡¢Àí½âÍøÏß½ÓÈë¼ì²âµÄÖØÒªÐÔ ÍøÏß×÷ΪÎïÀí²ã´«Êä½éÖÊ£¬ÆäÁ¬½Ó״ֱ̬½ÓÓ°Ïìµ½Êý¾ÝµÄ´«ÊäÖÊÁ¿ºÍЧÂÊ
ÔÚLinuxϵͳÖУ¬×¼È·µÄÍøÏß½ÓÈë¼ì²â²»½öÄܰïÖú¹ÜÀíÔ±¼°Ê±·¢ÏÖ²¢½â¾öÍøÂç¹ÊÕÏ£¬»¹ÄÜÓÅ»¯ÍøÂçÅäÖã¬ÌáÉýϵͳÕûÌåÐÔÄÜ
ÀýÈ磬ÔÚ·þÎñÆ÷¼¯ÈºÖУ¬¿ìËÙʶ±ð³ö¶Ï¿ªÁ¬½ÓµÄ½Úµã£¬¿ÉÒÔÓÐЧ±ÜÃâÊý¾Ý¶ªÊ§ºÍ·þÎñÖжϣ»ÔÚÎïÁªÍø£¨IoT£©É豸ÖУ¬È·±£ÍøÏßµÄÎȶ¨Á¬½ÓÔòÊÇʵÏÖÔ¶³Ì¼à¿ØºÍ¿ØÖƵĻù´¡
¶þ¡¢LinuxÏÂÅжÏÍøÏß½ÓÈëµÄ»ù±¾·½·¨ ÔÚLinuxϵͳÖУ¬ÅжÏÍøÏßÊÇ·ñ½ÓÈëÖ÷ÒªÒÀÀµÓÚÍøÂç½Ó¿ÚµÄ״̬ÐÅÏ¢ºÍϵͳÈÕÖ¾
ÒÔÏÂÊÇһЩ³£Óõļì²â·½·¨£º 1.ʹÓÃ`ifconfig`»ò`ip`ÃüÁî `ifconfig`£¨ÒÑÔÚһЩÏÖ´ú·¢ÐаæÖб»`ip`ÃüÁîÈ¡´ú£©ÊDz鿴ºÍÅäÖÃÍøÂç½Ó¿ÚµÄ¾µä¹¤¾ß
ͨ¹ýÖ´ÐÐ`ifconfig`ÃüÁ¿ÉÒԹ۲쵽ÿ¸öÍøÂç½Ó¿ÚµÄ״̬£¬°üÀ¨ÊÇ·ñ¡°UP¡±£¨¼¤»î£©ºÍÊÇ·ñÓС°RX packets¡±£¨½ÓÊÕÊý¾Ý°ü£©¡¢¡°TX packets¡±£¨·¢ËÍÊý¾Ý°ü£©µÈÐÅÏ¢
Èç¹ûÍøÏßÒѽÓÈëÇÒ½Ó¿Ú¼¤»î£¬Í¨³£»á¿´µ½·ÇÁãµÄÊý¾Ý°ü¼ÆÊý
ifconfig »òÕߣ¬Ê¹ÓøüÏÖ´úµÄ`ip`ÃüÁ ip a ÕâÁ½¸öÃüÁî¶¼»áÁгöËùÓÐÍøÂç½Ó¿Ú¼°Æä״̬£¬Í¨¹ý¹Û²ìÌØ¶¨½Ó¿Ú£¨Èç`eth0`¡¢`enp0s3`µÈ£©µÄ״̬£¬¿ÉÒÔ³õ²½ÅжÏÍøÏßÊÇ·ñ½ÓÈë
2. ¼ì²éÁ´Â·×´Ì¬£¨Link State£© `ethtool`ÊÇÒ»¸öÓÃÓÚ²éѯºÍ¸ü¸ÄÍø¿¨ÉèÖõŤ¾ß£¬Ëü¿ÉÒÔÌṩ¸üÏêϸµÄÍøÂç½Ó¿ÚÐÅÏ¢£¬°üÀ¨Á´Â·×´Ì¬£¨link state£©
Èç¹ûÍøÏßÕýÈ·½ÓÈ룬Á´Â·×´Ì¬Ó¦Îª`up`
ethtool eth0 ÔÚÊä³öÖвéÕÒ`Link detected:yes`»ò`Speed:`£¨·Ç0Öµ£©µÈ×ÖÑù£¬ÕâЩ¶¼ÊÇÍøÏßÒѽÓÈëµÄÃ÷ÏÔ±êÖ¾
3. ¼à¿ØÏµÍ³ÈÕÖ¾ LinuxϵͳÈÕÖ¾Îļþ£¨Èç`/var/log/syslog`¡¢`/var/log/messages`£©ÖÐÒ²¿ÉÄܰüº¬¹ØÓÚÍøÂç½Ó¿Ú״̬±ä»¯µÄÐÅÏ¢
µ±ÍøÏß²å°Îʱ£¬ÏµÍ³Í¨³£»á¼Ç¼Ïà¹ØÊ¼þ
ʹÓÃ`grep`ÃüÁî¿ÉÒÔɸѡ³öÕâЩÈÕÖ¾ÌõÄ¿£º grep -i network|eth0 /var/log/syslog £¨×¢Ò⣺¸ù¾Ý¾ßÌåµÄÍøÂç½Ó¿ÚÃû³ÆºÍÈÕÖ¾ÅäÖõ÷ÕûËÑË÷¹Ø¼ü´Ê£© 4.ʹÓÃ`nmcli`£¨NetworkManagerÃüÁîÐй¤¾ß£© ¶ÔÓÚʹÓÃNetworkManager¹ÜÀíÍøÂçÁ¬½ÓµÄLinuxϵͳ£¬`nmcli`ÃüÁîÌṩÁ˷ḻµÄÍøÂç״̬²éѯ¹¦ÄÜ
ͨ¹ý`nmcli devicestatus`¿ÉÒԲ鿴ËùÓÐÍøÂçÉ豸µÄ״̬£¬°üÀ¨ÓÐÏßÁ¬½ÓµÄÏêϸÐÅÏ¢
nmcli device status ÔÚÊä³öÖУ¬ÕÒµ½¶ÔÓ¦µÄÍøÂç½Ó¿Ú£¬²é¿´Æä`STATE`×ֶΣ¬Èç¹ûΪ`connected`£¬Ôò±íÃ÷ÍøÏßÒѽÓÈëÇÒÍøÂçÁ¬½ÓÕý³£
Èý¡¢¸ß¼¶Õï¶ÏÓë×Ô¶¯»¯½Å±¾ ³ýÁËÉÏÊö»ù±¾·½·¨Íâ£¬Ãæ¶Ô¸´ÔÓµÄÍøÂç»·¾³»òÐèÒª³ÖÐø¼à¿ØµÄ³¡¾°£¬¿ÉÒÔ²ÉÓøü¸ß¼¶µÄÕï¶Ï¹¤¾ßºÍ×Ô¶¯»¯½Å±¾
1.ʹÓÃ`ping`ÃüÁî½øÐÐÁ¬Í¨ÐÔ²âÊÔ ËäÈ»`ping`ÃüÁî±¾Éí²»Ö±½Ó¼ì²âÍøÏß½ÓÈ룬µ«Ëü¿ÉÒÔÓÃÀ´²âÊÔÍøÂçÁ¬½ÓµÄÓÐЧÐÔ
ͨ¹ýÏòÒ»¸öÒÑÖª¿É´ïµÄIPµØÖ·£¨ÈçÍø¹Ø¡¢DNS·þÎñÆ÷£©·¢ËÍICMPÇëÇó°ü£¬¿ÉÒÔ¼ä½ÓÅжÏÍøÏß¼°ÍøÂç·¾¶ÊÇ·ñ³©Í¨
ping -c 4 8.8.8.8 Èç¹ûÊÕµ½ÏìÓ¦£¬ËµÃ÷ÖÁÉÙµ½GoogleµÄ¹«¹²DNS·þÎñÆ÷Ö®¼äµÄÍøÂçÁ¬½ÓÊÇͨµÄ£¬Õâͨ³£Òâζ×ÅÍøÏßÒѽÓÈëÇÒÅäÖÃÕýÈ·
2. ±àд×Ô¶¯»¯½Å±¾ ΪÁËʵʱ¼à¿ØÍøÏß½ÓÈë״̬²¢²ÉÈ¡ÏàÓ¦µÄÐж¯£¨Èç·¢Ë;¯±¨¡¢ÖØÆôÍøÂç·þÎñ£©£¬¿ÉÒÔ±àдBash½Å±¾£¬½áºÏ`cron`×÷Òµ»òsystemd·þÎñʵÏÖ×Ô¶¯»¯
ÒÔÏÂÊÇÒ»¸ö¼òµ¥µÄʾÀý½Å±¾£¬Ê¹ÓÃ`ethtool`¼ì²éÁ´Â·×´Ì¬£¬²¢ÔÚÍøÏß¶Ï¿ªÊ±·¢ËÍÓʼþ֪ͨ£º !/bin/bash INTERFACE=eth0 EMAIL=admin@example.com LINK_STATUS=$(ethtool $INTERFACE | grep Link detected |awk {print $NF}) if ¡¾ $LINK_STATUS != yes ¡¿; then echo Network cable disconnected on $INTERFACE | mail -s Network Alert $EMAIL fi ½«´Ë½Å±¾±£´æÎª`check_network.sh`£¬²¢ÉèÖÃΪ¶¨ÆÚÖ´ÐУ¨Èçÿ·ÖÖÓÒ»´Î£©£¬¼´¿ÉʵÏÖ¶ÔÍøÏß½ÓÈë״̬µÄ³ÖÐø¼à¿Ø
ËÄ¡¢°¸Àý·ÖÎö£º½â¾öÌØ¶¨³¡¾°ÏµÄÍøÏß½ÓÈëÎÊÌâ ÔÚʵ¼ÊÓ¦ÓÃÖУ¬¿ÉÄÜ»áÓöµ½Ò»Ð©ÌØÊâÇé¿ö£¬ÈçÍøÏß½ÓÈ뵫ÎÞ·¨»ñÈ¡IPµØÖ·¡¢ÍøÏ߯µ·±¶Ï¿ªµÈ
ÒÔÏÂÊÇһЩ°¸Àý·ÖÎö¼°½â¾ö·½°¸£º °¸ÀýÒ»£ºÍøÏß½ÓÈ뵫ÎÞ·¨»ñÈ¡IPµØÖ· ¿ÉÄÜÔÒò£ºDHCP·þÎñδÆô¶¯»òÅäÖôíÎó