トップ(最新)

nDiki : diff

スポンサード リンク

Related term

2003年4月23日 (水)

[ WiKicker ] SunOS 5.6 にインストール このエントリーを含むはてなブックマーク

スポンサード リンク

結局flock 問題は、File::Flock モジュールを使う事にする。 $^O eq 'solaris' な時は File::Flock::lock を使うようにコードを修正。

それから、RCS まわりでも問題。

 Warning: missing newline at end of file /tmp/...

といった感じの警告が出て期待した結果が得られない。 調べてみると rcsdiff の呼び出しで警告。 実際には diff が吐いている。 Sun の diffGNU diff ではファイル末処理が違うようだ。 ということで、こちらは diffutils-2.8.1 と rcs-5.7 を home の下に入れて解決。

ふう、これで WiKicker

で動く事を確認。都合5つ(SunOS は一つのホストで2個動かしている)。 今の所の注意点は

といったところか。

◇ Twitter やってます。この記事が気にいったらぜひ twitter.com/Naney の follower になってください。


[ 4月23日全て ]

2004年6月5日 (土)

パッチ作り このエントリーを含むはてなブックマーク

[ diff / patch ]

そういえばパッチなんて滅多に作らないな。Cache::Memcached のパッチを作った時の手順をメモしておく。 公開する場合のパッチの作り方はこんな感じでOK?

 --- 作成
 tar zxvf Cache-Memcached-1.13.tar.gz
 cp -a Cache-Memcached-1.13 Cache-Memcached-1.13.orig
 emacs Cache-Memcached-1.13/Memcached.pm
 diff -ur Cache-Memcached-1.13.orig Cache-Memcached-1.13 > Cache-Memcached-1.13-5.005_03-20040605.diff
 --- patch する時
 tar zxvf Cache-Memcached-1.13.tar.gz
 patch -p0 < /tmp/Cache-Memcached-1.13-5.005_03-20040605.diff

[ 6月5日全て ]

2005年2月17日 (木)

別の人の作業ファイルをCVSにマージ このエントリーを含むはてなブックマーク

都合によってCVS リポジトリにアクセスできないところにいるチームメンバから、変更した作業ファイルを送ってもらった。

さて。

どうするか。

@ 変更元リビジョンがわかっているもの

ファイルに $Id$ などが含まれていてどのリビジョンに対して変更したのかが簡単にわかるものは diff をとって patch をあてるか。 自分の作業ディレクトリとは別にもう一つ作業ディレクトリをチェックアウトして、そこに変更されている作業ファイルを上書きコピー。

 cvs diff -r リビジョン -au ファイル名 | patch /path/to/my/working/dir/ファイル名

で自分の作業ファイルにマージ。

@ 変更元リビジョンがわかっていないもの

とりあえず HEAD と diff してみて問題なさそうならそのままマージ。

やっぱりリビジョン番号を埋め込んでおいた方が便利やね。


[ 2月17日全て ]

2005年4月2日 (土)

DAR で差分/増分バックアップ このエントリーを含むはてなブックマーク

普段使っているノート PCpdumpfsバックアップをとっている。 任意のスナップショットから簡単にファイルを復元できるので、バックアップHDDを別に用意できる場合はこれが便利。

@ 問題1

会社で使っている Windows デスクトップは、rsyncWindowsファイルサーバへ同期。 1世代しかバックアップが無い。 少なくとも数世代前のファイルが復元できるようにしておきたい。

@ 問題2

Linux サーバはバックアップ無し! マズイ。 現状、たまに手動で tarball にして保存しているぐらい。

@ DAR

DAR というバックアップコマンドの紹介を見て興味をひかれた。 シンプルながらも使い勝手の良さそう。 Linux でも Windows でも動くというのも嬉しい。

@ DAR を使ってみる

Linux 上で試してみる。

@ テスト用ディレクトリを作成

/tmp の下にテスト用ディレクトリ dar を作成。 その下に home ディレクトリと var ディレクトリを作成する。

 mkdir -p /tmp/dar/home/naney
 mkdir -p /tmp/dar/var/lib/dar
 echo 'abc' > /tmp/dar/home/naney/file1.txt

/tmp/dar/home 以下バックアップ対象として /tmp/dar/var/lib/dar 以下にバックアップファイルを作成してみることにする。

@ フルバックアップ

最初はフルバックアップ:

 dar -c /tmp/dar/var/lib/dar/home-full \
     -y9 \
     -R /tmp/dar \
     home

/tmp/dar/home をフルバックアップした home-full.1.1.dar が /tmp/dar/var/lib/dar にできる。

@ 差分バックアップ(1回目)

ファイルを1つ追加。

 echo 'def' > /tmp/dar/home/naney/file2.txt

ここで差分バックアップをとる:

 dar -c /tmp/dar/var/lib/dar/home-diff-1 \
     -A /tmp/dar/var/lib/dar/home-full \
     -y9 \
     -R /tmp/dar \
     home

home-full.1.dar に対する差分バックアップファイル home-diff-1.1.dar ができる。

@ 差分バックアップ(2回目)および増分バックアップ

もう1つファイルを追加。それから最初にあったファイルを削除してみる。

 echo 'ghi' > /tmp/dar/home/naney/file3.txt
 rm /tmp/dar/home/naney/file1.txt

ここで差分バックアップ(2回目):

 dar -c /tmp/dar/var/lib/dar/home-diff-2 \
     -A /tmp/dar/var/lib/dar/home-full \
     -y9 \
     -R /tmp/dar \
     home

home-full.1.dar に対する差分バックアップファイル home-diff-1.2.dar ができる。

またインクリメンタルバックアップもとってみる

 dar -c /tmp/dar/var/lib/dar/home-inc-2 \
     -A /tmp/dar/var/lib/dar/home-diff-1 \
     -y9 \
     -R /tmp/dar \
     home

差分バックアップファイル home-diff-1.1.dar に対する差分バックアップファイル home-diff-2.1.dar ができる。

@ フルバックアップからの復元
 dar -x /tmp/dar/var/lib/dar/home-full

を実行。

 home/naney/file1.txt

が復元される。

@ フルバックアップ+差分1回目からの復元
 dar -x /tmp/dar/var/lib/dar/home-full
 dar -x /tmp/dar/var/lib/dar/home-diff-1

を実行。

 home/naney/file1.txt
 home/naney/file2.txt

が復元される。

@ フルバックアップ+差分2回目からの復元
 dar -x /tmp/dar/var/lib/dar/home-full
 dar -x /tmp/dar/var/lib/dar/home-diff-2

を実行。

 home/naney/file2.txt
 home/naney/file3.txt

が復元される。

@ フルバックアップ+増分1回目(=差分1回目)+増分2回目からの復元
 dar -x /tmp/dar/var/lib/dar/home-full
 dar -x /tmp/dar/var/lib/dar/home-diff-1
 dar -x /tmp/dar/var/lib/dar/home-inc-2

を実行。

 home/naney/file2.txt
 home/naney/file3.txt

が復元される。

@ 運用するには

などが必要か。 エラー処理まで含めると結構面倒くさいな。 Perlあたりでまずは簡単なスクリプトを用意するか。


[ 4月2日全て ]

この日記のはてなブックマーク数 Add to Google RSS

Process Time: 0.017909s / load averages: 0.16, 0.20, 0.17
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)