Всем привет.
Задача стоит следующая. Есть сервер RHEL 6.3, на нём крутится база (уточнять я думаю необязательно какая). Каждый день в определённое время средствами БД делается бэкап в папочку /opt/backup.
Необходимо каждый день делать бэкап этих бэкапов сторонним ПО (backup exec, который умеет запускать скрипты перед началом собственно бэкапа файлов).
Что делает мой скрипт - он копирует файл бэкапа, который изменялся последние n дней в папку /opt/backup/symbe, предварительно очистив её от предыдущих файлов.
В дальнейшем, возможно, в зависимости от размера базы, этот файл нужно будет не копировать, а перемещать.
Вот сам скрипт (поругайте, пожалуйста):

[root@localhost home]# cat test.sh
rm -f /opt/backup/symbe/*
find /opt/backup/ -maxdepth 1 -type f -name "backup*.*" -mtime -1 -exec cp {} /opt/backup/symbe/ \;

Смущает то, что команда cp, даже если в папке /opt/backup/symbe/ есть какие-то файлы, не спрашивает ничего о их перезаписи. Пока непонятно как она справится с большими файлами (до 1TB) и не изменятся ли права доступа к файлу.
Плюс, в дальнейшем планируется заменить её на команду mv.
Всем заранее спасибо.

2

Прочитай man cp, там всё понятно написано, даже по русски. И размер файла для cp не имеет значения.

3

И дополню. У команды cp есть полезная опция версионности. То есть файл источник может иметь одно имя, а целевой файл будет получать уникальные имена, скомпонованные из  имени источника  и версионного суффикса. Очень удобно.

4

Менять имена от меня не требуется в принципе.
Вот пока текущая версия скрипта:

[root@localhost home]# cat test.sh
rm -f /opt/backup/symbe/*
find /opt/backup/ -maxdepth 1 -type f -name "backup*.*" -mtime -1 -exec cp -p {} /opt/backup/symbe/ \;

Имеются ли какие-то замечания по нему?

5

В начале скрипта отсутствует

#!/bin/bash

6

Сдается мне, что команда cp по умолчанию ничего не спрашивает (хотя некоторые дистры предлагают alias-ы для нее в виде "cp -v")
К слову, о cp и mv. Отличие cp от mv в том (кроме удаления последней источника ab ), что при использовании cp сторонний софт, "наблюдающий" за директорией, в которую осуществляется копирование, сразу же получает "алерт" от ОС о создании файла (т.е. на момент получения "алерта" не все данные файла уже на месте). А при использовании mv, всё содержимое файла перекочевывает в новое место и только потом возникает "алерт" стороннему софту. Хотя этот факт (а может уже и не факт, давно было дело) важен только в случае использования "мониторов", которые наблюдают за содержимым директории.

И баба с воза, и волки сыты...

7

В bash-скриптах алиасы не используются, если написано "cp", то это голый "cp".

8

То есть мой ключ к cp "-p" не сработает?

9

Твой сработает.