質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
terminal

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

コピー

元のオブジェクトを破壊することなく、オブジェクトの複製を生成することをコピーと呼びます。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

Q&A

解決済

4回答

4790閲覧

rsyncで同期しているはずなのにローカルのファイル数と総容量がリモートと異なる

hobby2018

総合スコア22

terminal

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

コピー

元のオブジェクトを破壊することなく、オブジェクトの複製を生成することをコピーと呼びます。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

0グッド

0クリップ

投稿2020/09/30 09:05

編集2020/09/30 09:07

rsyncコマンドでローカル(mac mini2018に直付のハードディスク)からリモート(ReadyNas214)へフォルダをコピーしました。
rsyncコマンドで同期は取れているように見えるのですが、macでフォルダの情報を見ると
ローカルとリモートでファイル数や総容量が異なっています。

この場合、ファイル数は同じで総容量もほぼ同じになると期待していたのですが
そうなっておりません。
原因がわからず苦慮しているところです。どなたか解決に至るお知恵やヒントを頂ければ幸いです。
追加で情報が必要なものがあれば仰ってください。
以上、よろしくお願い致します。

# このコマンドで1度目はコピーを実行して、同じコマンドで2回目に差分確認を行ったところ rsync -avz --progress /Volumes/名称未設定/hogehoge rsync://user@192.168.X.X:/動画 sending incremental file list sent 223,279 bytes  received 302 bytes  89,432.40 bytes/sec total size is 1,638,954,826,338  speedup is 7,330,474.53 # ファイルの差異の表示はなくrsyncで同期は取れているようにに見える

macでhogehogeフォルダの情報をそれぞれ表示:総容量とファイル数が著しく異なる

/Volumes/名称未設定/hogehoge 1,638,954,826,338 バイト(1.64 TB)、6,867項目の合計 /Volumes/動画/hogehoge 1,549,484,611,690 バイト(1.55 TB)、3,751項目の合計

hogehogeフォルダ内のファイル数を比較:ファイル数が著しく異なる

/Volumes/名称未設定/hogehoge find . -type f | wc -l 6771 /Volumes/動画/hogehoge find . -type f | wc -l 3671

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Y.H.

2020/09/30 09:52

aliasなどでrsyncに--excludeオプションとか--exclude-fromオプションとか 設定されてたりしないですよね?
hobby2018

2020/09/30 10:44

はい、上記で記載したコマンドのオプションのみになります。 --excludeオプションとか--exclude-fromオプションは設定しておりません。
guest

回答4

0

ベストアンサー

まずはファイル数が異なっていることについて、ファイル名のリストをファイル化した上で両者を比較する必要があると思います。(もしファイルの中身のほうに違いがあったとしてもその検証については後回しです。)

/Volumes/名称未設定/hogehoge $ find . -type f | sort > localfiles.txt /Volumes/動画/hogehoge $ find . -type f | sort > remotefiles.txt $ diff localfiles.txt remotefiles.txt または $ diff -u localfiles.txt remotefiles.txt

コピー出来てないファイルについて何らかの傾向がわかれば原因について絞り込むことが出来るかもしれません。
(例を挙げると、一定サイズ以上のファイルがコピー出来ていないとか、日本語の濁点半濁点のついたファイル名が問題であれば「UTF8-MAC」関係の問題である可能性があるなど…。)

投稿2020/09/30 10:51

hidezzz

総合スコア1248

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hobby2018

2020/09/30 11:00

ありがとうございます。今、出先ですので帰宅後に確認してみます。
hobby2018

2020/10/01 16:06

ファイル数を確認して、差分ファイルを確認致しましたところ バビブベボなどの濁点半濁点などが入ったファイルが対象となっておりました。 これらは、UTF-8-MACの問題のようですので --iconv=UTF-8-MAC,UTF-8 オプションを追加で付けてドライランで差分を見たところ見事に差分が出て きました! それでその差分の物を再度同期させて、差分なし状態となりましたがまだnasの方にはコピーされていない濁点半濁点のファイルが多数ありました。 ローカルからローカルで一部のファイルで試すと問題なくコピーされます。 ローカルのrsyncのバージョンは、最新の3.2.3で、nasの中のrsyncのバージョンは3.1.3でした。 このバージョン違いが悪さをしているのか3.2.3の既存のバグなのか、はたまた私が感知していない未知のXなる原因があるのか現状ではわかりません。 しばらくして解決法が見つからなければ 同期は諦めてcpコマンドまたはnasのバックアップ機能でファイル取り込みを行おうと考えております。
hobby2018

