Назад | Перейти на главную страницу

Файлы Rsync - от проблемы

У меня странное поведение rsync. Мне нужно скопировать все файлы младше 2 дней из одной папки в другую.

Итак, я смешал rsync с аргументом files-from и нашел утилиту в скрипте, чтобы делать то, что мне нужно.

#!/bin/bash
cd /mnt/smb/online/
find . -mtime -2 -print > /tmp/rsynclist
rsync -av --ignore-existing --size-only --files-from=/tmp/rsynclist /mnt/smb/online /mnt/backup/

Файл / tmp / rsynclist в порядке, и в нем есть только файлы, которые мне нужны (все файлы не старше 2 дней). Но rsync, похоже, игнорирует аргумент «файлы из» и продолжает копировать все файлы из более старых источников.

Где я ошибаюсь?

Проблема не в rsync команда, но в вашем find. При тестировании вашего скрипта я заметил, что в моем rsynclistфайл, который был изменен, в результате чего rsync скопировал все файлы в этих каталогах.

Чтобы этого не произошло, добавьте -type f на ваш find команда.

#!/bin/bash
cd /mnt/smb/online/
find . -type f -mtime -2 -print > /tmp/rsynclist
rsync -av --ignore-existing --size-only --files-from=/tmp/rsynclist /mnt/smb/online /mnt/backup/

После этого в списке должны быть только пути к файлам, что даст желаемый результат.

Синтаксис rsync команда:

rsync [option] source[x] destination

Вы поместили 2 источника:

  • / tmp / rsync список ; правый
  • / mnt / smb / онлайн ; это неправильно, и вы должны удалить это

попробуйте с:

rsync -av --ignore-existing --size-only --files-from=/tmp/rsynclist  /mnt/backup/