LINUX.ORG.RU

Автоматическое резервное копирование на ftp

 , ,


1

2

Есть задача: раз в день проверять определённые каталоги на изменения и, если таковые есть, запаковывать файлы в запароленный архив и отправлять на FTP сервер, где требуется хранить N предыдущих копий.
Насколько я понял, придётся таки осваивать написание сложных скриптов на bash'e + кучу консольных программ. И, дабы не тратить время впустую, решил посоветоваться по поводу реализации некоторых моментов:

1) Каким образом лучше всего хранить пароли от FTP-сервера и архива (дабы не вводиь их каждый раз) и как получить к ним доступ из bash-скрипта
2) По поводу проверки изменений... Лично я пока надумал сделать это так: перед запаковкой данных снимать md5 и записывать её в специальный текстовый файл на сервере в формате «название»:«номер резервной копии»:«сумма md5», и при проверке изменений просто сравнивать текущую сумму с той, что из файла. Может есть лучший вариант, учитывая что данные хранятся в запароленных архивах?
3) Может есть уже готовые решения и я изобретаю велосипед?

★★★★★

Каким образом лучше всего хранить пароли от FTP-сервера и архива

Всё зависит от их важности. Но в подавляющем числе случаев, прятать пароли бесполезно, если они вовлечены в автоматизацию, и чужие руки добрались до этого скрипта.

По поводу проверки изменений... Лично я пока надумал сделать это так: перед запаковкой данных снимать md5 и записывать её в специальный текстовый файл на сервере в формате «название»:«номер резервной копии»:«сумма md5», и при проверке изменений просто сравнивать текущую сумму с той, что из файла. Может есть лучший вариант, учитывая что данные хранятся в запароленных архивах?

(а) md5, при громадных архивах, считает так же приличное время
(б) при этой схеме, что описали, выходит что сначала пакуем, а потом уже смотрим, нужно ли это, сравниваясь с списком?

Может есть уже готовые решения и я изобретаю велосипед?

Возможно lftp или ncftp, они отдалённо похожи на rsync, только для ftp. Там есть «зеркалирование» данных. Можно покурить в эту сторону.

Spirit_of_Stallman ★★★ ()
Ответ на: комментарий от Spirit_of_Stallman

(б) при этой схеме, что описали, выходит что сначала пакуем, а потом уже смотрим, нужно ли это, сравниваясь с списком?

Нет: сначала смотрим, и если суммы не совпадают, то пакуем, отправляем на сервер и добавляем новую в файл.

najlus ★★★★★ ()
Ответ на: комментарий от najlus

Нет: сначала смотрим, и если суммы не совпадают, то пакуем, отправляем на сервер и добавляем новую в файл.

Хорошо. Но суммы чего, в таком случае?
Если файлов не много - то не страшно. А вот если их приличное количество, то вы можете удивиться, насколько не тривиальная (по крайней мере не 10тиминутная) задача сделать сравнение 2х групп файлов, опираясь на ключ(имя)=>хэш. Там нужно учитывать от возможности иметь одинаковые имена, но разные расположения в уровне корня каталогов, до решения всяческих коллизий (особенно с усложнением сепарации).
Я уже писал для себя такой костыль, что решает почти эту же задачу (по крайней мере оно сравнивало 2 каталога (опираясь на 2 списка с ключик=>md5, предварительно создавая недостающий, при надобности), с множеством файлов, проверкой симлинков, списком нужных симлинков, устаревшие файлы, решение коллизий и тому подобное) для написания своего костыля, что синхронизировал по ssh мои файлы (они были в каталоге) и раскладывал всё по системе, в нужные места, симлинками, опираясь на внутренний конфиг. Но rsync'om вышло делать проще, и потому забил на это дело.

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

Spirit_of_Stallman ★★★ ()
Ответ на: комментарий от Spirit_of_Stallman

Но суммы чего, в таком случае?

md5 каталога (рекурсивно). По сути это нужно большей частью для резервного копирования настроек приложений, скриптов и прочей мелочи. Самое крупное, что пока вижу - профиль Firefox. На мой взгляд, использование md5 здесь вполне примелимо.
Отдельной задачей стоит резервное копирование и синхронизация фотографий, но тут md5 не нужен (т.к. сами файлы не изменяются), несколько резервных копий с разными версиями не требуются, так что скриптов lftp будет более чем достаточно, а может и вообще свой аккаунт от dropbox для этого дела приспособлю

najlus ★★★★★ ()

Каким образом лучше всего хранить пароли от FTP-сервера

~/.netrc (см. ftp(1), netrc(5))

ABW ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.