お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2009-06-23 23:13:31

oosamuuy
メンバ
登録日: 2009-03-09

ファイルの同期について質問です。

お世話になっております。
 Ubuntuのファイル同期について質問です。
 現在rsyncコマンドを使ってバックアップをとろうと挑戦中なのですが、外部のメディア(フラッシュメモリや外付けのHDD)を介してファイルをコピーするとなぜか失敗してしまいます。同じマシン内のディレクトリを他のディレクトリにコピーする際はrsyncのオプション通りにすべてきちんと同期されているんですが、外部メディアを介すとパーミッションもオーナーもぐちゃぐちゃですべてのファイルがオーナーがUbuntu管理ユーザーでグループがrootになってしまいます。CGIなどのファイルなどはパーミッションが保持されないので殆ど機能不全に陥っています。。。またどうしてだかindex.htmlというファイルのみパーミッションが(コピー後に)700に変わっていたり、コピー後にはすべてのファイルの所有者がroot:rootに変わってしまったりします。
 具体的には、今使用しているFC5のホームディレクトリ以下をUbuntuに移行しようとしています。ホームディレクトリ以下のユーザーは双方とも全く同じにしています。
 
 パーミッションやオーナーを手動で変更すれば一部のファイルは使えるようになるのですが、何せいろんなファイルが煩雑にかなりたくさんありますので手動では追いつかない感じです。
 何かよい方法があったらおしえてください。

※同じコンピューターのファイルをrsyncでバックアップし、元に戻すという作業においては全く問題なくファイル属性やツリー構造がきちんと維持されています。

 よろしくお願いします。
 

オフライン

 

#2 2009-06-23 23:25:20

hito
管理者
登録日: 2007-03-18

Re: ファイルの同期について質問です。

なんとなく、その外部メディアのフォーマットがFAT32やNTFSのような気がします。確認して頂くのが良さそうです。
また、もし該当するようなら、FC5上でそのメディアをext3あたりでフォーマットしなおし、そこにrsyncすると如何でしょうか?

(ただ、FC5のユーザーのUIDと、UbuntuのUIDが揃っていないとちょっと面倒なことになるかもしれません)

オフライン

 

#3 2009-06-24 00:12:07

n_saito
メンバ
登録日: 2009-06-23

Re: ファイルの同期について質問です。

少し手間をかける/フォーマットしなおしたくないなら、メディアにループバックマウントなファイルを作っておいて、そのファイルをマウントして同期....という手もあったりして...。
もちろんtarで-pつけてtar玉を作るとか...。

# paxとかでもいいのかな?

オフライン

 

#4 2009-06-24 03:48:09

petitbootang
メンバ
From: 東京都
登録日: 2009-02-12

Re: ファイルの同期について質問です。

メディアのフォーマットが差し支えなければ、hito さんの案が一番だと思います。
ただ、n_saito さんが提案されている、ループバックデバイスを作る方法も面白いので、覚えておいて損は無いと思います。

1.まず、dd コマンドを使って下記のようにディスクイメージファイルを作成します。

$ dd if=/dev/zero of=/media/MYUSB/backup count=1 bs=1000M
※MYUSB は私の USB メモリの名前、環境によって変わる。backup はファイル名、任意。bs= の値は任意。

2.次に作成したディスクイメージを ext3 でフォーマットします。

$ mkfs.ext3 /media/MYUSB/backup

3.マウントポイントを作成します。

$ sudo mkdir /mnt/backup

4.ディスクイメージをループバックデバイスとしてマウントします。

$ sudo mount -t ext3 -o loop /media/MYUSB/backup /mnt/backup

5.と、こんな感じで rsync すればちゃんとコピーされます。

$ rsync -av /home/hoge/hoge /mnt/backup

※ 3.のマウントポイント作成のところで、/mnt ではなく /media に作成すると、場所にディスクイメージが表示されるようになります。

$ sudo mkdir /media/backup
$ sudo mount -t ext3 -o loop /media/MYUSB/backup /media/backup

細かいオプションはネットに沢山転がってるので研究していただくとして・・・。
本格的に運用していく場合は、USB デバイスの名前がシステムの認識順に変わってしまうことが問題になるかも知れません。
USBメモリのデバイス名の固定については、vine_user さんがわかりやすくまとめてくださっていますので、下記の記述を参照してください。
http://blog.livedoor.jp/vine_user/archives/51338759.html

