ベストアンサー rsyncで除外するディレクトリを指定する方法はありますか? 2005/12/05 16:39 rsyncで、同期したくないディレクトリを指定することは可能ですか? 例:rsncでA以下を同期するがB以外を同期したい /A /B /C /D みんなの回答 (1) 専門家の回答 質問者が選んだベストアンサー ベストアンサー anmochi ベストアンサー率65% (1332/2045) 2005/12/05 20:12 回答No.1 ? マニュアルに書いてあるよね? 何が分からないの? 具体的な使い方が分からんのかな? ソース:/A以下全部。/Aを含めてディレクトリ構造を再現。Bを除外。 デスト:/backup オプション:面倒なのでつけない(実際はつけてね) という状況では、以下のようになる。 # rsync --exclude "B/" /A /backup マニュアルには色々な裏テクニック(マニュアルにあるのが表テクニックなのだが・・・・)が書いてある事もあるので、主要なコマンドのマニュアルを読むと、また新たな発見があるかもよ。 質問者 お礼 2005/12/06 11:04 excludeの後に、 /Aを書くんですね。 前に書いてせいでうまくいきませんでした。 ありがとうございます。 裏テクニックといわれるとそそられます。 マニュアルの記述形式に慣れるよう 何か熟知したいコマンドを この際、よく読んでみようと思います。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピューターOS(技術者向け)Linux系OS 関連するQ&A rsyncのオプションについて 現在、rsyncにてサーバー間の同期をとろうと思っています。 A、B、Cのサーバーがあった場合 1.A→Cにファイルを吸い上げる 2.C→A、C→Bにコピーする ※このとき、C→Aにコピーする必要はないですが念のためって程度です。 サーバーAには絶えず最新のファイルが存在する前提です。 これだけなら簡単なのですが。。。 以下の場合に困っています。 上記、1と2の間 Aから吸い上げられた直後に、Aのファイルが更新されると その後の、C→Aのrsyncで古いコンテンツに上書きされてしまいます。 ※ファイルサイズも、タイムスタンプも違うため こんな状態のようです。 1.A→Cにファイルを吸い上げる ※このときのファイルのバージョンを1.0とします。 2.Aにファイルの更新がかかる ※このときのファイルのバージョンを2.0とします。 2.C→A、C→Bにコピーする ※この時点で、Cにはバージョン1.0のファイルがあるので Aサーバーへのコピーされてしまう。。。 1.0と2.0では、サイズもタイムスタンプも違うため。。。 なんとかしたいのは、このようなことがあっても大丈夫なように タイムスタンプを比較で新しければ、rsync起動とやりたいのですが。。。 オプション探しても見つかりません 知っている方が居ましたら、ご教授いただけないでしょうか? もしくは、このような場合に同期をとる別の簡単な方法があればと思っています。 ※rsyncであれば、使ったことあるし設定も楽なので この手法がいいかなって思っています rsyncの挙動について お世話になります。 現在AサーバからBサーバに対して、定期的にrsyncにてサーバ内ファイルの同期を行っています。 毎日更新されているファイル数が数十万ということと、回線が細い為に同期完了まで約2時間程かかります。 その際少し気になる点があります。 例えば、数十万ある同期対象ファイルの中でhoge.txtというファイルがあったとします。このファイルは動的に書き込みが行われるログファイルです。中身はWEBのアクセスログのようなものです。 このファイルを含む数十万のファイルをrsyncで同期を行った場合以下のような現象が起こります。 --条件------------------------------------------- rsync開始時刻 :01:00 rsync完了時刻 :03:00 rsync開始時の同期元Aサーバにあるhoge.txtのタイムスタンプ :00:58 rsync完了時の同期先Bサーバにあるhoge.txtのタイムスタンプ :00:58 rsyncオプション :rsync -auvvz -e /usr/bin/ssh --exclude '*~' --delete ------------------------------------------------- 上記条件及び結果の元、Bサーバに同期されたhoge.txtを見てみるとファイルのタイムスタンプ自体はAサーバでrsyncを開始した時点でのタイムスタンプ(00:58)なのですが、ファイルの中身を見てみると、ログファイル内にて01:30にアクセスがあったという記録が追記されています。 恐らくは約2時間かかるrsync実行中のうち、01:30以降にAサーバからBサーバに同期が行われたと思うのですが、それであれば、hoge.txtのタイムスタンプ自体も01:30に変わっていなければならないはずだと思うのです。 ちなみにこのhoge.txtというログファイルは書き込みが行われる毎にファイルのタイムスタンプも更新されます。 そこで質問させて頂きたいのですが、rsyncの挙動としてこのようなことはありえるのでしょうか? それではどうぞよろしくお願い致します。 rsync のバージョンアップについて はじめまして。 Linuxは初心者なので、とんちんかんな質問をしてたらすみません。 やりたいこと rsync を バージョンアップしたい 理由 下記のようなエラーメッセージが出る。 rsync: on remote machine: -ldt: unknown option 状況 AサーバーとBサーバーをlsyncdでファイルの同期をしたいと思い、 ひとまず、lsyncdを起動するとファイル同期はとれるようになりました。 しかし、ファイル変更後に自動で同期がとれるかと状況を見てると、どうやらファイル変更後は同期を取らず、ログを見ると上記のエラーメッセージが表示されていました。 これは -dオプションが無いためだと思いますが、 Aサーバーで 「rsync -ldt」 と、オプションをつけてもエラーにならないため、 まずはrsyncのバージョンを同じにしようと思いましたが、いまいち情報が見つけれれませんでした。 スペックはこちらになります。 Aサーバーは centos 5.3 rsync version 2.6.8 protocol version 29 Bサーバーは centos 4.4 rsync version 2.6.3 protocol version 28 どのようにすればrsyncをバージョンアップできますか? yumで検索しても出てきませんでした。 よろしくお願いします。 ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム rsync実行でmkdirエラー rsyncコマンドでs1/s2/s3/a.txtというファイルをd1/s2/s3/にコピーしようとしているのですが ※d1ディレクトリはあるがd1/s2ディレクトリ、d1/s2/s3ディレクトリは存在していない。 $ rsync -avzu --delete s1/s2/s3/a.txt d1/s2/s3/ building file list ... done rsync: mkdir "/home/hogehoge/d1/s2/s3" failed: No such file or directory (2) rsync error: error in file IO (code 11) at main.c(381) rsync: connection unexpectedly closed (8 bytes received so far) [sender] rsync error: error in rsync protocol data stream (code 12) at io.c(359) エラーが出てしまいます。 $ rsync -avzu --delete s1/a.txt d1/s2/ building file list ... done created directory d1/s2 a.txt sent 124 bytes received 40 bytes 109.33 bytes/sec total size is 6 speedup is 0.04 成功します。 d1/s2/s3の場合でもディレクトリが作成されてコピーできるようにするにはどうしたら良いでしょうか? OSはLinuxです。 Apacheでドライブをディレクトリとして指定方法 Apacheでドライブをディレクトリとして指定方法 Apacheでドライブをディレクトリとして指定したいのですがうまくいきませんご指導をお願いします。 イントラネットをXAMPP WindowsVersion 1.7.1で作成しています。 Apache/2.2.11 (Win32) でhttpd.confに以下の指定をしています。 DocumentRoot "C:/xampp/htdocs" Alias /a/ "d:/" <Directory "d:/"> #Options Indexes FollowSymlinks MultiViews Options All AllowOverride None Order allow,deny Allow from all </Directory> この設定でDドライブがhttp://127.0.0.1/a/と指定でき、 <a href='http://127.0.0.1/a/a.jpg'>a.jpg</a>とHTMLでリンクをすれば表示されると思うのですが表示されません。 ブラウザ(IE8)でステータスバー内にhttp://127.0.0.1/a/と入力してエンターを押すとディレクトリ内は表示されるのですがどうしてでしょうか? すいません。ヒントでもいいので教えてください。よろしくお願いします。 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 はどのように設定すればいいのでしょうか。 ################################# よろしくお願いします。 ssh + rsync でパスワードを聞かれなくする方法 SSH + rsync(rsync -e ssh ・・・で ssh 回線で同期)でファイルをコピーする時に、パスワードを聞かれなくする方法はないでしょうか? http://www.okweb.ne.jp/kotaeru.php3?q=323149 などを参考に、公開鍵を作りログイン先のauthorized_keysに登録しました。(公開鍵を作るときにパスフレーズを入力してません。) こうすると、たしかに"パスフレーズ"は聞かれないのですが、"ログインパスワード"は毎回聞かれます。これは仕方がないのでしょうか? ●ファイルのコピー先がファイアーウォールで ssh のポートくらいしか空いていないので、 ssh + rsync を使おうと思っています。 ●同期したいフォルダは複数あるので、スクリプトを作って rsync -avz -e ssh フォルダAを同期 ・・・ rsync -avz -e ssh フォルダBを同期 ・・・ ・・・ という感じで一気に同期できれば便利だな と思っていました。 ところが今のままでは、rsync コマンド一回ごとに ログインパスワードを入力することになってしまいます。 MySQLのデータをrsyncしてもうまくいかない サーバーAとサーバーBがあって、 rsyncで、サーバーBのMySQLのvarディレクトリ内をサーバーAと同じにしているのですが、 実際にSELECT文などで確認すると、同じになっていません。 このやり方は、不可能なのでしょうか? レプリケーションは使わない方向で、行きたいのですが。。。 ご教授、宜しくお願いします。 cgiで複数のディレクトリーを纏めて指定したい cgiでのプログラミングに挑戦中なのですが。 考え方が判らず悩んでいます。 例えば、 /a/data /b/c/data /d/e/f/data と言うように、目的のディレクトリーは全て/dataと言う名称なのですが、階層がバラバラで、それらをまとめてワールドカード等を使って = '/*/data' の様な指定をすることは可能でしょうか? ディレクトリの指定 C++でファイルを処理するプログラムを作っています。ディレクトリを指定してそのディレクトリの中にあるファイルの入出力を行う場合、ディレクトリの指定はどのように行えばいいんでしょうか?どなたか教えてください。よろしくお願いします。 rsyncが失敗したかもしれないのでそれを確認したい。 RedHatEnterPriseLinuxAS3で A,B,C,D,E,F,G,H,I,Jと、10台のサーバーを構築しています。 rsyncでAのデータをB~Jのサーバーにバックアップをしているのですが、 ネットワーク障害があり、rsyncが失敗しているかもしれないという状況になっています。 バックアップ対象のデータが複数あるので、手動で確認するのは手間がかかりすぎるので 簡単にファイルの更新時刻(できればファイルサイズも)が比較できればなと思っています。 何かいい方法をご存知でしたらお知恵をお貸しください。 よろしくお願いします。 IE上からrsyncスクリプトを実行したい。 目的:IEからrsyncスクリプトを実行してWEBサーバAとWEBサーバBの 同期を取り、データを同じにしたいです。 IEのURL欄部分へスクリプトまでのフルパスを入力、実行すると 同期が取れるようにしたいのです。 *現状はIE上では無く、サーバ上からrsyncスクリプトを実行 すると同期が取れます。 コマンド:./test/script/testrsync.pl IE上からフルパスでtestrsync.plを実行すると Internal Server Errorとなってしまい、下記のエラーログ が出てしまいます。 apacheのエラーログ ----------------------------------------------------------- Host key verification failed. rsync: connection unexpectedly closed (0 bytes received so far) [sender] rsync error: error in rsync protocol data stream (code 12) at io.c(463) [sender=2.6.8] Host key verification failed. rsync: connection unexpectedly closed (0 bytes received so far) [sender] rsync error: unexplained error (code 255) at io.c(463) [sender=2.6.8] [Mon Jun 1 00:00:00 2009] [error] [client xxx.xxx.xxx.xxx] Premature end of script headers: /test/script/testrsync.pl ------------------------------------------------------------ rsyncスクリプト ------------------------------------------------------------ #!/usr/local/bin/perl $RSYNC_SCRIPT = "/usr/local/bin/rsync --rsync-path=/usr/local/bin/rsync"; $RSYNC_OPTION = "-azpq -e ssh --delete"; $RSYNC_SVUSER = "user\@serverb:"; $TEST_DIR = "/test/hogehoge"; $REAL_DIR = "/test/hogehoge"; $DEBUG = "debuglog.txt"; open(DEBUG,">$DEBUG"); @SYNCDIR = ( "root/", ); foreach $SYNC (@SYNCDIR){ $CMD = "$RSYNC_SCRIPT $RSYNC_OPTION $TEST_DIR/$SYNC $RSYNC_SVUSER$REAL_DIR/$SYNC"; system($CMD); } close(DEBUG); ------------------------------------------------------------ 現在はcronで定期的に自動更新がかかるようにしておりますが、 同期を取りたい時にIE上からフルパスでスクリプトを実行し サーバAからサーバBへ同期を取りたいです。 色々と調べているのですが、糸口が掴めない状態です。 どなたかお分かりになられればご教示頂きたいです。 よろしくお願い致します。 AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム rsyncの動作について CentOS6を使用しています Windows版のTerastationをCentOS6のサーバーにマウントし、 rsync -avを使って CentaOS6のデータをTerastationにバックアップを取ろうとしているのですが Permission denied (13) と表示されます。 この場合バックアップ元とバックアップ先の所有者が違うからだということでしたので、 所有者を同じになるよう変更しました ここでちょっとわからないことがあるのですが、 所有者を変更したディレクトリのなかの、ディレクトリやファイルは、 変更しないでも同期になりますか? よろしくお願いします ターミナルでディレクトリが指定できません mac miniを使っていて、ターミナルで、cdを用いてディレクトリを指定(移動?)したいのですがうまくいきません。 cd/zakki-/A/B のような流れでBを指定したいのですがうまくいきません。(zakki-はユーザー名です) no such a derectory と出てきてしまいます。 何が原因かわかる方いらっしゃいますか?? お力をお借りできたら幸いです。 1つのファイルを複数のディレクトリにコピーする ディレクトリAの中に ディレクトリ B ディレクトリ C ディレクトリ D ディレクトリ E ファイル F があるとします.ここでファイルFをB,C,D,Eにコピーするにはどうコマンドを打てばよいのでしょうか? Excelのセル指定方法について A1に10が入力されているとして、以下例のような数式を作りたいと考えております。 =B10+C10 上記の数式を =B(A1)+C(A1)のように指定できればと考えているのですが、方法がわかりません。どうか知恵をお貸しください。マクロは使わず関数のみで実現したいです。 SSH + rsyncがダメです パスワード無しでサーバAの/home,/etcをからサーバBの/tmp/内にrsyncでコピーしたいのですがなかなかうまくできません。今のところrsyncで以下のような記述を実行して動作確認まではできました。 rsync -avz -e ssh /home/ サーバB:/tmp/ 当然ながら実行後パスワードを聞かれてしまいます。 そこでSSHの設定をしなければと思いネットを巡って試したのですが、どうしてもパスワードを聞かれてしまいます。 SSHの設定が分かってないのだと思います。 ずばり!を教えていただけるとうれしいです。 環境Redhat7.3 インストールしたままです。何もいじってません。ご教授お願い致します。 rsyncでのバックアップにて お世話になります。 いきなりですが、本題に入らせていただきます。 「A」というサーバー(Web・メール・DNS)があると仮定します。 OSはRedhat Linux7.0J(以下RH7と説明)だとします。 「B」というバックアップ用のサーバーを用意し、 OSにRedhat Linux 7.1J(以下RH7.1と説明)を入れたとします。 rsyncコマンドを使用して、AのデータをBにバックアップしたいと思います。 ここで質問なのですが、 同じOSのバージョン違い同士で、rsyncコマンドでバックアップした際に、何か不具合が起こる可能性というのは、やはりあるのでしょうか? (例えば、Aのマシンの/homeをBのマシンの/homeへ上書きした場合です) というのも、以前、会社の人から「ドットファイルを違うOSに持っていくと、正常に動かない」という風なことを聞いたので、RH7.0とRH7.1でもそういう風な不具合が起こるのか、疑問に思いました。 うまく説明できていないかもしれませんが、 どなたかご教授ください。 おねがいします。 CentOS Stream鍵ファイルでrsync CentOS Stream release 8 鍵ファイルでrsync CentOS Stream release 8の2台のマシンでAからBにフォルダをコピーするシェルを書きたいです。 com-a:192.168.1.11 com-b:192.168.1.12 com-bのログインは鍵ファイルを作っています。 com-aからcom-bにsshでログインするところまではできています。 <192.168.1.11から> ■通常のログイン ssh -i 鍵ファイル root@192.168.1.11 ここまでできていrます。 パスワードは求められません。 ■rsyncでフォルダーのコピー rsync -auvz --delete -e ssh /dir-from root@192.168.1.12:/dir-to/ しかし、これではパスワードを求められます。 rsyncで鍵ファイルは指定できないですか? 指定ディレクトリ名以外の検索 指定ディレクトリ以下で指定ディレクトリ名以外のディレクトリを検索しその検索結果のディレクトリに対し削除などをする場合はどのようなコマンドになるのでしょうか?ご教授いただければ幸いです。OSはRHLです。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター OS(技術者向け) Windows系OSLinux系OSBSD系OSSolaris系OSiOS(技術者向け)Android OS(技術者向け)その他(OS) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
excludeの後に、 /Aを書くんですね。 前に書いてせいでうまくいきませんでした。 ありがとうございます。 裏テクニックといわれるとそそられます。 マニュアルの記述形式に慣れるよう 何か熟知したいコマンドを この際、よく読んでみようと思います。