У меня есть исходная папка
источник /
-rw-r--r-- 1 27773 27773 12 Mar 23 21:41 aws-1
-rw-r--r-- 1 27773 27773 12 Mar 23 21:41 aws-2
папка назначения еще не существует. И я пробую к rsync 2 aws файла в папку назначения. Вот моя команда:
rsync \
--include="aws*" \
--exclude="*" \
-avh --chmod=a=rw "source/." "destination"
То, что я пытаюсь сделать, является к rsync 2 aws файлами, и измените их полномочия однажды в папке назначения. После выполнения команды я получил ошибку, и файлы не находятся в папке назначения. Только папка создается. Вот ошибка:
sending incremental file list
created directory destination
rsync: failed to modify permissions on "/home/cg/root/destination/.": Permission denied (13)
rsync: recv_generator: failed to stat "/home/cg/root/destination/aws-1": Permission denied (13)
rsync: recv_generator: failed to stat "/home/cg/root/destination/aws-2": Permission denied (13)
./
sent 88 bytes received 346 bytes 868.00 bytes/sec
total size is 24 speedup is 0.06
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1165) [sender=3.1.1]
Это говорит что разрешение, отклоненное, не копируя файлы. Я уже не понимаю который проблема причины разрешения. Мой исходный файл и каталог кажутся прекрасными. Созданная папка назначения кажется также прекрасной.
PS: Я точный моя команда rsync происхожу в сценарии удара
Каталоги должны выполниться, разрешение для процессов к доступу (открывают) их.
Когда Вы используете --chmod=a=rw
, целевой каталог создается, но затем сразу установил свои полномочия на drw-rw-rw
таким образом, что его содержание становится недоступным ("failed to stat
"), например, данный
$ tree
.
└── source
├── file1
├── file2
└── file3
1 directory, 3 files
затем
$ rsync --include="file*" --exclude="*" -avh --chmod=a=rw source/ destination/
sending incremental file list
created directory destination
rsync: failed to modify permissions on "/home/steeldriver/destination/.": Permission denied (13)
rsync: recv_generator: failed to stat "/home/steeldriver/destination/file1": Permission denied (13)
rsync: recv_generator: failed to stat "/home/steeldriver/destination/file2": Permission denied (13)
rsync: recv_generator: failed to stat "/home/steeldriver/destination/file3": Permission denied (13)
./
sent 107 bytes received 502 bytes 1.22K bytes/sec
total size is 0 speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1183) [sender=3.1.1]
сбои, потому что
$ ls -dl destination/
drw-rw-rw- 2 steeldriver steeldriver 4096 Mar 23 18:24 destination/
так, чтобы
$ ls -al destination/
ls: cannot access 'destination/.': Permission denied
ls: cannot access 'destination/..': Permission denied
total 0
d????????? ? ? ? ? ? .
d????????? ? ? ? ? ? ..
Решение состоит в том, чтобы использовать --chmod=a=rwX
(или, эквивалентно, --chmod=ugo=rwX
)
$ rsync --include="file*" --exclude="*" -avh --chmod=ugo=rwX source/ destination/
sending incremental file list
created directory destination
./
file1
file2
file3
sent 224 bytes received 110 bytes 668.00 bytes/sec
total size is 0 speedup is 0.00
где X
символьные средства режима
execute/search only if the file is a directory or
already has execute permission for some use
Посмотрите man chmod