linux_shell_拆分文件_多进程脚本

时间:2021-02-20 16:42:14

【需求场景】:一个10000w行的文件处理  ,多进程处理  比如启动100个进程同时处理。

【方法】:拆分文件(split) ,制作shell脚本  执行后台进程 

【demo】:

假设处理程序为  test.php , 需要接收参数   处理数据文件路径 加 传入参数      eg:part_01 1        【第二个参数用来辅助内部调用不同接口处理】

 【方法】:

demo.data  1000w行

拆分   split -l 10000 demo.data part_

执行结果 100个文件

处理脚本 ,test.php

制作shell

#!/bin/sh
dir='mulu/part_*'
i=0
for file in `ls $dir`
do
        let "i++"
        let "j=i%2"
        nohup php test.php  $file $j > $file.res &
done

【批量kill】

ps -ef|grep LOCAL=NO|grep -v grep|cut -c 9-15|xargs kill -9 

local=no 进程关键字