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

Чистая ошибка использования 1219 - я просто хочу подключить сетевой ресурс
Автоматическое запланированное копирование разделов жесткого диска
Rsync и Cygwin на основе резервного копирования на Windows дает разрешение отказано ошибки
Почему при копировании папки резервной копии в домашнюю группу указывается 0 байт?
Можно ли возобновить резервное копирование в Time Machine на компьютере Mac?
Загрузка больших папок в Dropbox с внешнего жесткого диска
Поиск способа копирования файла, который не блокирует копируемый файл
Какие файлы следует исключить из полной резервной копии Windows?
Контрольная сумма для файла восстановления
каталог сетевой диск в Cygwin
Может ли поддержка RSync сервером ускорить процесс резервного копирования?
Как монтировать образ NTFS, созданный GNU NTFSclone, в Windows?
Как архивировать большое количество видеофайлов?
Backup Exec 2014 & LTO5 сжатие не работает
Как сделать резервную копию DVD игры на жестком диске в формате ISO?

Как сделать резервную копию недавно измененных файлов в Bash?

Я написал этот сценарий резервного копирования, который просматривает файл и копирует последние файлы в папку.

#!/usr/bin/bash

# the number of days to do the backup for.
days=2;

# the files to backup.
location[0]='/opt/location'

# the location to copy the file to
copyLocation='/users/me/Backup/firstBackupScriptTry'

# preform the back up
for i in ${location[*]}
do
        find $i ! -name '*.class' -mtime -$days ! -type d -exec cp {} $copyLocation ;
done

это работает, но это не так уж полезно.

Я бы предпочел, чтобы скрипт сохранил структуру каталогов при копировании. Т. е. хотелось бы это сделать:cp -r from to но копировать только последние файлы.

5
задан Ivo Flipse
источник

3 ответов

способ был бы изменить имена файлов, которые вы получаете при запуске find. Таким образом, в вашем цикле, имея совпадающее имя файла в $filename, вы должны:

  1. в $filename замените начало $i на nothing
  2. узнайте $dir_name в результате 1 с помощью dirname
  3. добавить конец $ copyLocation в $dirname и использовать его в качестве аргумента для mkdir-p для создания недостающих каталогов
  4. скопировать $filename в "$copyLocation / $dirname"

Я также собираюсь предложить еще одну альтернативу синхронизации файлов:унисон. Это проще в использовании, чем rsync.

1
отвечен geek 2010-02-10 20:08:51
источник

rsync для этой задачи. Проверьте примеры страница для использования.

6
отвечен Justin Smith 2010-02-10 18:59:15
источник

немного не по теме, возможно, но вы можете взглянуть на BoxBackup. Я использовал rsync скрипты в течение длительного времени, прежде чем перейти к BoxBackup, и это действительно делает вещи проще - особенно "уборка"...

1
отвечен vwegert 2010-02-10 19:26:30
источник

Другие вопросы backup bash script unix