# 一键批量修改ubuntu矿机挖矿配置

工作需要，有一些内网的ubuntu系统的矿机需要修改下端口以及worker名，只有一台机器有外网权限，ssh连上这台外网机后执行一个脚本一键批量修改。于是花了点时间写了这个脚本，有需要的自取。

```plaintext
#!/bin/bash

# 修改两个IP段的范围
ip_ranges=("192.168.0" "10.0.0")

modify_server() {
  ip=$1
  ssh_script=$(printf '%s\n' \
    "# 修改 /root/xmrig/rtm.sh 文件" \
    "sed -i 's/stratum+tcp:\/\/192.168.0.1:3333/stratum+tcp:\/\/192.168.0.1:1333/g' /root/xmrig/rtm.sh" \
    "sed -i 's/\(.钱包地址\.\).*\(\s*-p x\)/\1rtm-solo \2/g' /root/xmrig/rtm.sh" \
    "# 重启服务器并创建screen会话" \
    "reboot" \
    "screen -dmS rtm" \
    "# 自动启动 /root/xmrig/rtm.sh 脚本" \
    "screen -S rtm -X stuff '/root/xmrig/rtm.sh\n'" \
  )
  timeout 5 ssh -o 'StrictHostKeyChecking=no' -o 'ConnectTimeout=3' "root@$ip" "echo \"$ssh_script\" | bash"
}

for range in "${ip_ranges[@]}"; do
  for i in {1..254}; do
    # 拼接内网IP地址
    ip="$range.$i"

    # 在后台运行SSH连接尝试
    modify_server "$ip" &
  done
done

# 等待所有后台任务完成
wait
```

保存文件后给予+x权限，然后执行即可。

另外特别感谢ChatGPT 4的协助，效率高了很多，拖了一个多月的事情解决了。
