运行cron作业时遇到问题

运行cron作业时遇到问题,cron,crontab,Cron,Crontab,我试图让cron作业每20分钟执行一次,该作业将检查以确保目录未关闭,并将时间戳输出到文本文件(如果已关闭)。cron任务是 */20 * * * * if [ -d PATH_TO_FOLDER ] && [ -s "$(ls -A PATH_TO_FOLDER)" ]; then :; else timestamp=$( date +%T ) && destdir=PATH_TO_TEXT_FILE && echo "$timestamp" &

我试图让cron作业每20分钟执行一次,该作业将检查以确保目录未关闭,并将时间戳输出到文本文件(如果已关闭)。cron任务是

*/20 * * * * if [ -d PATH_TO_FOLDER ] && [ -s "$(ls -A PATH_TO_FOLDER)" ]; then :; else timestamp=$( date +%T ) && destdir=PATH_TO_TEXT_FILE && echo "$timestamp" >> "$destdir"; fi
在命令窗口中键入时,这将非常有效,但每当我尝试将其作为cron作业运行时,都会出现以下错误:

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

我想不出来。谢谢你的帮助

%字符被cron解释为换行符,您需要对其进行转义——请参见
PATH\u to_FOLDER
PATH\u to_TEXT\u FILE
?它们是特定的路径/文件,还是作为shell变量实现的?它们是特定的目录和文件名。它们是从根开始的绝对的还是相对的?绝对的,它们都是从/开始的。我不确定的是
cron
是否喜欢使用内置的shell结构(
如果
然后
,等等)直接在线。作为测试,您可以获取您在那里拥有的内容,将其放入shell脚本文件,然后从
cron
运行shell脚本文件,以查看其是否有效。