use*_*822 10 bash cron curl crontab
我有一个cron问题curl:
curl -w "%{time_total}\n" -o /dev/null -s http://myurl.com >> ~/log
Run Code Online (Sandbox Code Playgroud)
效果很好,并在日志文件中添加一行与total_time.
但与cron相同的行没有做任何事情.
这不是一个路径问题,因为curl http://myurl.com >> ~/log工作.
fed*_*qui 13
%是一个特殊的角色crontab.来自man 5 crontab:
"第六"字段(行的其余部分)指定要运行的命令.该行的整个命令部分,直到换行符或"%"字符,将由/ bin/sh或由cronfile的SHELL变量中指定的shell执行. 除非使用反斜杠(\)进行转义,否则命令中的"%"字符将更改为换行符,并且第一个%之后的所有数据将作为标准输入发送到命令.
所以你需要逃避%角色:
curl -w "%{time_total}\n" -o /dev/null -s http://myurl.com >> ~/log
Run Code Online (Sandbox Code Playgroud)
至
curl -w "\%{time_total}\n" -o /dev/null -s http://myurl.com >> ~/log
^
Run Code Online (Sandbox Code Playgroud)