ubuntu18及其以上配置静态ip的shell脚本

 # 获取yaml文件中按照优先级的第一个
 config_file=$(ls -t /etc/netplan/*.yaml | head -n1)
 #判断是否为空
if [ -z "$config_file" ]; then
	config_file="/etc/netplan/00-installer-config.yaml"
    echo "不存在该文件"
else
 	echo "存在该文件"
	 cp "$config_file" "$config_file.bak"
fi
# $1 命令行输入的第一个参数 $2,$3,$4 分别是2,3,4
interface=$1 # Change this to match your system
    # Set the desired static IP address, netmask, gateway, and DNS
static_ip=$2
gateway=$3
    dns=$4
echo "$interface $static_ip $gateway  $dns " 
 echo "$config_file"
    # Create a new netplan configuration file
 cat <<EOL > "$config_file"
network:
  version: 2
  renderer: networkd
  ethernets:
    $interface:
      dhcp4: no
      addresses: [$static_ip/24]
      gateway4: $gateway
      nameservers:
        addresses: [$dns]
EOL
# 尝试应用新的配置
sudo netplan try
# 检查 netplan try 的结果 $?获取上一条命令的执行结果
if [ $? -eq 0 ]; then
    echo "修改成功开始应用"
    # 应用更改
    sudo netplan apply
else
    echo "网络配置失败,恢复之前的内容"
    # 恢复之前的配置文件
    #删除刚刚生成的文件
    sudo rm  "$config_file"
    #将备份的文件重新恢复
    mv "$config_file".bak "$config_file"
    #这行有没有影响不大
    sudo netplan apply
fi

最后运行

sudo bash xxx.sh 第一个参数 第二 .... ....
  • 12
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值