rsync игнорируют владельца, группу, время и перманент

То, что Вы ищете, /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport. Это - двоичная команда, в которую у меня есть symlinked /usr/local/bin/ для удобства.

Создание символьной ссылки:

sudo ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/local/bin/airport

Пример сниффинга в режиме монитора:

sudo airport en1 sniff 1

Это осуществляет сниффинг на канале 1 и сохранило файл получения pcap к /tmp/airportSniffXXXXXX.pcap (где XXXXXX будет варьироваться). Можно просмотреть это с tcpdump -r <filename> или путем открытия его в wireshark.

Для поиска активных каналов поблизости, что можно осуществить сниффинг выполните это:

sudo airport en1 -s

Хотя можно получить любой трафик, можно только эффективно читать, если сеть открыта, или у Вас есть ключ шифрования.

72
22.11.2013, 15:27
6 ответов

Я думаю, что можно использовать -no- опции к rsync для НЕ копирования владения или полномочий файлов, Вы - sync'ing.

Выборка Из rsync Страницы справочника

--no-OPTION
       You may turn off one or more implied options by prefixing the option 
       name with "no-".  Not all options may be pre‐fixed  with  a  "no-":  
       only options that are implied by other options (e.g. --no-D, 
       --no-perms) or have different defaults in various circumstances (e.g. 
       --no-whole-file, --no-blocking-io, --no-dirs).  You may specify 
       either the short or the long option name after the "no-" prefix (e.g. 
       --no-R is the same as --no-relative).

       For example: if you want to use -a (--archive) but don’t want -o 
       (--owner), instead of converting -a into -rlptgD, you could specify 
       -a --no-o (or -a --no-owner).

       The order of the options is important:  if you specify --no-r -a, the 
       -r option would end up being turned on,  the opposite  of  -a  
       --no-r.   Note  also  that the side-effects of the --files-from 
       option are NOT positional, as it affects the default state of several 
       options and slightly changes the meaning of -a (see the  --files-from
       option for more details).

Владение и Полномочия

Просмотр страницы справочника, я полагаю, что Вы хотели бы использовать что-то вроде этого:

$ rsync -avz --no-perms --no-owner --no-group ...

Для удаления файлов, которые не существуют, можно использовать --delete переключатель:

$ rsync -avz --no-perms --no-owner --no-group --delete ....

Метки времени

Что касается метки времени я не вижу способ сохранить это, не изменяясь, как Вы сделали бы сравнение ИСТОЧНИКА по сравнению с файлами DEST. Вы могли бы хотеть сказать rsync проигнорировать метки времени с помощью этого переключателя:

-I, --ignore-times
       Normally  rsync will skip any files that are already the same size 
       and have the same modification timestamp.  This option turns off this 
       "quick check" behavior, causing all files to be updated.

Обновление

Для меток времени, --no-times мог бы сделать то, что Вы ищете.

98
27.01.2020, 19:31
  • 1
    при использовании - без времен я все еще вижу много файлов (с перечисленными изменениями) отмеченное использование >f..T... который предполагает, что fileflags и время изменения устанавливаются на месте назначения, которое является тем, чего я стараюсь избегать. –  Michael 09.12.2015, 06:10

Я думаю, что легче избежать-a опции

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

и набор только опции делают Вы хотите.

Если Вам нравятся все опции, но не модификации пользователя-o, группа-g, время-t и полномочия-p, таким образом, Вы могли вычесть эти четыре опции из эквивалентного архива.

$ -rlD

Для удаления файлов на месте назначения, используйте опцию - удаляют.

К Вашему вопросу: Но я думаю, что все файлы будут проверены - rsync, не может передать/проверить только файлы, которые изменились только содержанием.

18
27.01.2020, 19:31

Я думаю, что вы ищете опцию

rsync -r --size-only

из страницы man:

--size-only
   This  modifies  rsync’s  "quick  check"  algorithm  for finding files that need to be transferred,
   changing it from the default of transferring files  with  either  a  changed  size  or  a  changed
   last-modified  time  to  just  looking  for  files that have changed in size.  This is useful when
   starting to use rsync after using another mirroring  system  which  may  not  preserve  timestamps
   exactly.

Если вы действительно хотите удалить файлы, отсутствующие в исходном каталоге, используйте --delete

8
27.01.2020, 19:31

Вы можете заставить rsync игнорировать проверки на основе времени модификации файла и его размера и использовать подход на основе chksum с переключателем «-c».

-c, --checksum              skip based on checksum, not mod-time & size

Это означает, что ему необходимо сравнивать весь файл по частям (и передавать соответствующие метаданные между источником и местом назначения, чтобы это произошло) независимо от того, совпадают ли время и размер файла, но будет передавать только фрагменты, которые различаются в зависимости от источника и назначения.

Использование этого переключателя в сочетании с другими переключателями, предложенными другими, должно ограничивать то, что копируется (копирование только того, что было изменено), и имеет преимущество выполнения проверки согласованности между источником и местом назначения, НО это занимает больше времени в зависимости от вашего скорость связи, так как он должен разбивать фрагменты файлов с обеих сторон и сравнивать).

6
27.01.2020, 19:31

Команда ниже будет работать отлично, я тестировал ее для своих нужд, потребуется только изменение содержимого.

rsync -acvzh source/ destination/
-3
27.01.2020, 19:31

У нас была ситуация, когда изменения rsync приводили к сбросу вещей в дальнейшем, что было желательно только в том случае, если содержимое файла изменилось, а не если к нему просто прикоснулись.

Оказалось, что --ignore-timesне работает для этого сценария, но указание rsync быть более снисходительным в отношении равенства двух временных меток сработало. Разница в миллиард секунд составляет около 31 года, что подходит для нашего использования.

rsync --archive --itemize-changes --modify-window=1000000000 --delete-after A B

(--перечислить -изменения, чтобы иметь возможность подсчитывать изменения и пропускать их, если их нет)

1
04.11.2021, 12:51

Теги

Похожие вопросы