【发布时间】:2021-01-02 16:11:28
【问题描述】:
您好,我想在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 我使用两个脚本中的哪一个以及如何修复它以便它们工作?
【问题讨论】:
-
我投票结束这个问题,因为关于 FreeBSD 操作系统及其实用程序的问题在这里是题外话,应该在unix.stackexchange.com 上提问,请删除这个并在那里提问。 What topics can I ask about here?
-
“Linux BSD”用词自相矛盾;如果您的系统是 Linux,则不能是 BSD,反之亦然(尽管 Debian 曾经允许您在其他基于 Linux 的系统上实验性地运行 BSD 内核)。
-
if [ == "OK" ];绝对是语法错误。我猜原始脚本实际上在等号之前包含了一个未加引号的变量,这也是一个错误,但名义上在语法上是有效的。