cron和iptables的一个坑

cron和iptables的一个坑, 最近在搞udp2raw发现这个小坑,因为要用到动态域名,GitHub – wangyu上的issues上有人提及这个动态域名问题,但回复是不支持的,所以我就想出了用脚本解决,反正思路就是,cron定时每10分钟用ping获取域名ip,然后调用udp2raw命令行。

本以为很简单的,到执行时,发觉udp2raw执行不了,看写进后日志,发觉是iptables执行不了, iptables command not found , 应该执行命令详细路径,但问题iptables是udp2raw调用的,根本无法加路径

只能上网查,百度上根本没人解决,于是只能google去,啃了一堆英文网站(用翻译),原来就是cron里,path路径里根本没有iptables所在/sbin,写了个简单脚本( echo $PATH ), 放到cron里验证,确实是这样.

于是脚本最前加上以下这段, 为了判断执行环境的path是否存在iptables的执行路径

pathx=echo $PATH|grep "/sbin"
if [ “” = “$pathx” ]; then
   export PATH=$PATH:/sbin
   echo “no sbin”
fi

这样iptables调用就正常了,于是udp2raw也正常了,还有就是定时操作里,wireguard的执行如果要调用iptables,也是这样解决了。

还有就是加上udp2raw确认会比原来慢点,而且耗cpu。

关于无聊人

一个无聊人而已
此条目发表在一般生活分类目录。将固定链接加入收藏夹。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注