自动更换SRS——Candidate

项目场景:

动态IP如何使用SRS


问题描述

每天都需要手动更换candidate

解决方案:

利用脚本获取IP自动更换
下面展示一些 内联代码片

一、修改脚本文件
#!/bin/bash

# SRS 配置文件路径
CONFIG_FILE="PATH/https.rtc.conf" #替换为真实路径

# 获取 uav.extremefei.cn 的 IP 地址
# 使用 dig 或 nslookup 获取域名的 IP 地址
CANDIDATE_IP=$(dig +short 域名)  #替换为真实域名

# 如果获取不到 IP,退出并记录错误
if [[ -z "$CANDIDATE_IP" ]]; then
    echo "无法获取 uav.extremefei.cn 的 IP 地址,脚本终止。" | tee -a /path/to/log/update_srs_error.log
    exit 1
fi

# 打印获取到的 IP
echo "获取到的 IP 地址: $CANDIDATE_IP"

# 使用 sed 替换 https.rtc.conf 中的 candidate 值
# 假设配置文件中的 candidate 是类似这样:candidate 112.232.111.60 
# 使用正则表达式替换 candidate 的 IP 地址
sed -i "s|candidate\s*[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}|candidate $CANDIDATE_IP|g" "$CONFIG_FILE"

# 检查 sed 命令是否成功
if [[ $? -ne 0 ]]; then
    echo "替换配置文件中的 IP 地址失败。" | tee -a /path/to/log/update_srs_error.log
    exit 1
fi

# 重启 SRS 服务,使新的配置生效
# 假设你使用 systemctl 管理 SRS 服务,如果不是,请根据你的服务管理方式修改此命令
systemctl restart srs-enable.service #更改为你自己的自启动文件

# 或者,如果你的 SRS 是通过脚本管理的,可以用以下命令(具体路径和脚本请修改)
# /path/to/srs/stop.sh && /path/to/srs/start.sh

# 打印成功信息
echo "SRS 配置文件已更新,SRS 服务已重启。" | tee -a /path/to/log/update_srs_success.log

二、启动文件测试

我的文件名称:update_candidate.sh
赋予文件权限: chmod +x /home/tagw/update_candidate.sh
启动命令: bash /home/tagw/update_srs_candidate.sh

注意:有可能出现以下错误

/home/tagw/update_candidate.sh: line 2: $'\r': command not found
/home/tagw/update_candidate.sh: line 5: $'\r': command not found
/home/tagw/update_candidate.sh: line 9: $'\r': command not found

原因:脚本文件在 Windows 系统中编辑并保存时,末尾会有 \r(回车符)字符,导致 Linux 系统在执行脚本时出现问题。在 Linux 系统中,行结束符应该是 \n,而不是 \r\n

解决办法
1. 下载dos2unix工具:sudo apt-get install dos2unix
2. 执行: dos2unix /path/update_candidate.sh
3. 再次运行脚本
三、添加脚本定时器
 //编辑 root 用户的 crontab 配置文件
 1.sudo crontab -e
 //最底部添加定时每天5点执行
 2.0 5 * * * /home/update_candidate.sh >> /home/log/update_srs.log 2>&1  
 //查看cron 任务已被添加
 3.sudo crontab -l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猿小路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值