Rsync несколько каталогов в одной строке

Rsync несколько каталогов в одной строке

У меня есть простая задача, которую я могу выполнить с помощью нескольких строк, но я хотел запустить ее только через 1 задание cron как 1 строку, а не иметь 12 отдельных строк. Вот настройка:

Иметь одну папку в ресурсе обработки изображений, которая получает изображения и перемещает их в 12 разных папок в зависимости от местоположения и других вещей. Имена папок: 1a, 2a, 3a, 4a, 5a, 6a и т. д. до 12a. Папки 1a-6a должны быть на смонтированном диске на dr01, а папки 7a-12a должны быть на смонтированной папке с именем dr02. Каждая из папок #a имеет множество подпапок и файлов внутри.

Итак, я хочу rsync ../images/1a в ..DR01/1a дважды в день. Я могу сделать это для каждой папки по отдельности с помощью:

rsync -avh --remove-source-files /images/1a/ /usr/local/blah/dr02/1a/

Хотелось бы синхронизировать весь каталог, но поскольку половина файлов хранится в одной папке, а другая — в другой, мне приходится их разбивать.

Есть ли лучший способ сделать это без необходимости создания 12 заданий rsync для синхронизации каждой папки? Есть ли способ сгруппировать их в строке rsync или что-то в этом роде? Раньше я использовал union-fs для объединения DR, но теперь это нерабочий вариант.

Заранее спасибо за любые советы, которые помогут мне решить эту проблему.

решение1

Что-то вроде этого может сработать для вас, если оболочка может расширять {x..y}конструкции типов. (Проверьте это из командной строки, добавив ко всей строке префикс echo.)

rsync -avh --remove-source-files /images/{1..6}a /mnt/dr01/
rsync -avh --remove-source-files /images/{7..12}a /usr/local/blah/dr02/

Связанный контент