Как я могу создать сценарий создания резервных копий недавно измененных файлов в 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 но копировать только последние файлы.

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

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

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

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

Возможно, немного не по теме, но вы можете взглянуть на BoxBackup . Я использовал rsync-скрипты в течение долгого времени, прежде чем переходить на BoxBackup, и это действительно облегчает работу – особенно «домашнее хозяйство» …

  • Как узнать, какие службы связаны с номером порта?
  • Сколько Unix-групп может быть пользователем?
  • Определение размера кэша L2 в Linux
  • Как переименовать файлы в Mac OS X?
  • Linux - альтернативные места для хранения файла pid вместо / var / run
  • Извлечение файла tar.gz возвращает: «Это не похоже на архив tar».
  • Bash - обработка вывода по одной строке за раз
  • Атрибуты файла
  • Ls -la symbolics ... что означает этот последний символ?
  • Каков рекомендуемый каталог для хранения содержимого веб-сайта?
  • Команда: sudo su -
  • Давайте будем гением компьютера.