如何在freebsd上安装duck dns脚本

如何在freebsd上安装duck dns脚本,dns,cron,freebsd,Dns,Cron,Freebsd,嗨,我想在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.

嗨,我想在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设置duckdns我应该使用这两个脚本中的哪一个?如何修复它以使其正常工作?

我已经在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更新失败
写入系统日志。

我投票结束这个问题,因为有关FreeBSD操作系统及其实用程序的问题在这里是离题的,应该在上询问。请删除此问题并在那里询问。“Linux BSD”在术语上是矛盾的;如果您的系统是Linux,那么它就不能是BSD,反之亦然(尽管Debian允许您在其他基于Linux的系统上实验运行BSD内核,这是一个非常外围的情况)绝对是一个语法错误。我猜原始脚本实际上在等号之前包含了一个不带引号的变量,这也是一个错误,但名义上在语法上是有效的。