Помогите с использованием rsync или cpio для создания инкрементной резервной копии

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

Я использую PuTTY для подключения через SSH к ReadyNAS 102, который имеет BusyBox v1.20.2 и использует Bash.

Я сам использовал:

find . -mtime -2 | cpio -cm /media/USB_FLASH_2

А потом попробовал:

find . -mtime -2 | cpio -o | { cd /media/USB_FLASH_2 && cpio -imd; }

который дал мне ошибку:

BusyBox v1.20.2 (Debian 1: 1.20.0-7) двоичный код с несколькими вызовами.

Использование: cpio [-dmvu] [-F FILE] [-H newc] [-tio] [EXTR_FILE] …

Извлеките или перечислите файлы из архива cpio или создайте архив, используя список файлов на stdin

Основной режим работы: -t List -i Extract EXTR_FILEs (или все) -o Создать (требуется -H newc) -d Сделать ведущие каталоги -m Сохранить mtime -v Verbose -u Overwrite -F FILE Input (-t, -i, -p) или output (-o) -H newc Archive format.

2 Solutions collect form web for “Помогите с использованием rsync или cpio для создания инкрементной резервной копии”

Большой! Rsync – ваш зверь, и он стоит кривой обучения (есть много вариантов). Я бы не стал беспокоиться о том, что ваша находка изменилась в течение последних двух дней , так как rsync будет проверять на предмет модификации (которая достигает более или менее того же уровня, сокращает то, что передается, и только копирует файлы, которые были обновлены по сравнению с назначением ).

 rsync -va srcdir destdir 

Я добавил -v только для подробностей, чтобы вы могли видеть, что происходит. если вы копировали удаленно (через Интернет на удаленный компьютер), то -progress покажет прогресс во время копирования каждого отдельного файла.

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

Дополнительные параметры зависят от ваших конкретных требований (следуйте ссылкам? И т. Д.). Я оставлю это вам, чтобы выбрать man rsync

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

Сводка параметров архива

 -a, --archive archive mode; equals -rlptgoD (no -H,-A,-X) -r recursive -l copy symbolic links as symbolic links -p preserve attributes -t preserve times -g preserve group -o preserve owner -D preserver devices (must be super user to work) 

Если вы копируете между машинами, тогда вам нужно учитывать синхронизацию времени или нечеткое совпадение времени, но вы копируете на SD-карту на одном компьютере, поэтому не нужно беспокоиться.

Если вы действительно хотите использовать find тогда rsync может взять список файлов из файла с --files-from в этом случае параметр -r (рекурсивный) в режиме архива не соблюдается.

find . -mtime 2 | rsync -av --files-from - srcdir destdir

Но, пожалуйста, прочитайте страницу руководства, так как --files-from имеет побочные --files-from , и я думал, что было слишком много для копирования в этот ответ.

Если ваш пункт назначения может быть обновлен в другом месте, вы можете добавить,

 -u, --update skip files that are newer on the receiver 

Мне не ясно, куда вы хотите, чтобы выход был выполнен, но:

 find . -mtime -2 | cpio -co > whatever.cpio 

Должно сработать. По-видимому -m "не имеет смысла с" -o (обратите внимание, что я не знаю, почему вы хотите -c здесь, но я оставил его). Если вы хотите, чтобы материал был зеркальным для каталога (т. Е. Никакого файла cpio), используйте -p вместо аргумента:

 find . -mtime -2 | cpio -mp /backup/path 
  • Удалите строки текста, которые заканчиваются на "/"
  • rsync «нет такого файла или каталога» при использовании шаблона
  • RSync - исключение конкретного подкаталога и его дочерних элементов, где подкаталог существует на разных уровнях
  • Исполняемый файл не «действительно существует» после rsync
  • Использование rsync + cron для синхронизации машины за брандмауэром с моим Dropbox
  • Разрешить ограниченный скрипт rsync (rrsync) для произвольных каталогов с авторизованными ключами
  • Файлы Rsync, исключая список
  • Создание первой резервной копии
  • копировать символические ссылки с помощью rsync
  • rsync на USB-накопитель, всегда передающий все данные
  • Почему две директории отличаются после синхронизации с rsync?
  • Linux и Unix - лучшая ОС в мире.