ARCopy - автоматическое резервное копирование важных данных

Планы, идеология, архитектура и т.п.

Модератор: Модераторы

ARCopy - автоматическое резервное копирование важных данных

Сообщение wwswowsogon » 09.01.2019 00:36:35

Всем доброго времени суток!
Благо выдались выходные, и я осуществил задуманное ещё два года назад.
Рискну надеяться, что кто-либо найдет полезными/интересными мои дилетантские потуги :)
Краткое описание:
Программа позволяет заранее настроить объекты для копирования и далее делать это в любое удобное время парой щелчков мыши. Имеет два режима работы: обычный и тихий, работающий автоматически и не требующий участия пользователя. Ярлык тихого режима можно разместить, например, в планировщике заданий и настроить расписание, после чего копирование будет происходить в полностью автоматическом режиме. Программа ведет логи событий и ошибок. :)
Пока ещё все это хозяйство не прошло всестороннего тестирования, в граничных условиях возможно некорректное поведение. Если сообщите об ошибках или выскажете пожелания по доработке - буду признателен!
Скачать можно:
Яндекс-диск:
Программа:
https://yadi.sk/d/7sE3gNA4OLNIvQ
исходные коды:
https://yadi.sk/d/28l0cLI2CB29YQ
На сайте наших партнёров:
http://yarastra.ru/soft.php

Пользуясь случаем, хотел бы также задать несколько вопросов. Сразу скажу, я не программист, я инженер.:) Программирование для меня - в основном хобби + практическая полезность. Со всеми вытекающими последствиями.
В процессе разработки возникло несколько вопросов:

1. Лицензирование. Надо полагать, должна быть лицензия, по которой распространяется ПО. Сейчас я использовал GPLv2. Какую лицензию лучше использовать для подобных небольших программ?
2. Должна ли быть некая ссылка/упоминание лицензии в самой программе? Сейчас оно есть только в файле readme.
3. Для архивирования отдельного файла я использую штатный механизм zipper из набора FPC. Все бы хорошо, но он дает при разархивировании папку <_C>, в которой и лежит исходный файл... Это нормально? или как это настроить, чтобы этого не было?
4. Для архивирования директорий я использую командную строку 7-zip. Соответственно, пакет 7-zip входит в комплект
поставки программы. Как быть с ним в плане лицензирования? Нужна ли для него отдельная лицензия?
5. Ну и ещё, на разработку от и до у меня ушло примерно три недели, в среднем по 2-4 часа в день. Всего примерно 60 часов. А сколько бы времени это заняло у среднестатистического профессионального программиста? :)

Заранее спасибо за внимание, буду признателен за любую информацию! Критика также приветствуется.
wwswowsogon
постоялец
 
Сообщения: 152
Зарегистрирован: 23.12.2008 20:41:37

Re: ARCopy - автоматическое резервное копирование важных дан

Сообщение Снег Север » 09.01.2019 08:16:49

1. Гляньте тут - https://habr.com/post/284390/
Что лучше - это вам вряд ли кто скажет...
2. Можете дать ссылку на лицензию в своем пп. About, но это не обязательно.
3-4. 7-zip имеет вариант подключаемой динамической библиотеки, интерфейс к ней легко найти в интернете. Соответственно, не вижу смысла для архивирования и разархивирования использовать разные архиваторы.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3039
Зарегистрирован: 27.11.2007 16:14:47

Re: ARCopy - автоматическое резервное копирование важных дан

Сообщение serbod » 09.01.2019 11:03:43

1. По умолчанию, программа открывается в центре рабочего стола. А у меня рабочий стол на два монитора и половина окна на одном, половина на другом. Где-то есть опция открывать на основном мониторе.

2. Папка с текстурами, внешние файлы иконок не нужны. Иконку можно назначить в свойствах проекта. Мелкие картинки для значков удобнее хранить в стандартном компоненте TImageList. И этот самый ImageList можно привязать к TActionList и к визуальным контролам через свойство Images

3. Стандартное расширение файла для текстовых логов - *.log или *.txt

4. Два разных екзешника с 90% одинаковым функционалом проще и удобнее сделать как один, но вызывать с разными параметрами командной строки. Еще можно создать symbolic link (ссылку) с нужным именем на файл, а после старта программы проверять имя запущенного файла через ParamStr(0)

5. Тащить в программу весь 7zip не нужно, достаточно только 7z.dll и подключить готовый компонент архиватора, который удобнее командной строки. Их много разных, на любой вкус. Я предпочитаю со встроенным алгоритмом zip, чтобы не тащить внешние библиотеки.
Аватара пользователя
serbod
постоялец
 
Сообщения: 449
Зарегистрирован: 16.09.2016 11:03:02
Откуда: Минск

Re: ARCopy - автоматическое резервное копирование важных дан

Сообщение zoltanleo » 10.01.2019 02:32:12

