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

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

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

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

Linux

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

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

Q&A

解決済

1回答

17286閲覧

rsyncがエラーになってしまいます。

退会済みユーザー

退会済みユーザー

総合スコア0

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

Linux

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

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

0グッド

0クリップ

投稿2017/04/10 08:10

編集2017/04/11 09:56

Windowsをメインに使っているので、とりあえずマニュアル通りにrsyncを使ってみましたが、エラーになってしまいます。

rsync.shというファイルの中にrsyncを記入して、Windowsでいうバッチファイルをコマンドラインからrsyncを叩いて起動しています。

rsync -avvv --progress --delete src dest

具体的には途中で止まってしまいます。エラーにならずにコピーできているファイルやフォルダもあります。

権限の関係でエラーになってしまっている気がしますが、自信はありません。

Ubuntuの環境によるエラーの気もしますが、やはり自信はありません。

sudo rsyncとしてみたり、--chmod=a+rwx をつけてみましたが、同じように失敗します。

最高権限で実行しているのに、環境変数?などの設定により、実際は最高権限にならないことがLinuxではあるようですが、それが原因かもしれません。

エラーにならなかったファイルと、エラーになったファイルの権限をlsコマンドで調べてみましたが、いずれも同じ権限のようです。

ls -l success.txt
ls -l erorr.txt

-rw-rw-r-- 1

よろしくお願いします。

追記

エラーメッセージはなにも表示されません。途中で止まってしまいます。

しかたなくコマンドラインをCtrl+Cで停止すると、そこでエラーメッセージはでます。

コピー元のフォルダによっては、エラーは起こらずに正常に終了することもありますが、そのときにコマンドラインをCtrl+Cで停止したときに表示されるエラーメッセージは下記のようになります。
rsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at io.c(504) [generator=3.1.1]

途中で止まってしまうコピー元のときに、Ctrl+Cで停止したときに表示されるエラーメッセージは下記のようになります。
rsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at rsync.c(632) [sender=3.1.1]

ちなみに、オンラインではなく、ローカルからローカルのにコピーしています。

追記2

[receiver] send_msg_int(100, 152)
recv_files(/error/error.txt.gif)
[generator] send_msg(3, 90)
rsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at io.c(504) [generator=3.1.1]
[generator] _exit_cleanup(code=20, file=io.c, line=504): about to call exit(20)
[generator] send_msg_int(86, 20)
[sender] send_msg(86, 0)

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

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

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

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

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

CHERRY

2017/04/10 08:54

どのようなエラーメッセージが表示されるのでしょうか? 正確なエラーメッセージを質問文に追記していただけないでしょうか。
退会済みユーザー

退会済みユーザー

2017/04/10 09:48

エラーメッセージはなにも表示されません。途中で止まってしまいます。
otn

2017/04/10 12:55

「止まっている」とは、何を以てそう思いましたか?
TaichiYanagiya

2017/04/10 15:48

差分の計算に時間がかかっているだけではないでしょうか。rsync コマンド実行中に別の端末(シェル)から top コマンドを実行すると、CPU 使用率で rsync が上位にありませんでしょうか。
退会済みユーザー

退会済みユーザー

2017/04/11 07:36

> 「止まっている」とは、何を以てそう思いましたか? 特定の100KBぐらいの軽いファイルが1時間以上放置しても、進まないことから判断しました。あと「-avvv --progress」などオプションをつけているので、進行状況がリアルタイムで表示されています。
退会済みユーザー

退会済みユーザー

2017/04/11 07:38

>rsync コマンド実行中に別の端末(シェル)から top コマンドを実行すると、CPU 使用率で rsync が上位にありませんでしょうか。 ありませんでした。タスクマネージャーで確認してみると、rsyncはありましたが、下の方にあり900KiBぐらいの使用量になっていますが、
退会済みユーザー

退会済みユーザー

2017/04/11 07:38

よろしくお願いします。
退会済みユーザー

退会済みユーザー

2017/04/11 07:39

>差分の計算に時間がかかっているだけではないでしょうか。新規なのでおそらく差分の計算はないと思います。
退会済みユーザー

退会済みユーザー

2017/04/11 07:42

エラーメッセージは質問文以外には出ていなくて、見た目はフリーズしたような感じですが、Ctrl+Cで停止することはできるので、フリーズでもないと思います。
退会済みユーザー

退会済みユーザー

2017/04/11 08:05

何度もすみません。訂正です。あと「-avvv --progress」などオプションをつけているので、「通常は」進行状況がリアルタイムで表示されています。
TaichiYanagiya

2017/04/11 08:44

何かの入力待ちになっているのでしょうか。うまくいく場合と止まる場合とで、シンボリックリンク、デバイスファイル、ソケットファイル、/proc などの仮想ファイルシステムの有無など、何か違いはないでしょうか。また、"--debug=ALL" オプションを付けると何か手がかりを得られるかもしれません。
退会済みユーザー

退会済みユーザー

2017/04/11 09:54

ありがとうございます。"--debug=ALL" オプションを付けてみましたが、ほとんどかわりません。Ctrl+Cで停止したときに表示されるエラーメッセージをすべて追記に記入してました。どのようにすれば、うまくいくでしょうか?
退会済みユーザー