※ n_saito さん
pax はどう使うと幸せになれますか〜?

オフライン

 

#5 2009-06-24 08:47:42

n_saito
メンバ
登録日: 2009-06-23

Re: ファイルの同期について質問です。

petitbootang による投稿:

※ n_saito さん
pax はどう使うと幸せになれますか〜?

(今回は同期が前提で直接関係ないですが)アーカイブファイルを展開・作成するときにファイル名を変換しつつ展開・作成可能とか、アーカイブするファイルの属性を保持の仕方をある程度選べるとか、cpioベースでもアーカイブ可能なので一般の人では即座には展開しにくい形にできるとか、そんなほんの少しのアドバンテージぐらいです。(汗
あとは対話形式があるとかぐらいかな...。

今回は同期前提なのでpaxそのもののアドバンテージはほぼないと思っていますが、tarにしろpaxにしろ、パーミッションがある程度保持/操作可能でタイムスタンプが更新されているものを抽出してアーカイブしなおすことができるアーカイバを使うことが、今回の同期のツボかなと思ってます。

USBメモリとかがベースで考えると、paxとか-zとか-jオプションを使わずにtarでアーカイブしてgpgとかで暗号化しておくと、手間はちょっとかかるけどセキュリティ上はプラスになるという話もあるとは思ってます。
まぁそんな時はbackup-managerを有効活用すると面倒は少ないかもしれませんが。

オフライン

 

#6 2009-06-24 13:58:10

si
メンバ
From: hokkaido kitami, jp
登録日: 2007-01-15

Re: ファイルの同期について質問です。

hito による投稿:

FC5のユーザーのUIDと、UbuntuのUIDが揃っていないとちょっと面倒なことになるかもしれません

一般ユーザは、標準では、Fedoraは、500番から、Ubuntuは、1000から振られます。
バックアップファイルを作る場合は、注意が必要だと思います。

> CGIなどのファイルなどは...
SELinuxは、考慮する必要はないですよね ?

オフライン

 

#7 2009-06-24 15:29:21

oosamuuy
メンバ
登録日: 2009-03-09

Re: ファイルの同期について質問です。

皆様くわしい解説ありがとうございます。ディバイスのフォーマットのことは全く知らなかったのでとても助かりました。

hitoさん
 フォーマットしても大丈夫なので、早速ext3にフォーマットしてみたいと思っています。ありがとうございます。

petitbootangさん
 貴重な情報ありがとうございます。/dev以下を触ったことがないもので…何となく不安ですが…おもしろうそうなのでやってみたいと思います。ループバックディバイスについては僕もちょっとした解説を読んだぐらいできちんと理解していないのですが、解釈としては、あのいわゆる「普通のファイルをブロックディバイスみたいにみせかける…」みたいな解釈でよいでしょうか?となると、これは逆の発想といいますか…僕がrsyncでコピーしたファイルをパーミッションやオーナーを保持したままディバイスに見せかけて、そのままマウントしてしまう…みたいな理解の仕方で正解でしょうか?まだまだ概念的にわからない部分がありますので…。

siさん
 貴重なアドバイスありがとうございます。ユーザーのIDは全部きちんと揃えたので大丈夫だと思います。いろいろ探していたらnewusersというコマンドがあってpasswdファイルの形式をそのまま使ってユーザーを登録できるコマンドです。
 ユーザーがたくさんある…といいましても僕もの場合は、10程度なので手打ちでやっても問題ないわけですが(汗)…。
 SELinuxは使っていないので大丈夫です。(使ってなくてよかった……。。)

 皆様いろいろありがとうございます。ちょっとこれからごちょごちょやってみて、後の人たちのためにも事後報告いたします!

オフライン

 

#8 2009-06-24 21:53:21

einundzwanzighundertsechs
メンバ
登録日: 2008-12-28

Re: ファイルの同期について質問です。

Fedora & Ubuntu && NFSサーバーと化した玄箱(HG & Pro)で,rsync 使っています.
UID は最後に導入した Ubuntu の 1000 に Fedora も 玄箱も合わせました.
SELinux もちろん使ってますが問題ないです.(もっとも Fedora はサーバーではありませんが)

oosamuuyさん による投稿:

 SELinuxは使っていないので大丈夫です。(使ってなくてよかった……。。)

サポートの無い古いFC5から完全に Ubuntu に乗り換えるのなら良いのですが,
Fedora を何らかの形で使い続けるならば SELinux は使った方が良いです.

余談ですが,
現在接続できない日本のFedora の Forum で
「SELinux は 厄介者です.エキスパートはみんな disable してます」などと
質問者にアドバイスした人がいまして,「エキスパート」からそれは違うと指摘を受けていました.
私もトンでもない人だと感じました.

オフライン

 

#9 2009-06-28 12:17:34

oosamuuy
メンバ
登録日: 2009-03-09

Re: ファイルの同期について質問です。

皆様いろいろとありがとうございます。
外部のメディアをext3でフォーマットしてみてからrsyncを実行してみました。
結果、ほとんどのファイルは同期されるようになりました。ありがとうございます。
しかし、
rsync: readlink_stat("/home/<管理者ユーザー>/.gvfs") failed: Permission denied (13)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1058) [sender=3.0.5]
というエラーだけでます。
実際.gvfsというディレクトリ(?)は存在していなくて、

