Ubuntu环境下,写一个用ifconfig固定IP的脚本,并使用Systemed的service去执行这个脚本
时间: 2024-09-19 12:04:07 浏览: 43
在Ubuntu环境下,你可以创建一个shell脚本来设置静态IP地址,并将其作为systemd服务定期运行。首先,你需要编写一个简单的bash脚本,例如`set_static_ip.sh`:
```bash
#!/bin/bash
# 静态IP配置
INTERFACE="eth0" # 请替换为你想设置IP的网络接口名
IP="192.168.1.100"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.1"
# 检查接口是否存在
if ip addr show dev $INTERFACE &> /dev/null; then
echo "Setting IP for interface $INTERFACE"
# 使用dhclient命令获取DHCP还是设置静态IP
ifconfig $INTERFACE inet ${IP}/${NETMASK} netmask ${NETMASK}
route add default gw ${GATEWAY} dev $INTERFACE
else
echo "Interface $INTERFACE not found."
fi
```
为了将此脚本注册为systemd服务,你需要编辑`/etc/systemd/system`目录下的新服务文件,比如`my-static-ip.service`:
```ini
[Unit]
Description=Set Static IP for Interface
After=docker.socket
[Service]
ExecStart=/usr/bin/bash /path/to/set_static_ip.sh
Restart=always
User=root
RestartSec=10s
[Install]
WantedBy=multi-user.target
```
记得替换`/path/to/set_static_ip.sh`为实际脚本路径。
完成上述步骤后,按照以下顺序操作:
1. 创建服务文件并赋予执行权限:
```bash
sudo nano /etc/systemd/system/my-static-ip.service
chmod +x /path/to/set_static_ip.sh
```
2. 启动并启用服务:
```bash
sudo systemctl daemon-reload
sudo systemctl start my-static-ip.service
sudo systemctl enable my-static-ip.service
```
现在,每次系统启动时,你的脚本就会自动执行,设置指定的静态IP。如果你有任何疑问,可以运行`sudo journalctl -u my-static-ip.service`查看日志。
阅读全文