退会済みユーザー

2017/04/11 09:56

よろしくお願いします。
退会済みユーザー

退会済みユーザー

2017/04/12 07:21 編集

追加ですが、Linuxのことはよくわかりませんが、途中で止まってしまう場合、ファイル名やフォルダ名がとても長かったり、ファイル名にスペースが入っているという特徴があるような気がします。USBメモリーからUSBメモリーへのコピーでも、rsyncの仕様などにより、問題になる場合があるのでしょうか?
guest

回答1

0

ベストアンサー

recv_files(/error/error.txt.gif)

ここで停止して、Control-C を入力することで、

[generator] send_msg(3, 90)

以降が表示されるということで合っていますでしょうか。

また、

recv_files(/error/error.txt.gif)

ここは手元の環境では相対パス(先頭の / が無い)になるのですが、sample01 さんの環境では絶対パスになっています。
また、ファイル名は error.txt なのか、error.txt.gif なのか。

コピー元、コピー先のファイル、ディレクトリ構造がどうなっているのか(ls -lR など)、実際のコマンド引数(src, dest)はどうなのか、再現できる情報を開示くださいませんでしょうか。


(2017/04/12 19:00) 追記

コピー元もコピー先も USBメモリーなのですね。
ファイルシステムは何でしょうか?

(1) ローカルディレクトリ→ローカルディレクトリではどうなるのか
(2) USBメモリー→ローカルディレクトリではどうなるのか
(3) ローカルディレクトリ→USBメモリーではどうなるのか

を調べることにより、原因の絞り込みができるのではないかと思います。
ファイルシステムに問題があるのか、USBメモリーへの I/O 自体に問題があるのか、など。
フォルダ名、ファイル名の長さや、スペースを含むファイル名の場合、ということであれば、ファイルシステムに原因があるのかもしれません。

もし、ファイルシステムが FAT など、オーナー、グループ、パーミッション情報が保持されないものであれば、ローカルディレクトリ→USBメモリーは rsync よりも tar アーカイブで持たせた方がいいと思います。


(2017/04/13 00:03) 追記
USBメモリーも Ext4 なのですね。
Control-C で中止した後のメッセージについては、正直わかりません。
ローカルディレクトリ→ローカルディレクトリでも停止するということは、OS の I/O に問題があるのか、それとも、ファイル自体に原因があるのか ...

  • 再確認ですが、rsync 実行中の "ps aux" の STAT は? "D" だと実行中(I/O 待ち)です。
  • /var/log/syslog に何かエラーが出ていないでしょうか。
  • rsync ではなく、"cp -afv $src $dest" でも停止しますでしょうか。

sample01 さんの環境でしか発生しないようですので、Q&A では解決できないかもしれません。

投稿2017/04/12 05:31

編集2017/04/12 15:03
TaichiYanagiya

総合スコア12141

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

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

退会済みユーザー

退会済みユーザー

2017/04/12 06:51 編集

ありがとうございます。 >以降が表示されるということで合っていますでしょうか。 ちがいます。説明不足で申し訳ありません。 途中でフリーズしたように止まるとは、こんな感じです。 例1 test/test/test/test/test/test/test/test.js 32,768 26% 500.00kB/s 0:00:00 例2 test/test/test/test/test/test/test/test.js 32,768 33% 86.72kB/s 0:00:00 この状態からるCtrl+Cで停止すると、追記のようになります。 > また、ファイル名は error.txt なのか、error.txt.gif なのか。 ファイル名はerror.gifです。これはファイル名を直接ココに書くわけには行かないので、適当に変更しただけです。 >コピー元、コピー先のファイル、ディレクトリ構造がどうなっているのか(ls -lR など)、 こんな感じです。 うまく行かないディレクトリは、ホームページを保存したディレクトリです。ホームページとは、https://teratail.com/questions/71987のようなページであったり、自分で作成したhtmlファイルなどです。 それ以外のUbuntuのイメージファイルなどは、時間は少々かかりますが、正常にコピーできます。 usbmemoryはUSBポートからさしている普通のUSBです。 コピー元 /media/username/usbmemory/html/webite コピー先 /media/username/usbmemory/backup > 実際のコマンド引数(src, dest)はどうなのか、再現できる情報を開示くださいませんでしょうか。 rsync -avvv --progress --delete --debug=ALL --exclude 'lost+found' --exclude '.Trash-1000' $dest $src $dest と$srcには絶対パスを入れています。 よろしくお願いします。
退会済みユーザー

退会済みユーザー

2017/04/12 06:55

rsyncとtarの信頼性や用途のちがいを調べましたが、よくわかりません。tarは書庫になるとか、そういうことはわかりますが、アイルレベルでのバックアップの時には、現場ではどちらが多く使われているのかなどはわかりませんでした。 信頼性が高いコマンドなら、rsyncでなくてもよいのですが、tarのほうがrsyncより信頼性は高いでしょうか? よろしくお願いします。
退会済みユーザー

退会済みユーザー

2017/04/12 11:41 編集

