У меня есть каталог под названием my_projects_linux
внутри файловой системы Ubuntu, в котором содержатся все мои работы за многие годы. Каталог содержит файлы, подкаталоги и т. Д.
В целях резервного копирования я иногда копирую этот каталог и все его содержимое на внешний жесткий диск.
Следовательно, содержимое моего внешнего диска выглядит следующим образом:
/mounted_drive/my_projects_linux
/mounted_drive/my_projects_windows # the same idea to backup Windows work
Следовательно, я ищу команду, которая:
будет работать как
cp /home/my_projects_linux /mounted_drive/my_projects_linux
Он должен заменить старые файлы, подкаталоги, файлы внутри подкаталогов и т. Д. На внешнем диске новым содержимым с моего ПК.
Будь быстрым . Следует копировать только измененные файлы или только что созданные. Учитывая, что размер my_projects_linux
составляет> 50 ГБ, копирование всего занимает более часа, что слишком медленно. В действительности часто с момента последнего резервного копирования менялось всего несколько МБ, поэтому теоретически копия может быть сделана намного быстрее.
Как это сделать?
Я гуглил, что cp с флагом -u
может соответствовать моим потребностям. Будет ли это работать (например, будет ли оно правильно обрабатывать подкаталоги подкаталогов)?
Кроме того, является ли хранение файловой системы на внешнем диске подходящим способом создания резервной копии, или есть более причудливый способ? Например, используя облако? Обратите внимание, что более изощренный способ должен быть простым, так как в противном случае он не перевесит легкость выполнения одной команды оболочки.
Вы - вид описания, что rsync
было разработано для. От man rsync
:
Rsync finds files that need to be transferred using a "quick
check" algorithm (by default) that looks for files that have
changed in size or in last-modified time. Any changes in the
other preserved attributes (as requested by options) are made on
the destination file directly when the quick check indicates
that the file’s data does not need to be updated.
существует также много пустой болтовни о сетях, но это - счастливое выполнение, локальное также.
По существу все, в чем Вы нуждаетесь:
rsync -rtv /home/my_projects_linux /mounted_drive/my_projects_linux
существует тонна доступных опций, но -rtv
будет синхронизировать recursively, оставаясь timecodes то же, будучи verbose о том, что это делает.
Я знаю, что этот вопрос уже имеет принятый ответ. Однако я хотел добавить кросс-платформенное решение GUI, поскольку я вижу, что Вы также используете окна. Я использую в тех же целях Freefilesync. Это - также ВЫШИВАЛЬНЫЙ ШЕЛК.
конфигурация абсолютно интуитивна, и можно сохранить различные рабочие места синхронизации.
существует также ppa, хотя он не включает последнюю версию для 14,04 в данный момент. Устанавливать через ppa:
sudo apt-add-repository ppa:freefilesync/ffs
sudo apt-get update
sudo rm -rf ~/.Xauthority
была единственная вещь, которую я не попробовал.
– Pantelis Sopasakis
8 August 2017 в 08:40
Для ответа на второй вопрос более необычный способ скопировать rdiff-backup
.
rdiff-резервное-копирование создает резервную копию одного каталога другому, возможно по сети. Целевой каталог заканчивается копия исходного каталога, но дополнительный реверс diffs хранится в специальном подкаталоге того целевого каталога, таким образом, можно все еще восстановить файлы, потерянные некоторое время назад. Идея состоит в том, чтобы сочетать лучшие функции зеркала и инкрементного резервного копирования. rdiff-скопируйте также сохраняет подкаталоги, жесткие ссылки, dev файлы, полномочия, uid/gid владение, время изменения, расширили атрибуты, acls, и ветви ресурсов.
И если Вы действительно хотите пойти облачные: Я использую CrashPlan с заплаченной подпиской. Затем Вы никогда не должны думать о ручных резервных копиях больше.