我有一个名为 load_data.sh
的 shell 脚本,它在名为 shell.sh
的 shell 脚本中运行
shell.sh
的内容
xargs --max-procs 10 -n 1 sh load_data.sh < tables.txt
此 shell 脚本同时在 tables.txt
中的 10 个表上运行
现在我想收集load_data.sh
的完整日志所以我做了
xargs --max-procs 10 -n 1 sh load_data.sh < tables.txt |& tee-a logs.txt
但是我混合了所有日志。我想要的是日志应该是 1st
表日志,然后是 2nd
表日志,然后是 3rd
表日志等等...
有没有可能实现。如果可以,我该如何实现?
最佳答案
您可以通过为每次运行脚本创建一个单独的日志文件来解决您的问题。要按顺序创建日志文件,您可以使用“nl”实用程序对每行输入进行编号。
nl -n rz tables.txt | xargs -n 2 --max-procs 10 sh -c './load_data.sh "$1" > log-$0'
将按顺序生成日志文件
log-001
log-002
log-003
..
要将其转换回一个文件,您只需使用“cat”即可
cat log* > result
关于linux - 收集在另一个 shell 脚本中运行的 shell 脚本的标准输出日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43174606/