参考 https://zhuanlan.zhihu.com/p/666676538
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
#!/bin/bash
# 判断系统发行版
if [ -f /etc/redhat-release ]; then
DISTRO="centos"
elif cat /etc/issue | grep -q -E "Debian"; then
DISTRO="debian"
elif cat /etc/issue | grep -q -E "Ubuntu"; then
DISTRO="ubuntu"
elif cat /etc/issue | grep -q -E "Proxmox"; then
DISTRO="debian"
else
echo "无法识别发行版,请检查!"
exit 1
fi
# 安装 ethtool
case "$DISTRO" in
centos)
yum -y install ethtool net-tools
;;
debian|ubuntu)
apt-get update
apt-get -y install ethtool net-tools
;;
*)
echo "不支持的发行版: $DISTRO"
exit 1
;;
esac
# 获取网络设备名并编号
echo "检测到以下网络设备:"
ip link show | awk -F ': ' '/^[0-9]+:/{print $1 ": " $2}'
# 提示用户选择网络设备
read -p "请输入要配置的网络设备编号: " CHOICE
# 获取用户选择的设备名
DEVICE=$(ip link show | awk -F ': ' '/^[0-9]+:/{print $2}' | sed -n "${CHOICE}p")
# 确认用户选择
read -p "您选择的设备是: $DEVICE,是否确认?(y/n): " CONFIRM
if [[ "$CONFIRM" != "y" ]]; then
echo "操作已取消。"
exit 1
fi
# 生成服务文件
cat >/etc/systemd/system/wol.service<<EOF
[Unit]
Description=Configure Wake On LAN
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
ExecStart=/sbin/ethtool -s $DEVICE wol g
[Install]
WantedBy=basic.target
EOF
# 启用服务
sudo systemctl enable wol.service
sudo systemctl start wol.service
echo "WOL配置完成,请关闭计算机后测试启用情况"
|
完成后输入:wq保存退出