簡體   English   中英

檢測接口上的IP地址更改

[英]Detect IP-Address change on an interface

我想在特定接口上的IP地址發生更改時觸發服務。 在Linux(內核3.19)上使用systemd實現此目標還是我不知道的其他方法有目標嗎?

該服務將用於將SIGNAL發送到已定義的進程。 Linux在嵌入式系統上運行。

謝謝!

在StackOverflow的另一個問題中有一個解決方案。 就在這里: 在Linux中檢測IP地址的更改

我喜歡這段代碼,這很容易,您只需要根據需要進行具有頻率的cron作業(我做了一些更改):

#!/bin/bash
OLD_IP=`cat ip.txt`
NEW_IP=`/sbin/ifconfig  | awk -F "[: ]+'{ print $4}'`
if [ $NEW_IP != OLD_IP ]; then
    YOU_COMMAND <commands> 
    echo $NEW_IP > ip.txt
fi
exit 0

因為您使用Systemd,所以您可能已經使用systemd-networked來管理設備,而不是依賴於第三方代碼。

您可以使用結構化日志輸出來獲取當前BOOD_ID的最后2個ADDRESS字段。(不幸的是, systemd- networkd中沒有用於地址更改的通知機制):

→ sudo journalctl -F ADDRESS -u systemd-networkd -n 2
192.168.178.29

因此,如果只有一行輸出,則沒有地址更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM