使用curl创建crontab脚本


0

试图设置一个cronjob与curl一起使用。想要在noip.com上更新IP。以下命令从noip.com获取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'

需要帮助以获得适当的脚本


为什么第二个命令ExecStart=在它前面?
grawity

其实我已经从一个论坛复制:)不知道它的准确性
ddinc

Answers:


0

在现代Linux系统上,您不想使用系统crontab定时器。

/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


我做了但是在noip上的IP没有更新。当运行ExecStart = / usr / bin / curl -X GET'dynupdate.no-ip.com ................我得到:没有找到X命令。打开这个帖子的原因是有一个certişficate错误,无法通过noip支持再现。1drv.ms/u/s!Am4yMVdZjYGSgYwp5tnXweWVLR5JLQ 今天我没有看到这个错误,但Ithere没有IP更新:1drv.ms/u/s!Am4yMVdZjYGSgYwyHUu
aSnX5eRI2w

解决.............
ddinc
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.