何回もありがとうございます。 >コピー元もコピー先も USBメモリーなのですね。 おっしゃるとおりです。 >ファイルシステムは何でしょうか? USBメモリーはExt4なっています。Ubuntuをインストールした内臓のHDDは、デフォルトの設定でやっていますが、/dev/sda1はFAT (32 ビットバージョン)、/dev/sda2はExt4 (バージョン 1.0)、/dev/sda3はSwap (バージョン 1)となっています。 >を調べることにより、原因の絞り込みができるのではないかと思います。 すべて調べてみました。 何度も申し訳ありませんが、よろしくお願いします。
退会済みユーザー

退会済みユーザー

2017/04/12 11:48 編集

ローカルはデスクトップです。 すべてのパターンで途中でフリーズしたように止まったので、Ctrl+Cで停止した結果です。 (1) ローカルディレクトリ→ローカルディレクトリではどうなるのか [generator] send_msg(3, 90) rsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at io.c(504) [generator=3.1.1] [generator] _exit_cleanup(code=20, file=io.c, line=504): about to call exit(20) [generator] send_msg_int(86, 20) [sender] send_msg(86, 0) (2) USBメモリー→ローカルディレクトリではどうなるのか [receiver] send_msg_int(100, 320) [generator] send_msg(3, 90) rsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at io.c(504) [generator=3.1.1] [generator] _exit_cleanup(code=20, file=io.c, line=504): about to call exit(20) [generator] send_msg_int(86, 20) [sender] send_msg(86, 0) (3) ローカルディレクトリ→USBメモリーではどうなるのか [receiver] send_msg_int(100, 97) recv_files(error/error/error/error.gif) [generator] send_msg(3, 74) rsync: [receiver] write error: Broken pipe (32) [receiver] got msg=0, len=41717 rsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at io.c(504) [receiver=3.1.1] [receiver] _exit_cleanup(code=20, file=io.c, line=504): about to call exit(20) [receiver] send_msg_int(86, 20) rsync: [sender] write error: Broken pipe (32) (4) USBメモリー→USBメモリーではどうなるのか [receiver] send_msg_int(100, 151) recv_files(error/error/error/error.gif) [generator] send_msg(3, 90) rsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at io.c(504) [generator=3.1.1] [generator] _exit_cleanup(code=20, file=io.c, line=504): about to call exit(20) [generator] send_msg_int(86, 20) [sender] send_msg(86, 0)
退会済みユーザー

退会済みユーザー

2017/04/13 08:06

ありがとうございます。 > USBメモリーも Ext4 なのですね。 おっしゃるとおりです。 >再確認ですが、rsync 実行中の "ps aux" の STAT は? "D" だと実行中(I/O 待ち)です。 ps auxの結果をファイルに書き出して検索すると、rsyncの行は3つありますが、"D"ではなく、すべてS+になっています。 >/var/log/syslog に何かエラーが出ていないでしょうか。 syslogというフォルダはありませんが、/var/log/syslogというファイルはありますが、本日の日付になっているファイルを開いてrsyncで検索しても何も見つからないので、rsyncという文字列は含まれていないようです。 >rsync ではなく、"cp -afv $src $dest" でも停止しますでしょうか。 時間がかかるのですべてのデータを試したわけではありませんが、一番問題がありそうなディレクトリに対して、"cp -afv $src $dest"だと、うまくコピーできます。 素人的な考えにはなりますが、ファイルの権限が絡んでいるような気がするのですが、どうでしょうか? rsyncでやりたいと思っていますが、tarも差分ができるようですが、今回のような用途で使う場合、rsyncとtarではどちらがよいか理由も添えて教えていただけると助かります。 よろしくお願いします。
TaichiYanagiya

2017/04/13 13:03

> "cp -afv $src $dest"だと、うまくコピーできます。 ということは、I/O もファイル自体にも問題はなく、rsync に問題があるのかもしれません。 こちらの環境では再現できないですし、ログも出ないようですので、これ以上の調査は難しいと思います。
退会済みユーザー

退会済みユーザー

2017/04/19 12:20

遅くなってしまいましたが解決できました。 別のパソコンで起動ディスクを作ってUbuntuを動かしましたが、ローカルとリモートのすべての組み合わせで、そのパソコンでも途中で止まってしまいエラーになりました。 難しいことはわからないので、素人的な発想にはなりますが、オプションをいろんな組み合わせで実行してみました。 その結果、vオプションが3つのときだけエラーになり、0〜2のときは、エラーになりませんでした。 vオプションなしときは、途中経過が表示されないので、止まっているように見えますが、コピー先のフォルダのプロパティのを見ると、容量がどんどん増えているので、順調と判断しました。 vオプション3つのときは、止まっているように見えるだけかと思いましたが、コピー先のフォルダのプロパティのを見ると、容量がまったく増えていないので、止まっていると判断しました。 非常にい初歩的な部分だとは思いますが、この判断は正しいでしょうか? 初心者なのでこれまでの作業は大変でしたので、なぜこのようになったかも理解しておきたいので、考えられる理由を教えていただければ幸いです。 よろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問