使用 curl 创建 crontab 脚本

使用 curl 创建 crontab 脚本

尝试设置一个 cronjob 来与 curl 一起使用。想要更新 noip.com 上的 IP。下面的命令从 noip.com 获取 IP,但不使用我的服务器 IP 进行更新。我的意思是:当 IP 没有更新时,我会得到旧的 IP:

curl -X GET 'https://dynupdate.no-ip.com/nic/update' --header "Authorization: Basic $(base64 <<< $xxxxxxx:$xxxxxx)" -d "hostname=$xxxxx.ddns.net"

下面的命令会产生错误sh: GET: command not found

ExecStart=/usr/bin/curl-X GET 'https://dynupdate.no-ip.com/nic/update' --header "Authorization: Basic <$xxxxx:$xxxxx>" -d 'hostname=<hostname>.xxxxxx.ddns.net'

需要适当脚本的帮助

答案1

在现代 Linux 系统上,您不想使用crontab,而是使用 systemd 计时器。

/etc/systemd/system/updateip.service创建包含以下内容的文件:

[Unit]
Description=Update IP

[Service]
Type=oneshot
ExecStart=/usr/bin/curl -X GET 'https://dynupdate.no-ip.com/nic/update' --header "Authorization: Basic <$xxxxx:$xxxxx>" -d 'hostname=<hostname>.xxxxxx.ddns.net'

现在添加一个/etc/systemd/system/updateip.timer具有以下内容的计时器,每 10 分钟运行一次:

[Unit]
Description=Update IP every 10 minutes

[Timer]
OnCalendar=*:0/10

通过运行启用计时器systemctl start updateip.timer

相关内容