You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

终端可运行但Crontab中被截断的命令问题排查求助

问题原因及解决方案

核心问题:%字符未转义

crontab 中%是特殊字符,会被解析为换行符,同时将%之后的内容当作命令的标准输入。你的命令里的${0%.pcap,SDPerr}.pcap包含未转义的%,这直接导致crontab截断了命令,也就是日志里显示命令到${0就终止的原因。

次要问题:可能的crontab格式错误

  • 如果是通过crontab -e编辑的用户个人crontab,行内的user字段完全多余——个人crontab不需要指定执行用户,只有/etc/crontab这类系统级crontab才需要在时间字段后添加用户。
  • 如果是系统级crontab,user字段是合法的,但仍需处理%的转义问题。

修正后的命令

系统级crontab(/etc/crontab)

*/30 * * * *    user     find /home/user/recordings -name '*.pcap,SDPerr' -exec sh -c 'mv "$0" "${0\%.pcap,SDPerr}.pcap"' {} \;

用户个人crontab(crontab -e)

*/30 * * * *    find /home/user/recordings -name '*.pcap,SDPerr' -exec sh -c 'mv "$0" "${0\%.pcap,SDPerr}.pcap"' {} \;

注意:直接使用双引号"即可,不要用HTML转义后的",crontab支持双引号,只要正确转义特殊字符。

内容的提问来源于stack exchange,提问作者Francois Rousseau

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 11:25:56