• 締切済み

lsync+rsyncミラーリングで除外ディレクトリの設定のしかた

lsync+rsyncミラーリングで除外ディレクトリの設定のしかた centOS 5.5 で自宅サーバを立ち上げLinuxを勉強中です。 そこでlsyncdとrsyncを使い、リアルタイムに「サーバー#1」と「サーバー#2」でミラーリングを行うとしています。 ミラー元の「サーバー#1」に # vi /etc/lsyncd.conf.xml <settings>  <!--exclude-from filename="/tmp/exclude"/--> <logfile filename="/var/log/lsyncd.log"/> <binary filename="/usr/bin/rsync"/> <callopts> <option text="-lt%r"/> <option text="--delete"/> <exclude-file/> <source/> <destination/> </callopts> </settings> <directory> <source path="/var/www/AAA/"/> <target path="192.168.1.200::backup"/> </directory> </lsyncd> ミラー先の「サーバー#2」に # vi /etc/rsyncd.conf log file = /var/log/rsyncd.log uid = nobody gid = nobody [backup] path = /home/backup/ hosts allow = 192.168.1.0/24 read only = false と設定し、 ミラー元「サーバー#1」の /var/www/AAA/ はミラー先「サーバー#2」とデータの同期がとれています。 そこで、AAAディレクトリ内のXXXとYYYのディレクトリを除外してミラーリングを行いたいと思いますが、どのように設定したらよろしいでしょうか。 ################################# excludeが良くわかりません。 また「EXCLUDE パターン」http://www.infoscience.co.jp/technical/rsync/rsync.html#exclude に書かれている 除外したいディレクトリはフルパスではなく、基点ディレクトリからのパスを書くとありますが、 /var/www/AAA/XXX はどのように設定すればいいのでしょうか。 ################################# よろしくお願いします。

みんなの回答

  • ysnr00
  • ベストアンサー率0% (0/0)
回答No.1

あまり細かく試していませんが、以下で動作することを確認しました。 例:  サーバー#1側の「/xxx/xxx/aaa/bbb/」内のファイルを除外したい場合 サーバー#2側のrsyncdの設定で、[backup] 内の一番下に exclude = aaa/bbb を 指定して試した所、サーバー#1側の/xxx/xxx/aaa/bbb/*** のファイルが除外されることを 確認しました。 rsync はあまり使用したことがないため、exclude = aaa/bbb の指定あたりは 細かく試して頂いた方がいいかと思います。 lsyncdでも恐らく何らかの設定できるのではないかと思いますが、やり方?が 悪いのか、うまくできませんでした。 上記の設定を64bit環境の lsyncd 1.33 を使用して試した所、サーバー#1の lsyncdが落ちる現象が確認しましたが、最近リリースされた1.34を使用した所、 プロセスが落ちなくなりました。 ※1.33->1.34の修正内容として、fix: logging segfault on 64bit systems と  記載されています。  そのため、64bit環境の場合は、最新のバージョンを使用された方がいいのでは  ないかと思います。 lsyncdが上記以外の理由で止まることもあるようですので、lsyncdの設定に <stubborn/>の指定を追加した方がいいかもしれません。

