/* file_comp */

複数のシェルコマンドを一つのファイルにまとめておき、そのファイルを
元にシステム内の任意のパスに任意のパーミッションで各ファイルをバラ
まきます。別にこの手のものは沢山ありますが、小さいソースが欲しかっ
たので自分で必要な部分だけ書いてます。

展開前ファイルのお手本:

以下ご覧のように単純明快です。ネットワーク越しにファイルをやりとり
する場合は、このファイルをダラダラと送信し、クライアント側で展開し
てあげます。differenceライブラリと組み合わせることで、最低限のテキ
スト送信で済むでしょう。

ファイル例:

<_head
COMMENT:
COMMAND_PATH:/tmp/
COMMAND_NAME:test1.sh
USER:nobody
GROUP:mysql
PERMISSION:0711
>_head

<_body
#!/bin/sh

df -k
>_body

<_head
COMMAND_NAME:test2.sh
PERMISSION:0611
GROUP:masashi
>_head

<_body
#!/bin/sh

uname -a
>_body


<_body
#!/bin/sh

uname -a
>_body




作り方:

単純に展開してmakeしてください。
通らない場合はMakefileを修正しませう。
修正出来ない場合はRPMでも探しましょう。きっと無いと思うので詳しい人に作ってもらいましょう。


設定方法:

libfile_comp.a はfile_comp.h とついで、ご自分のソースにまぜて使ってください。
libfile_comp.so は動的なものなので、各環境の事情にあわせてご利用ください。



使いかた:

上のようなファイルを一旦バッファーに入れて、以下の関数にあたえるだけです。
file_comp.c を参考にしてください。

file_comp(BUF);



注意:

ファイルの属性を設定しますので、root権限でないと制限が山ほどあります。





