rsyncエラー:ファイルのコピー元とコピー先のファイル名が一致せずエラーが発生する

このQ&Aのポイント
  • rsyncを使用してデータのバックアップをしている際に、ファイル名の一部が大文字のままコピー先で小文字になり、エラーが発生しています。本記事では、このエラーの原因と解決策について説明します。
  • ファイルのコピー元とコピー先のファイル名は、大文字と小文字を区別する仕様を持っています。そのため、コピー元のファイル名に大文字が含まれている場合、コピー先では全てが小文字に変換されます。これがエラーの原因となります。
  • このエラーを回避するためには、コピー元のファイル名に含まれる大文字をコピー先でも大文字のまま保つ必要があります。また、ファイルシステムの設定やOSのバージョンによっても挙動が異なる場合があるため、注意が必要です。
回答を見る
  • ベストアンサー

rsyncのエラー

rsyncでデータのバックアップをとっているのですが、次のようなエラーが出ています。  rsync: mkstemp "ファイル名" failed: No such file or directory (2)  rsync: stat "ファイル名" failed: No such file or directory (2) そこで、エラーメッセージの中のファイル名をもとに、そのコピー元とコピー先のファイルを調べてみました。 すると、コピー元のファイルの絶対パス名の中に大文字だけのフォルダ名やファイル名が含まれていると、コピー先でその名前の部分が全部小文字になっていて、それがエラーの原因のようです。 例えば、コピー元の絶対パス名が   /?????/AAA/BBBcc/ddd だとすると、コピー先では   /?????/aaa/BBBcc/ddd となっています。 どうすれば、大文字のままコピーできて、エラーが出なくなるのでしょうか?? OSはFedora Core 3です。 「rsync --version」によると、   rsync version 2.6.3 protocol version 28 です。 コピー先は外付けのUSBハードディスクで、fat32フォーマットです。 どうすればいいのでしょうか? よろしくお願いいたします。

  • apll
  • お礼率27% (54/193)

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

mount からやり直し.

参考URL:
http://blog.cles.jp/item/2926
apll
質問者

お礼

教えていただいたようにmountの設定を変えたら、解決しました。 ありがとうございました!

関連するQ&A

  • 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です。

  • rsync のエラーについて

    vinelinux5.2で、バックアップ処理をしています。 nasが2台ありメーカーが違うこともあり、仲介をvineにしてもらっています。 その時に、エラーが出ているのですが意味がわからず対応できません。 すみませんが、内容を御存知の方、対応方法を教えてください。 エラーメッセージ rsync: recv_generator failed to stat "ファイル名" invalid argument (22)

  • 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 はどのように設定すればいいのでしょうか。 ################################# よろしくお願いします。

  • 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で検索しても出てきませんでした。 よろしくお願いします。

  • 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の動作について

    CentOS6を使用しています Windows版のTerastationをCentOS6のサーバーにマウントし、 rsync -avを使って CentaOS6のデータをTerastationにバックアップを取ろうとしているのですが Permission denied (13) と表示されます。 この場合バックアップ元とバックアップ先の所有者が違うからだということでしたので、 所有者を同じになるよう変更しました ここでちょっとわからないことがあるのですが、 所有者を変更したディレクトリのなかの、ディレクトリやファイルは、 変更しないでも同期になりますか? よろしくお願いします

  • rsyncを使ったバックアップの方法

    WEBデザイナーをしています。 日々の制作データを別マシンにバックアップをとる方法として、 Windows環境にCygwinをインストールして、rsyncを使って、 バックアップをとろうとしています。 やりたいことは、作業マシン(コピー元)から、別マシン(コピー先)に 日々バックアップをとる。さらに、その日に変更された差分ファイルのみ、 別フォルダに保存したいのです。 つまり、作業マシンと、バックアップ先は常に同期がとれていて、 その日変更されたファイルは、同期がとる直前の差分ファイルのみを、 その日時をフォルダ名としたフォルダに保存する。 UNIXについての知識がなく、rsyncのサイトをかいつまんだ知識しか ありません。上記のことができるのか、どうすればできるのか、 をおしえていただきたいのです。

  • rsyncをPHPで行いたいのですが、

    いつもお世話になっております。 rsyncをPHPのexecコマンドから行いたいと思っているのですが、 現状、コピー元のサーバー、コピー先のサーバーともroot権限が無い状態ですので、 公開鍵、秘密鍵を作ることができない状況です(root権限無かったら作れないですよね?)。 なので、sshでpassを聞かれても良いのでrsyncを実行しようと思うのですが、 passを聞かれる場合でもPHPのexecコマンドからrsyncを実行することはできますでしょうか? 色々サイトを見ても鍵を生成してパスワードを省略することしか記載されていないので。 ご教授お願いします。

    • ベストアンサー
    • PHP
  • 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へ同期を取りたいです。 色々と調べているのですが、糸口が掴めない状態です。 どなたかお分かりになられればご教示頂きたいです。 よろしくお願い致します。

  • rsyncのPermission denied

    CentOS6.3にて rsync -avvz root@172.30.1.21:/mnt/iptables/ /mnt/nas/iptables/ を実行しました。ログとして以下のものが出力されました。 <ログ> opening connection using: ssh -l root 172.30.1.21 rsync --server --sender -vvlogDtprze.iLs . /mnt/iptables/ root@172.30.1.21's password: receiving incremental file list delta-transmission enabled (1)rsync: chgrp "/mnt/nas/iptables/." failed: Permission denied (13) <質問1> (1)の意味がわからないのですが、rsyncは何をしようとしてなぜパーミッションエラーが出ているのでしょうか?  ・root@172.30.1.21:/mnt/iptables/ は、別サーバのNFSをマウントしています。  ・/mnt/nas/iptables/ は、NASドライブをcifstestユーザでマウントしています。  【コマンド:mount -t cifs //NASのIP/cifs/ /mnt/nas/iptables/ -o username=cifsuser,iocharset=utf8,codepage=932】  (NASにrootユーザが作れなかったため)  ・rsync実行時は、rootユーザー。 になります。 <質問2> ただ、パーミッションエラーが出てたのですが、以下ログが出力されており、 データのコピーが完了していました。 total: matches=0 hash_hits=0 false_alarms=0 data=3999447313 sent 546 bytes received 493957830 bytes 1123909.84 bytes/sec total size is 3999426304 speedup is 8.10 rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1505) [generator=3.0.6] ためしにコピーされた一つのコピー元ファイル と コピー後のデータをdiffしてみた所 エラーも出ませんでした。サイズも一緒。 これは正しくコピーできていると信じていいのでしょうか? ご教授おねがいします。