PCのファイルをcygwinのrsyncを使ってNASに同期しようとしてちょっとはまりました。
Vistaのファイルシステムには、NTファイルシステムと互換を保つためのスペース入りのディレクトリがあります。コマンドプロンプトからは見えないのですが、cygwinのbashからは見えてアクセス権限が微妙に複雑です。Vistaの管理権限と合わせると、もう正直言って理解不能です。
コマンドプロンプトで見ると次のようにとてもシンプルに見えます。
C:\>dir C:\ のディレクトリ 2007/11/08 23:00 <DIR> Program Files 2007/05/29 01:22 <DIR> Users 2007/11/08 23:13 <DIR> Windows C:\>
しかし、cygwinのbashでは、次のように見えます。
total 4483702 drwx------+ 8 Administrators ???????? 4096 May 29 01:23 $Recycle.Bin -r-x------+ 1 SYSTEM SYSTEM 8192 Jan 27 2007 BOOTSECT.BAK drwxrwx---+ 26 ???????? ???????? 4096 Jan 27 2007 Boot d--------- 2 ???????? ???????? 0 Nov 8 23:12 Config.Msi dr-xr-xr-x+ 2 Administrators ???????? 4096 May 29 01:22 Documents and Settings dr-xr-x---+ 51 ???????? ???????? 12288 Nov 8 23:00 Program Files drwx------+ 20 Administrators ???????? 4096 Nov 5 00:54 ProgramData d--------- 2 ???????? ???????? 0 Nov 9 22:56 System Volume Information dr-xr-xr-x+ 9 Administrators ???????? 4096 May 29 01:22 Users drwxrwx---+ 60 ???????? ???????? 24576 Nov 8 23:13 Windows -rwxrwx---+ 1 Administrators Administrators 24 Sep 19 2006 autoexec.bat -r-xr-x---+ 1 ???????? ???????? 438840 Nov 2 2006 bootmgr -rwxrwx---+ 2 Administrators Administrators 10 Sep 19 2006 config.sys ---------- 1 ???????? ???????? 2138431488 Nov 8 23:12 hiberfil.sys ---------- 1 ???????? ???????? 2452357120 Nov 8 23:12 pagefile.sys
C:\Usersは、アクセスできるのにC:\Documents and Settingsは、権限不足になります。C:\Documents and Settings\ユーザにはアクセスできるのでなんだかよく分からない….
$ ls /cygdrive/c/Users All Users Default Default User Public desktop.ini vistauser $ ls /cygdrive/c/Documents\ and\ Settings/ ls: cannot open directory /cygdrive/c/Documents and Settings/: Permission denied $ ls /cygdrive/c/Documents\ and\ Settings/vistauser AppData Application Data ... 以下 vistauserのホームディレクトリのファイルが続く ... $
rsyncで同期するときにC:\Documents and Settingsからアクセスするとなぜか失敗してしまいC:\Usersに変えたら動きました。なんとなく、すっきり理解できていませんが、正直、理解する気持ちが…
しかも、定期的に実行する場合、cronはSYSTEMユーザで起動されるので、さらに混沌とします。もう、無理かも…
Vistaのタスクでやってみるかな。