如何在freebsd上安装Duck dns脚本

问题描述

嗨,我想在freebsd上安装duckdns,但是遇到了麻烦。一方面,duckdns具有三个可能适用于我的情况的脚本:linux cron,linux bsd cron和linux netcat cron。作为一个新的Linux用户,我不确定哪一个适用于我,但是我假定netcat版本不适用,因为curl在freebsd上可用。

无论如何,我同时使用linux cron和linux bsd cron的两个脚本都出错了

Linux cron脚本:

echo url="https://www.duckdns.org/update?domains=exampledomain&token=a7c4d0ad-114e-40ef-ba1d-d217904a50f2&ip=" | curl -k -o ~/duckdns/duck.log -K -

我在linux cron脚本中遇到的错误是curl状态,未指定url

关于linux bsd脚本:

#!/bin/sh

DOMAINS="example"
TOKEN="feedface-dead-c0ed-babe-c0ffeec0de99"
curl_out=$( echo
url="https://www.duckdns.org/update?domains=exampledomain&token=a7c4d0ad-114e-40ef-ba1d-d217904a50f2"
| /usr/local/bin/curl --insecure --silent --config - )

if [  == "OK" ]; then
    logger -p daemon.info "duckdns update ok"
else
    logger -p daemon.err "duckdns update failed"
fi

我得到了错误:

./duck.sh: 7: Syntax error: "|" unexpected
./duck.sh: 5: Syntax error: Error in command substitution

那么我该如何用freebsd设置d​​uckdns,我要使用两个脚本中的哪一个以及如何对其进行修复以使它们起作用?

解决方法

我已经在Shell上的FreeBSD上尝试了这些脚本,并且Linux cron脚本可以正确运行,并将“ KO”写入〜/ duckdns / duck.log。请注意,~在crontab中可能无法使用,请改用完整路径来记录文件。

该脚本有些混乱。修复它。

#!/bin/sh

DOMAINS="example"
TOKEN="feedface-dead-c0ed-babe-c0ffeec0de99"
curl_out=$(echo url="https://www.duckdns.org/updatedomains=exampledomain&token=a7c4d0ad-114e-40ef-ba1d-d217904a50f2" |
    /usr/local/bin/curl --insecure --silent --config - )
    
if [ "$curl_out" == "OK" ] 
then
    logger -p daemon.info "duckdns update ok"
else
    logger -p daemon.err "duckdns update failed"
fi

还运行并将duckdns update failed写入系统日志。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...