2020/10/08 15:57

補足ですが、cp -a コマンドにて同じファイル数でコピーが完了しました。 rsyncを日本語ファイルに対して使う場合にはコピーされないファイルがある場合があることを このスレッドに残しておきます。
guest

0

はい、上記で記載したコマンドのオプションのみになります。

--excludeオプションとか--exclude-fromオプションは設定しておりません。

rsyncプロトコルなので、リモート側のrsyncd.confで[動画]を定義されてると思いますが
そこでもexcludeとかexclude fromで除外設定してませんか?

投稿2020/09/30 12:50

編集2020/09/30 12:51
Y.H.

総合スコア7914

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hobby2018

2020/10/01 13:57

このReadyNasは、SSHを有効にするとrootで入れました。。 rsyncd.conf を見てみるとread only = falseの設定だけが違うだけでした。 管理画面からは、確かに動画フォルダーのみに設定したので辻褄もあっています。 root@hnas:/etc# vi rsyncd.conf charset = utf-8 [動画] path = /data/動画 comment = 動画フォルダー use chroot = true uid = root gid = root read only = false #[文書] #path = /data/文書 #comment = 文書フォルダー #use chroot = true #uid = root #gid = root #[音楽] #path = /data/音楽 #comment = 音楽フォルダー #use chroot = true #uid = root #gid = root #[写真] #path = /data/写真 #comment = 写真フォルダー #use chroot = true #uid = root #gid = root
Y.H.

2020/10/01 14:05

設定に問題は無さそうですね…
hobby2018

2020/10/01 16:10

ローカルは3,2,3でリモートは3.1.3でしたのでバージョン違いが悪さしてるとか かもと思えてきました。
guest

0

ssh さらに --deleteオプション使ってどうでしょうか?

rsync -av --delete [--progress] /Volumes/名称未設定/hogehoge user@192.168.X.X:/動画

rsyncプロトコルを使うならバックアップ先のホスト名の後ろに
「:」は必要ないのでは?(「モジュール名」を設定するそうですよ)

https://mtaneda.hatenablog.com/entry/20100507/1273185919

ま、default remote shell が ssh でないなら、そのままでは無理ですが。

投稿2020/09/30 11:12

hana_yama_san

総合スコア923

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hobby2018

2020/10/01 15:56

--deleteオプションでは差分は出なかったです。 sshはrootのログインはできましたが以下のエラーが出て調べたらやや解消が 複雑そうなので試せておりません。 protocol version mismatch -- is your shell clean? (see the rsync man page for an explanation) rsync error: protocol incompatibility (code 2) at compat.c(604) [sender=3.2.3] モジュール名なのですね。「:」の有無しでは動作に違いはありませんでした。
hentaiman

2020/10/03 14:07

https://teratail.com/questions/295747 で低評価気にしているようなので一応理由書きますね。 --deleteは転送元に存在しないファイルが転送先に存在する場合に削除するというものです。 質問内容をよく読めば分かりますが、転送元の方が容量が多いので--deleteをつけても転送漏れのデータが転送される訳では無いという事が分かります。
hana_yama_san

2020/10/03 17:26 編集

そんなことは知ってます。低評価は気にしてません、 バンバンつけていただいて結構、
hana_yama_san

2020/10/03 17:25

と言うか、あなた真面目な人なのだから、 あんな変な議論(と言うか言い合い)に 参加しない方が良いですよ。 ※悪いのは私ですが・・
hana_yama_san

2020/10/03 18:18

一応言っておきます --delete オプションは念のため 切り分けで記載した物です。 まあどうでも良いですが、 回答者がそれなりに知恵を巡らせ(たかもしれない) コード対し短絡的に(--delete)不要とは言えないでしょうし、 切り分け上は無駄と判りつつも、使用必須ですよね。 まあどうでも良いですが・・・・
guest

0

rsync -avz --progress /Volumes/名称未設定/hogehoge rsync://user@192.168.X.X:/動画

/Volumes/名称未設定/hogehoge と、xxx/動画 の同期なんでは

投稿2020/09/30 09:19

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

quickquip

2020/09/30 09:35

転送元末尾にスラッシュがない時はそうではないです。
hobby2018

2020/09/30 10:48

そのコマンドにつきましては、動画フォルダの中にhogehogeフォルダを丸ごとコピーするといった動作になります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問