xargs †xargsの使い方は基本的には引数に渡すことができるコマンド、という感じ。 例) # cat test 使い方 # cat test | xargs echo 上記を踏まえ以下へ続く。 複数の同じプロセスを一気にkillする †例えばhttpdがハングアップしてしまい、プロセスの再起動が出来ないような状態になった場合、 # ps -ef |grep httpd | awk '{ print $2 }' | xargs kill
複数の引数を取りたい †xargsに渡す引数を1つだけではなく2つ以上取りたい場合 例)ファイルをコピーする。リストにはコピー元とコピー先が書かれたファイルがある # cat list # cat list | xargs -n2 cp -p コマンドを別プロセスで複数実行させたい †一つのスクリプトでコマンドを羅列しても、上から順次処理をしてしまうので、複数行あるスクリプトだと、最後まで終わるのに時間がかかってしまう。 例) # cat tar.sh #!/bin/bash tar cf /home/a.tar /usr/a tar cf /home/b.tar /usr/b tar cf /home/c.tar /usr/c このスクリプトだとa.tarを作成し、完了次第b.tarを始める。 これを別プロセスとして実行させられると、当然処理も早くなる(サーバリソースに余裕がない場合にはこの限りではないので注意) # vim list /home/a.tar /usr/a /home/b.tar /usr/b /home/c.tar /usr/c /home/d.tar /usr/d /home/e.tar /usr/e /home/f.tar /usr/f /home/g.tar /usr/g /home/h.tar /usr/h /home/i.tar /usr/i /home/j.tar /usr/j # cat list | xargs -n2 -P5 tar cf -nについては上記の参照。 -Pはいくつのプロセスを同時実行させるかを指定する。 |