我正在尝试在 crontab 中的变量中使用变量:
AUTH=user:password
BASE_URL=http://...
COMMAND_OLDB=curl -u $AUTH $BASE_URL/openligadb >> /var/log/cron.openligadb.log
Run Code Online (Sandbox Code Playgroud)
但刚刚收到一封邮件/var/mail/root:
X-Cron-Env: <BASE_URL=http://...>
X-Cron-Env: <AUTH=user:password>
X-Cron-Env: <COMMAND_OLDB=curl -u $AUTH $BASE_URL/openligadb >> /var/log/cron.openligadb.log>
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
Message-Id: <...>
Date: Mon, 9 Feb 2015 20:10:01 +0100 (CET)
Enter host password for user '$AUTH':
curl: (6) Couldn't resolve host '$BASE_URL'
curl: (6) Couldn't resolve host '>>'
curl: (3) <url> malformed
Run Code Online (Sandbox Code Playgroud)
/var/log/cron.openligadb.log本身是空的。
$AUTH以及$BASE_URL不会得到解决$COMMAND_OLDB。为什么以及如何解决?
根据 crontab 手册页 ( man 5 crontab)
所以你可以定义AUTH,BASE_URL但不能定义COMMAND_OLDB它基于其他变量,因为这些变量不会被替换。只需将命令放在 crontab 行中,就像这样(当然使用你的时间间隔)
*/10 * * * * curl -u $AUTH $BASE_URL/openligadb >> /var/log/cron.openligadb.log
Run Code Online (Sandbox Code Playgroud)
但不是这样的
*/10 * * * $COMMAND_OLDB
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4064 次 |
| 最近记录: |