【问题标题】:bash script not doing as a cron, but manuallybash 脚本不作为 cron 执行,而是手动执行
【发布时间】:2021-01-01 20:57:20
【问题描述】:

手动执行时,脚本本身运行良好。它使 cron 作业失败

function ban_this {
while IFS= read -r line
do
printf $line >> /tmp/test.file
done < <(printf '%s\n' "$a") 
}

a=$(journalctl | grep "client @")
ban_this

【问题讨论】:

  • 你只是发布一个脚本,甚至没有指出哪个部分不正确,或者以什么方式。如果您已经怀疑 PATH 问题,为什么不先打印 PATH 以便检查?
  • @user1934428 是的,发布的原始脚本无关紧要。将在这里替换为这个。同样的问题。在此期间,我进行了一些实验。这看起来其实是问题:function ban_this { while IFS= read -r line do printf $line >> /tmp/test.file done
  • 不要把这些细节放在评论里,写在评论里。另外不要忘记解释它是如何失败的,以及如何手动调用它,以及如何从 cron 调用它。
  • @user1934428 示例现在可以完美运行,如果手动执行并且绝对没有,当由 cron 执行时。这是唯一的问题
  • absolutely nothing 到底是什么意思?是没有执行语句,还是执行了语句,只是没有得到任何输出?

标签: linux bash path cron


【解决方案1】:
function ban_this {
printf %s "$a" |
while IFS= read -r line; do
echo "$line"
done
}

【讨论】:

  • 虽然此代码 sn-p 可能是解决方案,但 including an explanation 确实有助于提高您的帖子质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
猜你喜欢
  • 2019-07-14
  • 2015-12-13
  • 1970-01-01
  • 2014-09-06
  • 1970-01-01
  • 2021-06-18
  • 1970-01-01
  • 1970-01-01
  • 2023-03-06
相关资源
最近更新 更多