並列処理プログラム。xargsでもできるけどかなり高機能なので一度試してみた。http://www.gnu.org/software/parallel/
GNU Parallel作者が書いたParallel:The Command-Line Power Toolを読んだはちょっとわかりやすい
GNU Parallel作者が書いたParallel:The Command-Line Power Toolを読んだはちょっとわかりやすい
yumで管理する
# rootで cd /etc/yum.repos.d curl -L http://download.opensuse.org/repositories/home:/tange/CentOS_CentOS-5/home:tange.repo sed -i -e 's/^\(enabled\)=1/\1=0/' home\:tange.repo yum install --enablerepo=home_tange parallel
とにかくオプションが多いし、よくわからないので例をみるほうがよさそう
よく使いそうなのだけまとめておく。xargsになんとなくにてる
option | 意味 |
---|---|
-j, --jobs | いろいろ意味がありそうなので、詳細はmanをみること。-j+0(CPU コアの数まで可能な限りのジョブを実行)と-j1(forとかwhileと同じ)を覚えておけばよさそう。+, -をつける、つけないで意味がかわるようだ |
::: | 引数リスト |
:::: | 引数リストファイル |
-a, --arg-file | ::::と同じ |
{} | 引数を実行するコマンドで実行する文字列に置換される |
{.} | {}と同じだが拡張子が除外される |
{/} | {}と同じだがbasenameの結果 |
{//} | {}と同じだがdirnameの結果 |
{/.} | {.}と{/}の効果 |
{#} | job number |
{n} | こういうことがしたいとき→parallel echo {1} {2} {3} ::: 1 2 3 ::: 4 5 6 ::: 7 8 9 |
{n.} | {n}と{.} |
{n/} | {n}と{/} |
{n/} | {n}と{/.} |
--progress | 進捗状態を表示 |
--dry-run | 実行は行わない |
-0, --null | find -print0 とかで渡すときの組み合わせ |
-u | バッファリングしない |
-X | 実行するコマンドが可能な限りの数の引数をとれるようする。-mも同じような意味っぽいがよくわからない |
--sshlogin | remote serverで指定したコマンドを実行する。,区切りで複数指定可能。オプションによる複数指定も可 |
--transfer | ファイル転送。sshloginと組み合わせる |
--return | 指定にマッチしたファイルをローカルにもってきてリモートからは削除。と思う。transferと組み合わせる |
--cleanup | 転送したファイルを削除。と思う。transfer、returnと組み合わせる |
cat urllist http://www.yahoo.co.jp http://www.google.co.jp http://www.livedoor.com parallel -j+0 curl -L -o /dev/null :::: urllist
タグ
最新コメント