6月 132011
 
シェアする

 

rsyncを用いてファイルのバックアップを行なっている方は多いと思います。
差分のみを見てくれるので1分掛からずにバックアップが終了することがしばしばです。

この間、ServersMan@Diskというオンラインストレージサービス(webdav)をVPS上にマウントできる(smdiskというDTIが配布するバイナリがあれば、Linux環境からであれば何処からでもマウントできる)こととなり、VPSサーバ上にマウントしバックアップ用の領域としようとしたのですが、webdavで提供されているストレージスペースなので権限や所有者などの設定が出来ずに「rsync -a」を用いるとエラーというか警告が沢山表示されました。

そこで

オプション「a」ってなんて意味なんだろう

 

改めて確認してみようとなったわけで、ここにrsyncのオプション「a」を語ってみます。
基本的にコマンドのオプションの意味を調べるには素直に「man」コマンドに頼りましょう。

# man rsync

するとマニュアルが表示されます。英語です。
この方法を用いて確認した内容をもとに説明させていただきます。

オプション「a」の意味

オプション「a」は以下の動作を行ないます。
しかし、受け取り側のプログラムがroot権限で実行されていない場合には所有者やグループの保存は完全には出来ません

  • ディレクトリを再帰的にコピ
  • シンボリックリンクをシンボリックリンクとしてコピー
  • コピー元ファイルのパーミッションを保持
  • コピー元ファイルの変更時刻を保持
  • コピー元ファイルのグループを保持
  • コピー元ファイルの所有者を保持
  • デバイスファイル、特殊ファイルもコピー

 

各オプションの詳細は以下をご覧下さい。

オプション「a」の意味

-a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)

「a」は「archive」の頭文字だそうな。
オプション「a」は、オプション「rlptgoD」を使用するのと同じ意味。
ちなみにオプション「H,A,X」はオプション「a」の機能には含まれない。

オプション「r」の意味

-r, --recursive             recurse into directories

「r」は「recursive」の頭文字だそうな。
このオプションはディレクトリ内部を再帰的にコピーします。

オプション「l」の意味

-l, --links                 copy symlinks as symlinks

「l」は「links」の頭文字だそうな。
シンボリックリンクをシンボリックリンクとしてコピーします。

オプション「p」の意味

-p, --perms                 preserve permissions

「p」は「perms」の頭文字だそうな。
コピーされるファイルのパーミッションを保持します。

オプション「t」の意味

-t, --times                 preserve modification times

「t」は「times」の頭文字だそうな。
コピーされるファイルの変更時刻をそのままコピーします。

オプション「g」の意味

-g, --group
 This option causes rsync to set the  group  of  the  destination
 file  to  be the same as the source file.  If the receiving pro-
 gram is not running as the  super-user  (or  if  --no-super  was
 specified),  only groups that the invoking user on the receiving
 side is a member of will be preserved.  Without this option, the
 group  is  set  to the default group of the invoking user on the
 receiving side.

 The preservation of group information  will  associate  matching
 names  by  default,  but may fall back to using the ID number in
 some circumstances (see also the --numeric-ids option for a full
 discussion).

「g」は「group」の頭文字だそうな。
このオプションは、コピー元ファイルのグループをそのままそっくりコピーします。もし移動先でファイルを受け取るプログラムがroot権限で実行されていない(または –no-superオプションが指定されている)場合、移動先のプログラムを起動しているユーザのグループとなります。オプション「g」を使わない場合、移動先のプログラムを起動しているユーザのグループとなります。グループ名の合致はGIDで行なわず、まずはグループ名で行なうのがディフォルトです。

オプション「o」の意味

-o, --owner
 This option causes rsync to set the  owner  of  the  destination
 file  to be the same as the source file, but only if the receiv-
 ing rsync is being run as the super-user (see also  the  --super
 and  --fake-super  options).   Without this option, the owner of
 new and/or transferred files are set to the invoking user on the
 receiving side.

 The  preservation  of ownership will associate matching names by
 default, but may fall back to using the ID number in  some  cir-
 cumstances (see also the --numeric-ids option for a full discus-
 sion).

「o」は「owner」の頭文字だそうな。
このオプションは、コピー元ファイルの所有者をそのままそっくりコピーします。これは、ファイルを受け取る側のプログラムがroot権限で実行されている場合に限ります。オプション「g」を使わない場 合、移動先のプログラムを起動しているユーザの所有となります。所有者の合致はUIDで行なわず、まずは所有者名で行なうのがディフォルト です。

オプション「D」の意味

-D     The -D option is equivalent to --devices --specials.

「d」は「devices」と「specials」のオプションをあわせたものとのこと。

オプション「–devices」と「–specials」の意味

 --devices               preserve device files (super-user only)
 --specials              preserve special files

オプション「–devices」は、名前の通りデバイスファイルのコピーを行ないますが、root権限で実行している場合に限ります。
オプション「–specials」は、名前付きパイプや FIFO などの特殊ファイルをコピーします。

以上

このエントリーをはてなブックマークに追加

コメント大歓迎!質問も受け付けておりますヽ(*´∀`)ノ