Вы могли использовать массив:
BASES[0]=...
BASES[1]=...
BASES[2]=...
# or BASES+=(...)
# or BASES=(foo bar baz)
echo "${BASES[@]}" | parallel cp -a {} $DEST
Для создания этого более безопасным (пробелы и новые строки в переменной в особенности) что-то вроде этого должно работать более надежно:
printf "%s\0" "${BASES[@]}" | parallel -0 cp -a {} "$DEST"
Примечание: массивы не находятся в POSIX, это работает с текущими версиями удара и ksh все же.
Рассмотрите для использования rsnapshot, который дает Вам, возможность делает поворачивание файловой системы (или папки) и поддерживает arbitraty количество версий.
Rsnapshot делает замораживание целой файловой системы или папок, но с небольшой работой можно удалить старые последовательные версии без изменений.
Rsnapshot использует rsync и имеет много параметров для настройки. Очевидно, это может быть вставлено в crontab.
Это назвало newsyslog или logrotate. Это - самый легкий путь, сохраняет Вас явно редактирование crontab
и выполнение других процессов и соглашений с распространенными ошибками (как проверка старые файлы, удаление их, переименование других, атомарности, и т.д.) уже. Это доказывается и используется остальной частью системы, таким образом, необходимо снова использовать его.
/etc/logrotate.d/
. Или можно звонить logrotate
вручную с файлом конфигурации, это даже не должно базироваться.
– mirabilos
16.01.2014, 16:05