drwxr-xr-x  2 user user  4096 2009-06-25 20:39 .gstreamer-0.10
-rw-r--r--  1 user user   156 2009-06-25 19:56 .gtk-bookmarks
d?????????  ? ?      ?          ?                ? .gvfs
drwxr-xr-x  2 user user  4096 2009-06-25 00:18 .icons
drwx------  3 user user  4096 2009-06-24 23:38 .local

となってしました。調べてみるといろいろな外部のメディアやネットワークの仮想的なマウントポジションになっているそうです。というわけで、これはエラーというエラーではない模様です。いろいろ勉強になりました。
petitbootangさんの詳細な説明がものすごく助かりました。そして皆様いろいろなヒントをありがとうございます。

einundzwanzighundertsechsさん
僕の場合は、SELinuxを使わずにルーターを2つかませてアドレス変換しているのでセキュリティー上は大丈夫かな…と思っていますが、大丈夫でしょうか?さすがに直でインターネットにつないでいる場合は厄介者ゆえにSELinuxを使わないとあぶないぞ…と思っていますが僕の認識は大丈夫でしょうか(汗)?なんかちょっと不安になってきました…。。。
しかし、FC5はもうサポートも切れたし、パッケージのアップデートもほとんどできなくなってきたのでとりあえずバックアップとって早急にUbuntuに完全に切り替える予定です。いろいろアドバイスありがとうございます!

オフライン

 

#10 2009-06-28 12:39:16

petitbootang
メンバ
From: 東京都
登録日: 2009-02-12

Re: ファイルの同期について質問です。

oosamuuy さん による投稿:

rsync: readlink_stat("/home/<管理者ユーザー>/.gvfs") failed: Permission denied (13)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1058) [sender=3.0.5]
というエラーだけでます。
・・・・

それは多分、ルート権限で rsync してないからだと思います。
sudo rsync -av /home/hoge/hoge /mnt/backup
とすれば、エラーは出ずにパーミッションは元の状態でコピーされるはずです。
sudo 付けると、何となく root の所有物になってしまうような気がするかも知れませんが、そんなことはありません。
ユーザ情報やパーミッションはそのままコピーされます。

オフライン

 

#11 2009-06-28 14:05:31

oosamuuy
メンバ
登録日: 2009-03-09

Re: ファイルの同期について質問です。

petitbootangさん、いつもありがとうございます。
rsyncはsudoでやってみましたが、結果は同じでした。同様に.gvfsだけコピーされませんでした。
その他のファイルは全部パーミッションもオーナーも同様に保存されています。
オプション-vで表示させると、一番最初に、
rsync: readlink_stat("/home/user/.gvfs") failed: Permission denied (13)
が出てきました。
管理者以外のその他のユーザーはWebサーバーでのみ使っているので.gvfsは生成されていません。。。
よくよく考えてみるとrootに対するPermission deniedっていうのもおかしな話ですよね?なんなんでしょう…。
前回に書いたようにls表示してみると、???だらけのおかしな表示になるのですが、個別に
# ls -la .gvfs
とやると、同様にPermission deniedとなって表示してくれませんでした。
このファイル自体に問題がありそうな気がしてきました。

オフライン

 

#12 2009-06-28 14:17:13

petitbootang
メンバ
From: 東京都
登録日: 2009-02-12

Re: ファイルの同期について質問です。

あー、それは gnome が使っているマウントポイントの一種だったりするので(ちょっと説明が正確ではないかもしれないが・・・)、コピーされなくても問題ありません。って言うか出来ないと思います。済みません。

