Linux下使用Cronjob删除旧目录失败问题求助
问题解决:Cron中find命令-exec参数报错的修复
错误原因
终端中直接执行find命令时,当前shell会正确解析;作为-exec的结束标记,但在Cron环境或shell脚本中,未转义的;会被shell识别为命令分隔符,导致find命令被提前截断,-exec参数缺少必要的结束标记,因此抛出find: missing argument to '-exec'错误。
修复后的命令
将find命令中的分号转义,修改为以下两种形式之一:
- 用反斜杠转义分号:
find /home/TEST_*/ -maxdepth 0 -mtime +6 -exec rm -r {} \; - 用单引号包裹分号:
find /home/TEST_*/ -maxdepth 0 -mtime +6 -exec rm -r {} ';'
验证建议
修改脚本cleanup_regress_SIM.sh中的find命令后,可以手动执行脚本sh /home/cronjob/cleanup_regress_SIM.sh测试是否正常运行,确认无误后再保留原有Cron配置即可。
内容的提问来源于stack exchange,提问作者Basil
相关产品推荐
相关产品推荐

