「Gnu/Linux Magazine France」でそれについて読んだことがあります。男は /etc から root/ への rsync を使用し、作業コピーを作成せずに、subversion 経由で保存します。
雑誌から少し引用します。
この例では、サーバーは freeBSD を実行していて「sparky」ですが、保存するマシンは debian の下にあり、「replica」です。ユーザー「レプリカ」を作成します。
/usr/local/etc/ssh/sshd_config に以下を追加:
Match User replica
X11Forwarding no
AllowTcpForwarding no
ForceCommand /usr/local/bin/svnserv -t -r /home/replica/svnrepo -tunnel-user=replica
リポジトリの作成
sparky # svnadmin create /home/replica/svnrepo
修正権:
sparky # chown -R replica:nogroup /home/replica
sparky # chown -R o-rwx /home/replica
sparky # chown -R g-rwx /home/replica
クライアント側:
サブバージョンをインストールする
replica # mkdir -p /root/scripts/svnrepo
replica # rsync -av /etc /root/scripts/svnrepo
export SVN_SSH ="ssh -i /root/.ssh/id_rsa"
svn import -m "replica config files" /root/scripts/svnrepos svn+ssh://replica@sparky/home/replica/svnrepo
ここで、フォルダーはまだ作業コピーではないため、作成する必要があります。.svn ファイルを作成できますか? 彼はできません:)
cd /root/scripts
mv svnrepo svnrepo.old
svn checkout svn+ssh://replica@sparky/home/replica/svnrepo
たとえば、ホストなどのファイルを変更してみてください。
再同期します。/etc/hosts がコピーされた、変更されたファイルのみを取得する必要があります。
これでコミットできます:
svn commit -m "backup 1" /root/scripts/svnrepo
最後に 1 つだけあります。ファイルを subversion に取得させたい場合は、ファイルを追加する必要があります。たとえば、新しいファイルを /etc に作成すると、デフォルトでは保存されません。
どうすればいいですか?
svn status /root/scripts/svnrepo | grep -e '^!' | awk '{ print $2 }' | xargs -r svn delete
svn status /root/scripts/svnrepo | grep -e '^?' | awk '{ print $2 }' | xargs -r svn add
次に、独自のスクリプトを作成する必要があります。
お役に立てれば。
(gtg、後で編集してタイトルを設定するので、誰もしない場合は1つ)