オフライン

 

#13 2009-06-28 14:58:36

oosamuuy
メンバ
登録日: 2009-03-09

Re: ファイルの同期について質問です。

こんなに早く返事していただいてありがとうございます!
僕も今、いろいろいじっていたら、mountのコマンドで、
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
gvfs-fuse-daemon on /home/user/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=omnioo) ←★これ。
/dev/sdc1 on /media/disk type ext3 (rw,nosuid,nodev,uhelper=hal)
が出てきたで、これは違うなと思ったところです。

いろいろありがとうございます!

オフライン

 

#14 2009-06-28 16:06:37

oosamuuy
メンバ
登録日: 2009-03-09

Re: ファイルの同期について質問です。

すみません。一つだけ質問があるのですが、
非常に概念的なことで特に今困ったことになっているわけではないのですが、外部のHDDなどを接続すると僕の現在の環境では、/media以下に自動的に認識されて、管理ユーザーのデスクトップに自動的にアイコンが現れます。それらは、デバイスとして/dev/sdc1として読み込まれていて、その実態は/mediaということになっているんでしょうか?
 概念的に混乱しているのですが、ext3にフォーマットする際にいわゆる「マウントポジション」みたいなものを明示的に作成はしなかったのですが、/dev/sdc1と/media/diskの関係はどういうことなのでしょうか?
問題なく使用はできるものの、 外付けのHDDの他にフラッシュメモリを差し込んでみたら、同様のディバイスとして認識されている…?のと同時にフラッシュメモリは4GBなのすが、HDDの120GBのシリンダーと同様の認識をしているみたいです。(fdiskのpで確認しました。)フラッシュメモリ自体もext3にフォーマットされていてrsyncも問題なく使用できます。
 ここらあたりの関係といいますか、システムの意味といいますか…もしわかる方がいましたらおしえてください。

オフライン

 

#15 2009-06-28 16:38:09

n_saito
メンバ
登録日: 2009-06-23

Re: ファイルの同期について質問です。

rsync は --exculde オプションで.gvfsを非対象にしてエラーメッセージを回避するという手があります。

メディア関連についてですが、/etc/xdg/autostart/gnome-volume-manager.desktop  とかってありませんか?
その中で /usr/lib/gnome-volume-manager/gnome-volume-manager がセッション開始時に起動されていると思います。

GNOMEレベルではコイツが外部メディア関連が接続された場合のmount等をコントロールしているかと。
例えばUSBマスストレージなメディアを複数認識させれば disk, disk1, disk2 などと勝手に作ってくれるようです。
もちろん認識させる順でマウントされるはずですので、固定するならudevとかの設定を変更してデバイスファイルを変えてしまう手もあります。

