【问题标题】:Capture Cron Job parameters in a unix shell script在 unix shell 脚本中捕获 Cron 作业参数
【发布时间】:2016-02-17 07:11:11
【问题描述】:

我的项目有一个特定的要求。

要求是是否有如下所示的带有一些参数的 cron 作业。

当我从 cron 作业运行此脚本时,传递给 cron 作业的这些参数应被调用的 shell 脚本捕获并存储在某处(如 cassandra 表)以用于审计目的。

15 13 * * * bash /apps/LoyaltyJ4U/integration/hadoop_script/emju/script/job_single_step.sh -t=household_shopped_store -c=com.safeway.app.emju.mapreduce.job.OrcCassandraObjectMigrationJob -r=4

由于我是脚本新手,我不知道该怎么做。

任何想法都会有所帮助

谢谢!

更新

我已使用以下命令捕获脚本名称以及传递给它的参数,并且工作正常。

CRON_ARG="${0##*/} $@"

【问题讨论】:

  • 为什么不把这个参数放在job_single_step.sh里面呢?

标签: shell unix cron


【解决方案1】:

您可以使用捕获参数

echo "$0 called with params $*" > /tmp/priyanka.tmp

【讨论】:

  • 如果服务器在重启时清除了/tmp,那对审计就不是很好了。
  • @Mark 正确,我只是在展示如何获取他想在“某处(如 cassandra 表)”写入的信息。它还会覆盖以前的文件。我没有使用>> $HOME/mylog,因为他可能开始使用时间表* * * * * 进行测试而忘记删除条目。
  • 我已经尝试过 CRON_ARG="${0##*/} $@" 并且这是有效的。所以我能够输出脚本名称以及传递给它的参数。
猜你喜欢
  • 2022-01-09
  • 2016-11-07
  • 1970-01-01
  • 2021-11-16
  • 2011-12-12
  • 1970-01-01
  • 1970-01-01
  • 2016-03-19
  • 2014-04-24
相关资源
最近更新 更多