Daemon

是否有一個工具/守護程序可以在後台自動填充 /etc/ethers 以便在需要時正確喚醒 lan hostname:mac 數據庫?

  • January 8, 2016

是否有可用的工具/守護程序在後台使用正確的主機名:mac 對自動填充 /etc/ethers,以便在需要時擁有最新的數據庫,例如在區域網路上喚醒 (wol)?也許某些東西不會“掃描”網路,但會隨意轉儲 arp 記憶體或其他東西?

謝謝

可以處理大部分情況的工具是arpwatch. 預設情況下(至少在 Debian 上)是它寫入/var/lib/arpwatch/arp.dat. 每次arpwatch停止時都會刷新和更新此文件。

該文件包含以下形式的條目:

52:54:00:aa:bb:cc  192.168.1.2  1452252063  somehostname  eth0

/etc/ethers文件只需要 MAC 地址和 IP 地址或可解析的主機名:

52:54:00:aa:bb:cc  192.168.1.2

然後保持/etc/ethers更新並與一個小腳本同步非常簡單,每天從以下位置執行crontab

#!/bin/bash

# Flush arp.dat
service arpwatch restart

# Save a copy
test -f /etc/ethers || touch /etc/ethers
cp -fp /etc/ethers /etc/ethers.old

# Check to see if anything new has arrived. If so rebuild the file
(
   echo '# This file is updated automatically from /var/lib/arpwatch/arp.dat'
   echo '# Take care when editing'
   echo '#'
   (
       awk '{print $1,$2}' /var/lib/arpwatch/arp.dat
       grep -v '^#' /etc/ethers.old
   ) |
       sort -u
) >/etc/ethers.tmp

# Update ethers with the new file
cmp -s /etc/ethers.tmp /etc/ethers || cat /etc/ethers.tmp >/etc/ethers
rm -f /etc/ethers.tmp

# All done
exit 0

引用自:https://unix.stackexchange.com/questions/253966