LinuxForum.Fans
Тема

Скрипт для помощи с резервным копированием сторонним ПО

Автор: text_wr1t3r 9 сообщений 2294 просмотров
#296705

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

text
[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.
Всем заранее спасибо.

#296718

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

#296742

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

#296962

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

[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/ \;

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

#296963

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

text
#!/bin/bash
#297066

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

#297067

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

#297094

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

#297098

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

Войдите или зарегистрируйтесь, чтобы ответить.