Bash
使用 crontab 執行時,Curl 不起作用
這是我的捲曲腳本
#!/bin/bash PING_STATUS="$(netcat -vz mc.bella.wtf 25565 2>&1)" curl -H "Content-Type: application/json" -X POST -d '{"embeds": [{"title": "Server Status:","color": 16027903,"description": "'"$PING_STATUS"'"}]}' "$WEBHOOK"
這是我執行 crontab 時得到的:
mc@ubuntu:~$ crontab -l * * * * * /home/mc/server/ping >/tmp/mycommand.log 2>&1 mc@ubuntu:~$ cat /tmp/mycommand.log curl: (3) <url> malformed
為什麼我的 url 在單獨執行腳本時工作正常時格式錯誤?
原因是您的環境變數
WEBHOOK
無法辨識。解決方案 1
在您的
/etc/environment
添加中:WEBHOOK="http://example.org"
在你的 crontab 中:
*/1 * * * * source /etc/environment; /home/mc/server/ping >/tmp/mycommand.log 2>&1
解決方案 2
WEBHOOK
在您的 curl 腳本中指定:#!/bin/bash WEBHOOK="http://example.org" PING_STATUS="$(netcat -vz mc.bella.wtf 25565 2>&1)" ...
解決方案 3
捲曲腳本:
#!/bin/bash source $HOME/.profile PING_STATUS="$(netcat -vz mc.bella.wtf 25565 2>&1)" ...
$HOME/.profile
WEBHOOK="http://example.org"