当前位置:  开发笔记 > 编程语言 > 正文

对cron执行的命令有特殊限制吗?

如何解决《对cron执行的命令有特殊限制吗?》经验,为你挑选了1个好方法。

我有一个crontab看起来像

0 0 * * * pg_dump DB_NAME > /path/to/dumps/`date +%Y%m%d`.dmp

我手动运行时工作正常,但cron运行时却没有.挖掘完日志后,我明白了

Dec 12 00:00:01 localhost crond[17638]: (postgres) CMD (pg_dump DB_NAME > /path/to/dumps/`date +)

它看起来像百分号的问题,但man页面甚至根本不包含百分比字符,所以我认为它们没问题.



1> Robert Gambl..:

你必须用反斜杠来逃避百分号:

0 0 * * * pg_dump DB_NAME > /path/to/dumps/`date +\%Y\%m\%d`.dmp

来自man 5 crontab:

"第六个"字段(行的其余部分)指定要运行的命令.该行的整个命令部分,直到换行符或%字符,将由/ bin/sh或crontab文件的SHELL变量中指定的shell执行.除非使用反斜杠(\)进行转义,否则命令中的百分号(%)将更改为换行符,并且第一个%之后的所有数据将作为标准输入发送到命令.无法将单个命令行拆分为多行,例如shell的尾部"\".

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有