首页 新闻 会员 周边

crontab命令不执行,报错

0
[待解决问题]

*/5 * * * * /usr/share/awstats/wwwroot/cgi-bin/awstats.pl -update -config=$(date '+%Y%m%d') 2>&1>/dev/null

crontab -e 里面就这条命令,在命令行可以执行。但是放在crontab里不执行了。然后有邮件报错。

请问:crontab里可以调用date命令执行的结果吗,如果可以请问语法怎么写?

From root@awstats.localdomain Wed Mar 14 11:00:01 2018
Return-Path: <root@awstats.localdomain>
X-Original-To: root
Delivered-To: root@awstats.localdomain
Received: by awstats.localdomain (Postfix, from userid 0)
id D5F0F409D660; Wed, 14 Mar 2018 11:00:01 +0800 (CST)
From: "(Cron Daemon)" <root@awstats.localdomain>
To: root@awstats.localdomain
Subject: Cron <root@awstats> /usr/share/awstats/wwwroot/cgi-bin/awstats.pl -update -config=$(date '+
Content-Type: text/plain; charset=UTF-8
Auto-Submitted: auto-generated
Precedence: bulk
X-Cron-Env: <XDG_SESSION_ID=589>
X-Cron-Env: <XDG_RUNTIME_DIR=/run/user/0>
X-Cron-Env: <LANG=zh_CN.UTF-8>
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>
Message-Id: <20180314030001.D5F0F409D660@awstats.localdomain>
Date: Wed, 14 Mar 2018 11:00:01 +0800 (CST)

/bin/sh: -c:行0: 寻找匹配的 `'' 是遇到了未预期的文件结束符
/bin/sh: -c:行1: 语法错误: 未预期的文件结尾

友谅的主页 友谅 | 初学一级 | 园豆:169
提问于:2018-03-14 11:23
< >
分享
所有回答(2)
0

问题找到了。crontab里面 %有特殊含义,代表换行,$(date '+\%Y\%m\%d')  要用\转义

友谅 | 园豆:169 (初学一级) | 2018-03-14 13:37

ok!mark一下,提醒自己。

支持(0) 反对(0) Shendu.CC | 园豆:2138 (老鸟四级) | 2018-03-14 15:07

@Shendu.cc: 哈哈,希望对你有用。

支持(0) 反对(0) 友谅 | 园豆:169 (初学一级) | 2018-03-14 15:08

@友谅: 我的$(date '+\%Y\%m\%d')都是放在shell脚本里,没有放在contrab里,这样没有报错,放到contrab里就报错了。

支持(0) 反对(0) Shendu.CC | 园豆:2138 (老鸟四级) | 2018-03-14 15:10

@Shendu.cc: 加上转义也报错了吗?  方便说下报什么错吗?

支持(0) 反对(0) 友谅 | 园豆:169 (初学一级) | 2018-03-14 15:12
0

不是我粘贴错了,我说的是$(date '+%Y%m%d')

Shendu.CC | 园豆:2138 (老鸟四级) | 2018-03-14 15:13

那对你有用就好,我早上也是碰倒这个问题。浪费2小时。。。

支持(0) 反对(0) 友谅 | 园豆:169 (初学一级) | 2018-03-14 15:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册