【发布时间】:2017-06-20 11:16:00
【问题描述】:
我有一个 shell 脚本说data.sh。为了执行这个脚本,我将传递一个参数,比如 Table_1。
我有一个测试文件,我将得到一个不同脚本的结果。
现在在一个测试文件中,我有 1000 多个参数要传递给脚本。
文件如下所示:
Table_1
Table_2
Table_3
Table_4
and..so..on
现在我想执行脚本以并行运行。
我正在使用 cron 作业来执行此操作。
首先我使用 Linux 中的 split 命令将测试文件分成 20 个部分。
split -l $(($(wc -l < test )/20 + 1)) test
然后我将测试文件分为 20 个部分,例如 xaa、xab、xac 等。
然后运行 cron 作业:
* * * * * while IFS=',' read a;do /home/XXXX/data.sh $a;done < /home/xxxx/xaa
* * * * * while IFS=',' read a;do /home/XXXX/data.sh $a;done < /home/xxxx/xab
and so on.
因为这涉及很多手动过程。我想动态地做到这一点。
这是我想要实现的目标:
1) 一旦我得到测试文件,我希望它自动拆分为 20 个文件并存储在特定位置。
2) 然后我想通过将 20 个文件作为参数传递给脚本来安排每天早上 5 点的 cron 作业。
实现这一点的最佳方法是什么?任何带有解释的答案将不胜感激。
【问题讨论】: