Локальные rsync управляют для получения sub-sub-subdirectory /

Задача проста: создайте резервное копирование /usr/local/bin и файлы в нем, и хранят информацию пути.

Следующие работы, но я действительно не понимаю то, что я сделал. Я заметил, что порядок на включение и исключает, может быть важным. Кроме того, "/usr /*" не может быть заменен "*".

# --dry-run is for convenience.
rsync --dry-run -aczvAXHS --progress \
  --include="/usr/local" \
  --exclude="/usr/*" \
  --include="/usr/local/bin" \
  --exclude="/usr/local/*" \
  /usr \
  backup/folder

Кто-либо может объяснить какой-либо лучший способ выполнить эту задачу?

---ОТРЕДАКТИРОВАННЫЙ ДЛЯ ДОБАВЛЕНИЯ---

Как указано в комментариях, вопрос, возможно, был более точным. Ответ, предоставленный здесь, как ожидают, будет работать в контексте 'архива, из которого некоторые выбирают [sub-sub-sub] папки /.

0
задан 9 December 2015 в 02:36

3 ответа

Следующее, кажется, работает приятно для списка файлов и папок, нуждающихся в архивировании за исключениями, остающимися возможным:

find  \
"/usr/local/bin" \
"/var/www/owncloud/themes/mytheme" \
"/usr/share/cowsay/cows" \
! -path "/var/www/owncloud/themes/mytheme/core/css*"

, Что команда может тогда быть выполнена следующим образом и передана по каналу к rsync:

find  \
"/usr/local/bin" \
"/var/www/owncloud/themes/mytheme" \
"/usr/share/cowsay/cows" \
! -path "/var/www/owncloud/themes/mytheme/core/css*" \
-print0 | \
sudo rsync -0aczvAXHS --progress --files-from=- / "Backups/folder"
0
ответ дан 26 July 2019 в 13:56

Можно использовать -R опция. От man rsync:

-R, - родственник

относительные пути Использования. Это означает, что имена полного пути, определенные на командной строке, отправляются на сервер, а не просто последние части имен файлов.

Пример:

% rsync -acvzRAHSX /usr/local/bin/ out_dir/ 
sending incremental file list
/usr/
/usr/local/
/usr/local/bin/
/usr/local/bin/foobar
/usr/local/bin/spamegg


% tree 
.
└── out_dir
    └── usr
        └── local
            └── bin
                ├── foobar
                └── spamegg


% tree /usr/local/bin 
/usr/local/bin
├── foobar
└── spamegg
1
ответ дан 26 July 2019 в 13:56

Иначе должен позволить rsync чтение в списке файлов и синхронизация от /:

find /usr/local/bin -print0 | rsync --dry-run -0acvzRAHSX --files-from=- / backup/folder

find -print0 и rsync -0 имена файлов использования, разделенные nul символом - самый безопасный способ обработать имена файлов от входа.

0
ответ дан 26 July 2019 в 13:56

Другие вопросы по тегам:

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