Я использую API-интерфейс Cloudflare для обновления DDNS на моем Raspberry PI с помощью crontab.Скрипт оболочки прекрасно работает в Debian, но не работает в CentOS / Fedora.Пока работает в терминале, все работает.
Я проверил, что ip addr не может получить данные, но я не смог их решить.И я попробовал, что я могу вместо этого IP-адрес с именем хоста -I, то это работает хорошо.
Но мне интересно, почему ip не может работать в сценарии оболочки .sh / bash?
Ferora 28 сервер Raspberry.Я пробовал много разрешений я могу гуглить, ни один не работает.
#!/bin/bash
#this works
ip=$(hostname -I | awk '{print $NF;exit}')
echo $ip>>/usr/local/bin/cloudflare.log
#this fail
ips=$(ip route get 1:: | awk '{print $(NF-4);exit}')
echo $ips>>/usr/local/bin/cloudflare.log
# crontab -l
#automatic update ddns per 1 min
* */1 * * * /usr/local/bin/cf-ddns.sh >/dev/null 2>&1
cat cloudflare.log
xx.xx.xxx.xx
<Blank_None>