実際のマウントはhalとかがやってるのかもしれませんが、どこを設定すればマウントポジションを変えられるかは追っていません。(汗

# LSB的には動的にマウントさせるのは/mediaで良かった記憶...。

オフライン

 

#16 2009-06-29 02:18:24

petitbootang
メンバ
From: 東京都
登録日: 2009-02-12

Re: ファイルの同期について質問です。

Linux では HDD や CD-ROM などのハードウェア・デバイスは、デバイスファイルと呼ばれる特殊なファイルとして扱われます。
その中身を見たり書き込みを行ったりするのに、マウントポイントと呼ばれる仮想ディレクトリと結びつけることで実現しています。
/dev/sdc1 はデバイスファイル名で、/media/disk は中身を見るための仮想ディレクトリです。

と言うような説明をしても、なかなか分かりにくいですよねぇ‥・。
Windows のように直接的にデバイスにアクセスする感覚からすると、何でそんなメンドイことすんねん?って感じですよね。
何ででしょうね?私も詳しくは分かりませんが‥・
多分、美しいからじゃないでしょうか。
ファイルシステムのディレクトリツリーに整然と並んでいる姿は、やはり美しいとしか言えないような。
そのうち分かると思います。
それに、あらゆるものがファイルとして扱われるので、基本的に全てを同等の感覚で扱えます。
これは大変素晴らしい仕組みです。叡智と言って良い。
これも、そのうち分かります。

そうそう、先のループバックの件ですが、例えば、ダウンロードした Ubuntu の CD の中身は、

コード:

$ sudo mount -t iso9660 -o loop ~/デスクトップ/ubuntu-ja-9.04-desktop-i386-20090510.iso /media/cdrom

とすれば、ls /media/cdrom で中身を見ることが出来るので、パッケージだけ取り出してインストールなども出来ますので便利ですね!
Daemon Tools とかいらないので(^^)

オフライン

 

#17 2009-06-29 22:56:25

oosamuuy
メンバ
登録日: 2009-03-09

Re: ファイルの同期について質問です。

n_saito による投稿:

rsync は --exculde オプションで.gvfsを非対象にしてエラーメッセージを回避するという手があります。

これでやってみました。ありがとうございます。綺麗に終了するので気持ちがいいです。
マウントする場所の問題ですが…巷でもいろいろ困っている人がいるみたいです。しかし、結局のところUbuntu開発者側ではマウントの場所は/media以下が推奨とのことです。僕もここらで問題なく使えます。
 僕もGUIとCUIを半々ぐらいで中途半端に使っているのでいろいろとわからなくなる部分が多いです。




petitbootang による投稿:

/dev/sdc1 はデバイスファイル名で、/media/disk は中身を見るための仮想ディレクトリです。

 これで(だいたいのところですが…)イメージはつかめました!何せ本当にいろいろとイメージの世界に近いものがあって…。。
たぶんですが、それゆえに/dev/sdc1というディバイスに対してdisk,disk-1…となっているのは、たぶん外部から入ってきたメディアをこのディバイス名でまとめて処理している…ってことなんだろうな…と思いました。物理的には別々の外部メディア(ディバイス)なのですが、ソフト的には同じディバイスの中のフォルダーといいますかディレクトリといいますか…パーテーションといいますか…そんな感じで処理しているみたいです。(と今のところ理解しておくとわかりやすいです。。。違っているかもわかりませんが…(汗))

 マウントポイントについてもいろいろ調べてみました。初心者さんは、皆僕と同様困っているみたいで…いろいろ参考になるページがたくさんありました。この「マウントポイント」という言葉をおしえてもらうだけでかなりの勉強ができました。ありがとうございます。

 しかし、ディバイスまでファイルというのも何だかすごい話ですよね(笑)。僕はずっとMacでPhotoshopやIllustratorでデザインみたいな仕事が主な仕事だったのですが、最近なかなか仕事がなくてWebの仕事が半分以上になり、WebをやっているとphpとかPerlをちょっとぐらいは書けないといけない雰囲気になり、それをやっているうちにApacheを使うようになり…さらにシステムまでやらされるようになり、最後に自宅のPCはFC*とUbuntuとMacとWinが並ぶ始末になってしまいました。そんなわけで、システムはここ数年ちょこちょこしかいじっていないかなりの初心者です。しかも周囲にプログラマーみたいな仲間があまりいないので、これからも、ちょこちょこお邪魔します。よろしくお願いします!

オフライン

 

#18 2009-06-29 23:56:25

petitbootang
メンバ
From: 東京都
登録日: 2009-02-12

Re: ファイルの同期について質問です。

UNIX 系の伝統的には /mnt 配下にマウントすることになってますが、マウントポイントは基本的にどこにでも作れます。
あらゆるディレクトリを試した訳ではないので、作成を拒否されるディレクトリもあるかもですが…。
最近の gnome と udev の仕組みで自動マウントされる場合は、/media 配下にマウントされますね。

そうそう、自動マウントと言えば、せっかく #4 で USB メモリ内に作成したループバックファイルは、どうやったら自動マウント出来るんだろ。
USB メモリを挿したときに自動でループバックマウントと言うのは無理なんだろうか…。
まだまだ、分からないことばかりだ。

オフライン

 

#19 2009-06-30 00:02:03

petitbootang
メンバ
From: 東京都
登録日: 2009-02-12

Re: ファイルの同期について質問です。

oosamuuy さん、
ストレージ等に関しては、↓こちらに読みやすい記事があるので、参考にしてみてください。
http://japan.zdnet.com/sp/feature/07tenthings/story/0,3800082984,20385360,00.htm

オフライン

 

#20 2009-07-13 22:23:42

oosamuuy
メンバ
登録日: 2009-03-09

Re: ファイルの同期について質問です。

お礼が非常に遅くなってすみません。
とてもたくさんの情報ありがとうございます。非常に勉強になりました。
いつもありがとうざいます!

オフライン

 

Board footer

Powered by FluxBB