[英]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.