関連するQ&A

  • Windows2000のミラーリングについて

    サーバのミラーリングを行いたいのですが、環境はサーバにはExpress5800を使用しており、OSはWinndows2000serverです。ミラーリングのためにもう一台Express5800を準備しています。ミラーリングはWindowsの設定だけすれば出来るのでしょうか?ハード同士の接続方法とWindowsの設定方法を教えてください。

  • 別のディレクトリーの設定の仕方は?

    サンダーバード60.9を使用しています。 OS(windows10 home)をクリーンインストール後に、保存していたプロファイルを適用させて以前の状況に復元させたと思ったのですが、メールを読む を選択しても開かないアカウントが1つありまして、 アカウント設定>編集とアドレス> を選択すると、 トースト通知で サーバー設定「ローカルディレクトリーのパス(F:アカウント名:フォルダ名)は無効です。別のディレクトリーを選択してください。」 と出てきます。 しかし、ディレクトリーをどこで選択して設定してやればいいのかが分かりません。 この読めないアカウントのサーバー設定は間違っていないようです。 なぜなら、作成と送信は出来、他のアカウントで受信できたからです。 届いていない時に返ってくるメールもきていないようなので、サーバー上では受信は出来ているのではないでしょうか。 なので別のディレクトリーを設定できれば済むはずなので、わかる方回答お願いします。

  • PHPセーフモードをディレクトリ毎に設定するには?

    OSはLinux Fedora10で、ウェブサーバは Apache/2.2.10 (Unix)、PHPは5.2.9 (cli)を使用しています。 以下のディレクトリをウェブサーバのディレクトリとして作成し、その中にPHPファイルをそれぞれ設置しています。 /var/www/aaa /var/www/bbb /var/www/ccc ここで、ディレクトリ「/var/www/aaa」内のPHPファイルにおいては、system()やその他のプログラム実行関数を許可したいのですが、その他の「/var/www/bbb」や「/var/www/ccc」内のPHPファイルにおいては許可したくありません。 上記のことを実現すべく、プログラム実行関数の使用を制限するために、「php.ini」のファイルを以下のように変更しました。(その後、HTTPDを再起動して、変更を反響させました。) safe_mode = Off  ↓ safe_mode = On safe_mode_exec_dir =  ↓ safe_mode_exec_dir = /var/www/aaa  すると、ディレクトリ「/var/www/bbb」や「/var/www/ccc」内のPHPファイルだけではなく、除外したはずの「/var/www/aaa」内のPHPファイルでも、system()やその他のプログラム実行関数の使用ができなくなりました。そして、以下のようなエラーメッセージを受け取ります。 Warning: shell_exec() [function.shell-exec]: Cannot execute using backquotes in Safe Mode in /var/www/aaa/example.php on line 10  PHPのセーフモードをディレクトリ毎にうまく設定するにはどうすればよいのでしょうか? よろしくお願い致します。

    • ベストアンサー
    • PHP
  • レンタルサーバ同士のバックアップ

    レンタルサーバ同士で毎日バックアップを取りたいと考えています。このサイトでいろいろと検索した所、rsync + sshで行うようですが、レンタルサーバ同士でも設定は可能なのでしょうか? 両方ともcrontabは使用可能です。 Aサーバの/home/hoge/backup/内をそのままミラーの形で、 Bサーバの/home/hoge/backup/にバックアップしたい。 ※Aサーバの/home/hoge/backup/には現状10個程あるDBのmysqldumpを毎日取り、1ヶ月後に削除する設定にしています。 ※Bサーバでの運用は考えていません。 Aサーバ:hoge1.com Linux 2.6.9-42.ELsmp Bサーバ:hoge2.com Linux 2.4.34.1-p3-nonsmp-JWH Aサーバのcrontabに見よう見まねで下記をセットした所、 rsync -avz -e ssh --delete /home/hoge/backup/ hoge2.com:/home/hoge/backup/ rsync error: syntax or usage error (code 1) at main.c(891) とエラーになりました。 それとも、rsync + sshは諦めて、ftpコマンドで送った方がよろしいのでしょうか?

  • LINUXのSAMBAの設定で2つのディレクトリを共有にしたい場合

    VINE LINUX2.0のPCをサーバーにしています。クライアントはWindowsXPです。 ディレクトリフォルダを共有にしたいのですが、SAMBAの設定のところに、共有にしたいディレクトリを指定するところがありますが、(例えば、path=/etc/samba/else/public )2つのディレクトリを共有にしたい場合はどのようにしたら良いでしょうか?

  • cron設定時のディレクトリの絶対パスについて

    cron設定時のディレクトリの絶対パスについて 楽メールproというメール配信cgiをcronを利用して 使いたいと思っています。 しかし、説明を見ても全く意味が分からず、 楽メールpro側もcronに関してはサーバーにより 違う為、サポートが出来ないとの事でした。 サーバー側も特定のツールについてのサポートは出来ないとの事で 困っています。 そこでお詳しい方がいましたら 教えて頂けると大変ありがたいです。 サーバーはさくらのレンタルサーバのスタンダードです。 こちらは楽メールproのクーロンの設定方法のページです。 http://www.raku-mail.com/manual/cron.html まず、ここのsend.cgiのdistributeディレクトリの絶対パスの部分は 具体的にはどうすれば良いのでしょうか? 絶対パスの調べ方は載っているのですが、絶対パスが例えばaaaだとしたら、 $myroot = '/home/ホームディレクトリ/distribute/'; の、どこにどの様に記入すれば良いのでしょうか? 次にCRONの設定の部分なのですが、 これは記載の事をやらなくても、 さくらのレンタルサーバのcronの設定をすれば良いのでしょうか? 教えて頂けると大変ありがたいです。 どうぞよろしくお願い致します。

    • ベストアンサー
    • CGI
  • [bash] rsync データバックアップ

    掲題の件で質問させて下さい。 rsync でローカルサーバ(A)のデータをリモートサーバ(B)にコピーしたいのですが、 そのためのシェルを作成でつまづいております。 ====================================================================== ▼シェルの中身 #!/bin/bash LOG=/var/log/backup.log PARAM=/etc/param/backup.param while read line; do echo `date +%Y/%m/%d" "%H:%M:%S`" "$line" のバックアップを取得します。" >> $LOG expect -c ' spawn rsync -auvz --delete -e "ssh -p 10022" '$line' root@BのIPアドレス:/backup/ expect "password:" send "パスワード\n" interact ' done < /etc/param/backup.param ====================================================================== ====================================================================== ▼実行結果 + LOG=/var/log/backup.log + PARAM=/etc/param/backup.param + read line ++ date '+%Y/%m/%d %H:%M:%S' + echo 2016/09/13 '15:05:25 /home/the-key のバックアップを取得します。' + expect -c ' spawn rsync -auvz --delete -e "ssh -p 10022" /home/the-key root@BのIPアドレス:/backup/ expect "password:" send "パスワード\n" interact ' spawn rsync -auvz --delete -e ssh -p 10022 /home/the-key root@BのIPアドレス:/backup/ root@BのIPアドレス's password: + read line ====================================================================== 実行結果を見ると、パラメータファイルの読み込み自体はうまく言っているのですが、 expect 内での変数の参照(とエスケープ文字)が正しくなく、ssh認証でおかしくなって しまっているようです。 変数の表記をどのように記述すればBへのデータ移行が出来るようになるのでしょうか。

  • cron設定で正常に動作しない

    Solaris8でcronの設定を行っております。 まず /var/spool/cron/crontabs/rootファイルに 30 6 * * * /usr/local/shells/rsync-docs_com.sh を追加しました。 cronのログを確認したところ以下のメッセージが表示されていましたが、実際に処理は動いてなさそうです。 > CMD: /usr/local/shells/rsync-docs_com.sh > root 22386 c (月) 10月 9 06:30:00 2006 < root 22386 c (月) 10月 9 06:30:00 2006 rc=1 スクリプトファイルは処理が実行されるとログを出力するように設定していますがログが出力されません。 # sh /usr/local/shells/rsync-docs_com.sh # で手動で実行すれば正常にログも出力されます。 ------------------------------------------------------------------------ #!/bin/sh LOG_DIR=/home1/WEB_BACKUP/rsync_logs DAYS=30 /usr/bin/find $LOG_DIR -name 'rsync_*.log' -mtime +$DAYS -exec /usr/bin/rm {} \; /usr/local/bin/rsync -av --delete rsync://WWW7/www7-doc /home1/WEB_BACKUP/ www/docs_com >$LOG_DIR/docs_com-`date +%m%d%H%M`.log 2>&1 ------------------------------------------------------------------------ 何が原因か分かりますでしょうか? よろしくお願い致します

  • ポータブルHDにバックアップを取る方法(rsync)

    Ubuntu8.04 をファイルサーバとして使っています。 あるディレクトリをSambaでネットワーク内のWindowsクライアントに 共有させています。 このディレクトリをUSBポータブルHDにバックアップ取ることを考え、 全体としてのサイズはそこそこありますが、日々の変更分は多くないこともあり、 rsyncで差分バックアップを取ることを試みているのですが、どうも理想通りの 動きをしてくれません。 差分バックアップなので、更新していないファイル、フォルダは更新をしてほしく ないのですが、rsyncを起動させるたびに更新します。 まず、rsyncのコマンドですが、 rsync -auv --exclude 'tmp/' --delete /home/share /mnt/usb/backup/ で、やってみました。 chownのエラーが出たので、ポータブルディスクがvfatであることから オプションが問題なのかと思い、 -rlptDuv -rltDuv -ruv 等々オプションを変更させながら試してますが、エラーは出なくなったものの rsyncのコマンドを実行するたびに元ファイルが更新されていなくてもバックアップされるファイルが多々あります。 (オプションを減らすごとにその数は減ったのですが) ただ、上記オプション以上は修正すべき点がわからず困っています。 解決策についてアドバイス等いただければと思います。 よろしくお願い致します。

  • MySQLのデータをrsyncしてもうまくいかない

    サーバーAとサーバーBがあって、 rsyncで、サーバーBのMySQLのvarディレクトリ内をサーバーAと同じにしているのですが、 実際にSELECT文などで確認すると、同じになっていません。 このやり方は、不可能なのでしょうか? レプリケーションは使わない方向で、行きたいのですが。。。 ご教授、宜しくお願いします。

    • ベストアンサー
    • MySQL