wwswowsogon писал(а):Программа позволяет заранее настроить объекты для копирования и далее делать это в любое удобное время парой щелчков мыши.

Не понятно назначение софта. ЧТО программа копирует? Файлы? Другие данные?

Я, как конечный пользователь, абсолютно не понял, зачем она мне. Два скрина мне ни чем не сказали. Если уж вы собираетесь ее продавать, вам срочно нужен маркетолог :)
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 458
Зарегистрирован: 17.10.2013 10:55:01

Re: ARCopy - автоматическое резервное копирование важных дан

Сообщение wwswowsogon » 12.01.2019 16:23:28

Спасибо всем,кто ответил.

Во-первых, при начале эксплуатации в промышленных масштабах обнаружилось много ошибок и некорректного поведения. Исправил, перезалил. Учел некоторые ваши замечания. :)

serbod, отдельное спасибо за подробный анализ. :)

serbod писал(а):1. По умолчанию, программа открывается в центре рабочего стола. А у меня рабочий стол на два монитора и половина окна на одном, половина на другом. Где-то есть опция открывать на основном мониторе.

Это важное замечание, я не подумал об этом. Возможно, сделаем в дальнейшем. Хотя для сервера это не принципиально. :)

serbod писал(а):3. Стандартное расширение файла для текстовых логов - *.log или *.txt

Логично, исправил.

serbod писал(а):4. Два разных екзешника с 90% одинаковым функционалом проще и удобнее сделать как один, но вызывать с разными параметрами командной строки.
- а можно с этого места подробнее? Или где почитать, как это сделать.

serbod писал(а):5. Тащить в программу весь 7zip не нужно, достаточно только 7z.dll и подключить готовый компонент

А не нарушим ли мы чего-нибудь, распространяя 7-z не в полном составе? Понятно, что конкретно к этой программе вряд ли кто придерётся, но на будущее знать полезно.

zoltanleo писал(а):
wwswowsogon писал(а):Не понятно назначение софта. ЧТО программа копирует? Файлы? Другие данные?

Да, наверное, я не пояснил... В данном случае программа появилась из довольно конкретной задачи. У меня на обслуживании есть пара-тройка серверов. На каждом лежит по 2-3 гигантских и важных папки. Соответственно, желательно иметь резервное копирование. Я пытался сделать это при помощи bat-файлов, но, во-первых, возникли проблемы при копировании по сети, во-вторых, папки иногда меняют название, и приходится переписывать батники, в третьих, если копий несколько и число их тоже время от времени меняется... В общем, решил написать софт. Заодно столько всего нового узнал. :)

zoltanleo писал(а):Я, как конечный пользователь, абсолютно не понял, зачем она мне. Два скрина мне ни чем не сказали. Если уж вы собираетесь ее продавать, вам срочно нужен маркетолог :)

Да она, может, и не нужна, если у вас нет серверов или есть лицензионный Акронис ;) Продавать эту программу я не собирался в принципе.
wwswowsogon
постоялец
 
Сообщения: 152
Зарегистрирован: 23.12.2008 20:41:37

Re: ARCopy - автоматическое резервное копирование важных дан

Сообщение Снег Север » 12.01.2019 16:32:32

wwswowsogon писал(а):А не нарушим ли мы чего-нибудь, распространяя 7-z не в полном составе?

https://www.7-zip.org/license.txt
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3039
Зарегистрирован: 27.11.2007 16:14:47

Re: ARCopy - автоматическое резервное копирование важных дан

Сообщение zoltanleo » 12.01.2019 16:43:50

wwswowsogon писал(а):У меня на обслуживании есть пара-тройка серверов. На каждом лежит по 2-3 гигантских и важных папки. Соответственно, желательно иметь резервное копирование. Я пытался сделать это при помощи bat-файлов, но, во-первых, возникли проблемы при копировании по сети, во-вторых, папки иногда меняют название, и приходится переписывать батники, в третьих, если копий несколько и число их тоже время от времени меняется...


А что в папках-то? Если файлы БД, то их резервное копирование часто выполняется специализированными утилитами. Если обычные файлы (текст, картинки), то средств командной строки вполне достаточно.

Я не отговариваю писать свой софт, но велосипедостроение оправдано, если нет нет более изящных альтернатив. ИМХО.
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 458
Зарегистрирован: 17.10.2013 10:55:01

Re: ARCopy - автоматическое резервное копирование важных дан

Сообщение Little_Roo » 12.01.2019 19:44:44

wwswowsogon писал(а): serbod писал(а):
1. По умолчанию, программа открывается в центре рабочего стола. А у меня рабочий стол на два монитора и половина окна на одном, половина на другом. Где-то есть опция открывать на основном мониторе.


Это важное замечание, я не подумал об этом. Возможно, сделаем в дальнейшем. Хотя для сервера это не принципиально. :)

