ディレクトリに約 500 個の奇妙なデータ ファイルがあります。コマンドを使用してこれらのファイルを処理しています。問題は、もちろん、どのユーティリティもそうであるように、それぞれを順番に取得することです。当面、私のプロセスが行うことは、約 500 のプロセスを生成し、それらを 10 のバッチでずらして、それぞれに待機が散在するようにすることです。ちょうどこのような 。1 ファイル == このデザインごとに 1 プロセス。
command1 <parameters> > log 2&>1&
command2 <parameters> > log 2&>1&
command3 <parameters> > log 2&>1&
command4 <parameters> > log 2&>1& /# ....till 10
wait
command11 <parameters> > log 2&>1&
command1 <parameters> > log 2&>1&
command1 <parameters> > log 2&>1& /# ...till 20
wait
command1 <parameters> > log 2&>1&
そのため、システムを同時に叩くことはありません。このコマンドは、実際には別の一連のシェルと C コードであり、データ ファイルを解析し、Oracle への接続を伴ういくつかのチェックを行います。コマンドを実行するたびに新しい DB 接続を開かないように、これを再設計したいと思います。100 個のファイルがあるとします。100 個の個別の接続ではなく、10 個の DB 接続のみを開きたいと考えています。私がやりたい方法は、まず私が持っているファイルの数を数えることです。それらを 10 で割ります。各分割は 10 個のファイルの「バッチ」です。したがって、100 個ではなく 150 個のファイルがあり、プロセスは自動的に 15 個のディレクトリを作成する必要があります。各ディレクトリはその中に10個のファイルを移動する必要があり、実行できます
command1 <parameters> Directorypath > log 2&>1&
/# command can pick up all files in a directory or a single file
/# ct till command 10 ...
....
command10 <parameters> Directorypath > log 2&>1&
10ファイル== この設計による1プロセス。
これをどのように行うことができるかについての提案は、vis コマンドで確認できます。タイ