crontab 莫名报错

如下crontab命令
30 8-23/1 * * * /bin/ping -c 4 www.baidu.com >> /var/ftp/$(date "+%Y-%m-%d").log

作用即在8点30分到23点30分,每隔一小时,就ping4次www.baidu.com,并把输出内容追加到/var/ftp目录下的,年-月-日.log文件中。

但是发现,此命令总是报错,发送到邮箱的报错日志如下

/bin/sh: -c: line 0: unexpected EOF while looking for matching `"’
/bin/sh: -c: line 1: syntax error: unexpected end of file

应该是符号问题,所以我把
/bin/ping -c 4 www.baidu.com >> /var/ftp/$(date "+%Y-%m-%d").log
命令直接复制在控制台运行,发现能正常运行,这就奇怪了。

最终终于找到bug,凶手就是%
在crontab中,%是关键字,普通使用时,要用\进行转义,所以正确的写法如下
30 8-23/1 * * * /bin/ping -c 4 www.baidu.com >> /var/ftp/$(date "+\%Y-\%m-\%d").log

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值