В свойствах формы изменить Position c poDesktopCenter на poScreenCenter
Аватара пользователя
Little_Roo
энтузиаст
 
Сообщения: 639
Зарегистрирован: 27.02.2009 19:56:36
Откуда: Санкт-Петербург

Re: ARCopy - автоматическое резервное копирование важных дан

Сообщение wwswowsogon » 12.01.2019 23:01:55

В папках в основном по массе - файлы БД, ну и процентов 30-40 разных ценных данных, включая папки "Котики" и т. п. :)

zoltanleo писал(а):Я не отговариваю писать свой софт, но велосипедостроение оправдано, если нет нет более изящных альтернатив. ИМХО.

Да я всё понимаю, но софт уже написан. :) Будем тестировать дальше. Есть подозрение, что прога и не думает проверять диск на наличие свободного места, хотя в коде это прописано. В остальном вроде всё, как надо.

Little_Roo писал(а):В свойствах формы изменить Position c poDesktopCenter на poScreenCenter


Точно! Спасибо!
wwswowsogon
постоялец
 
Сообщения: 152
Зарегистрирован: 23.12.2008 20:41:37

Re: ARCopy - автоматическое резервное копирование важных дан

Сообщение zoltanleo » 12.01.2019 23:43:39

wwswowsogon писал(а):В папках в основном по массе - файлы БД

послушайте доброго совета, используйте специализированные утилиты, которые наверняка есть для вашей БД.
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 458
Зарегистрирован: 17.10.2013 10:55:01

Re: ARCopy - автоматическое резервное копирование важных дан

Сообщение Снег Север » 13.01.2019 12:20:10

zoltanleo писал(а):послушайте доброго совета, используйте специализированные утилиты, которые наверняка есть для вашей БД.

Это вопрос дискуссионный. Я лично проверял для MySQL MyISAM баз. Дельфийская утилита с архиватором на компонентах Abbrevia базу в несколько гиг копирует с архивацией в разы быстрее, чем встроенная утилита.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3039
Зарегистрирован: 27.11.2007 16:14:47

Re: ARCopy - автоматическое резервное копирование важных дан

Сообщение zoltanleo » 13.01.2019 13:45:15

Снег Север писал(а):несколько гиг копирует с архивацией в разы быстрее, чем встроенная утилита.

Многие специализированные утилиты при этом ещё делают валидацию метаданных, собирают мусор и проч.проч. Так вопрос, действительно, дискуссионный :)
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 458
Зарегистрирован: 17.10.2013 10:55:01

Re: ARCopy - автоматическое резервное копирование важных дан

Сообщение Vadim » 13.01.2019 14:28:52

Снег Север писал(а):Это вопрос дискуссионный. Я лично проверял для MySQL MyISAM баз. Дельфийская утилита с архиватором на компонентах Abbrevia базу в несколько гиг копирует с архивацией в разы быстрее, чем встроенная утилита.

Если только речь идёт о файлах. Дело в том, что встроенные прпоцедуры, триггеры и всякие там пользователи базы хранятся не в самой базе, а внутри служебной базы MySQL. Поэтому если, к примеру, есть 20 баз (как у меня ;-) ), то лучше использовать именно мускульную утилиту, чтобы она архивировала каждую базу по отдельности. В этом случае можно быстро восстанавливать как отдельную базу, так и какую-нибудь часть базы, чтобы не потерять новые данные.
Впрочем, Вы правы, вопрос дискуссионный и тут каждый делает, как ему удобнее... :-)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: ARCopy - автоматическое резервное копирование важных дан

Сообщение Снег Север » 13.01.2019 16:16:23

Vadim писал(а):Дело в том, что встроенные прпоцедуры, триггеры и всякие там пользователи базы хранятся не в самой базе, а внутри служебной базы MySQL.

Верно, разумеется, но SQL с пересозданием процедур, триггеров - это крохотный довесок к гигабайтной базе.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3039
Зарегистрирован: 27.11.2007 16:14:47

Re: ARCopy - автоматическое резервное копирование важных дан

Сообщение Сквозняк » 01.02.2019 20:44:26

wwswowsogon писал(а):1. Лицензирование. Надо полагать, должна быть лицензия, по которой распространяется ПО. Сейчас я использовал GPLv2. Какую лицензию лучше использовать для подобных небольших программ?


Смотря что желаешь получить. Если желаешь сохранить программу в свободном виде, то ГПЛ2 или ГПЛ2+ подойдёт, а если желаешь раздавать программу всем подряд, в том числе и закрытым коммерческим проектам, то нужно использовать модифицированную ЛГПЛ, как в лазарусе.
Сквозняк
энтузиаст
 
Сообщения: 1123
Зарегистрирован: 29.06.2006 22:08:32


Вернуться в Разработки на нашем сайте

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

Рейтинг@Mail.ru