dir_newとdir_oldの両ディレクトリの差分をtar.gz生成シェルスクリプト
#!/bin/sh
変数に値を格納する
NewDir="/data/nextcontents1.ocn.ne.jp/htdocs"#新ファイルを格納しているディレクトリ OldDir="/data/www.ocn.ne.jp/htdocs"#古いファイルを格納しているディレクトリ TarPath="/data/testcontents1.ocn.ne.jp/php-bin/data/bbmupload.tar"#差分のtarファイルのフルーパス TarGzPath="/data/testcontents1.ocn.ne.jp/php-bin/data/bbmupload.tar.gz"#最終的に生成されるtar.gz差分ファイルのフルーパス
上記の変数に基づいてdiffで出した差分ファイルの情報を一行ずつでパス情報を抽出し、さらに、$NewDirが含まれる行だけを抽出し、さらに、$NewDir自身のパスを[./]に書き換え、最後はtarに渡してtarファイルを生成する
for i in `diff -Nurq $NewDir $OldDir | xargs -n1 dir 2>/dev/null | grep $NewDir | sed -e "s/\/data\/nextcontents1.ocn.ne.jp\/htdocs/./g"`; do cd $NewDir; tar -uf $TarPath $i 2>/dev/null; echo $i; done
差分が検出すれば、上記で生成したtarファイルをtar.gzファイルを生成する。
差分がなければ、"差分はございません。"を出力
if [ -f $TarPath ]; then gzip -rf $TarPath chmod 777 $TarGzPath echo "差分ファイルをダウンロードする" else echo "差分はございません。" fi echo "All done!"