23 ноября | 2024г. | 14:54:08


АвторТема: MBBackup (Утилита резервного копирования настроек ресивера)  (Прочитано 1656 раз)

0 Пользователей и 1 Гость смотрят эту тему.

Оффлайн Evg77734Автор темы

  • Мастер Джедай
  • ***
  • Сообщений: 1385
  • Поблагодарили: 8611
  • Уважение: +147
Простенькая утилита MBBackup ver. 3.0

Создавалась, как средство сохранения резервной копии букетов, но как то разрослась.
Делал для своих нужд, но может кому будет полезна.

Создает копии файлов и папок (если находит их в ресивере) на флешке, в указанной вами папке, в отдельных подпапках:
Спойлер   :
- всех файлов букетов
- lamedb
- cables.xml, terrestrial.xml, satellites.xml, blacklist, bouquets.radio, bouquets.tv, settings
- crontab
- CCcam.cfg, CCcam.prio
- все скрипты запуска найденных эмуляторов (oscam, oscam-ymod, wicardd, cccam)
- все исполняемые файлы найденных эмуляторов (oscam, oscam-ymod, wicardd, cccam)
- полностью папки: /usr/oscam, /usr/oscam-ymod, /usr/keys, так как я конфиги разных эмуляторов храню в отдельных папках, а не в tuxbox
- полностью папку: /etc/epgimport
- полностью папку: /etc/astra
- исполняемые файлы astra, t2mi_decap, все найденные версии libaio.so и libc.so и скрипт astra-sm
- полностью папку /lib/modules с драйверами в том числе
- полностью папку /usr/script/cam не помню уже для какого имиджа
- сам себя, то есть файл Slot1MBBackup.py, но их может быть до 4-шт соответственно Slot2MBBackup.py, Slot3MBBackup.py, Slot4MBBackup.py
- конвертер EventName.py, так как он должен быть правленным, чтобы не было креша по его вине
- что то еще по мелочам
Такой себе параноидальный набор, но он позволяет настроить новый имидж очень быстро, не потеряв своих настроек, хотя и вручную.

Все это копируется в указанную вами папку и упаковывается в архив с уникальным именем Backup_хххххххххх.tar.gz, где хххххххххх это время в секундах с начала эпохи.
На флешке может находиться не более 39 файлов архивов, если больше, то самый старый затирается, а новый добавляется.
Размер архива +/- 10 Мб.

Если вдруг у вас на компьютере установлен и настроен ftp сервер, то утилита сама опросит ip адреса вашей сети с 192.168.1.100 по 192.168.1.120 и если найдет сервер, то отправит туда этот свежий архив с копиями.
Поиск ip занимает некоторое время.
Поддерживается даже два ftp сервера. Например у меня на windows установлен FilleZilla сервер, а на linux сервер vsftpd
Сервера настраиваются согласно их документации, а в утилиту вносятся только два логина, два пароля и два пути к серверу.
Если ftp серверов нет, то можно оставить все, как есть.

Порядок работы:
Спойлер   :
Копируем файл Slot1MBBackup.py на флешку в /media/hdd/, что делает его не зависимым от установленных имиджей.
Присваиваем этому файлу права 755
В строках 17 и 19 прописываем одинаковый путь к папке на флешке, где будут храниться копии, если такой папки нет, она будет создана автоматически.
path1 = '/media/hdd/Slot1'
path = '/media/hdd/Slot1'

В строках 23, 25, 27 прописываем данные ваших ftp серверов - логины, пароли, пути к серверам:
ftp_user_m = ["login_1", "login_2"]

ftp_password_m = ["Pasword_1", "Pasword_2"]

server_m = ["/Server/dir_1/", "/ftp/dir_2/"]

Сохраняем с заменой.
Запускаем из телнета командой /media/hdd/Slot1MBBackup.py
Таких файлов SlotХMBBackup.py может быть столько, сколько у вас установлено имиджей, должны только отличаться названия, ну и прописанные пути, чтобы не сваливать всё в кучу...
Чтобы автоматизировать весь этот процесс, добавляем расписание запуска в crontab.
crontab можно настраивать по разному, я делал так. В файл crontab предпоследней строкой добавил строку:
 0 */3 * * *      root  /media/hdd/Slot1MBBackup.py
Теперь файл Slot1MBBackup.py будет запускаться каждые три часа (0-00, 3-00, 6-00, 9-00 и так далее)

Работает в фоне, систему не грузит, нас не отвлекает, а резервные копии создаются без нашего участия по установленному расписанию.


Оффлайн Evg77734Автор темы

  • Мастер Джедай
  • ***
  • Сообщений: 1385
  • Поблагодарили: 8611
  • Уважение: +147
В прицепе три файла, это одна и та же тестовая программка, но скомпилированная под разные архитектуры. Просто должна выводить информацию о CPU, но это не важно, интересует запустится ли на ресиверах с соответствующей архитектурой?
Скопировать в любое место, например в /tmp, присвоить права 755 и в терминале дать команду например /tmp/test_arm и глянуть ответ.
Может, у кого есть желание протестирует?
У меня ресиверы только ARM и все работает, а вот mipsel и sh4 я никак проверить не могу  ;)

Оффлайн hecha71

  • Друзья Джедаев
  • *****
  • Сообщений: 2140
  • Поблагодарили: 9675
  • Уважение: +267
а вот mipsel
  на атвешном 6.4 не сработала команда  Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.на плишном  пожалуйста

Спойлер   :
Вам не разрешен просмотр кода. Войдите или Зарегистрируйтесь для просмотра.

  • DM 900 UHD,Octagon8008_4K,DM820HD,DM800SE_V2,DM500HD(A8P),DM800SE(A8P),Vu+DUO2,Solo2...
"Only a strong-minded person scores a dick on everything and everyone that is against him"

Оффлайн Evg77734Автор темы

  • Мастер Джедай
  • ***
  • Сообщений: 1385
  • Поблагодарили: 8611
  • Уважение: +147
hecha71, а cat /proc/version что говорит? Какая gcc version ?

Оффлайн hecha71

  • Друзья Джедаев
  • *****
  • Сообщений: 2140
  • Поблагодарили: 9675
  • Уважение: +267

а cat /proc/version что говорит?
вот
Спойлер   :
openpli 12.1 dm800sev2
dm800sev2 login: root
Last login: Thu Oct 19 03:14:42 HKT 2023 on pts/0
root@dm800sev2:~# cat /proc/version
Linux version 3.2-dm800sev2 (newnigma2@nn2build.newnigma2.to) (gcc version 4.6.4                                                                                                                      20120303 (prerelease) (GCC) ) #1 SMP Sat Mar 19 23:20:06 CET 2016
root@dm800sev2:~#
  • DM 900 UHD,Octagon8008_4K,DM820HD,DM800SE_V2,DM500HD(A8P),DM800SE(A8P),Vu+DUO2,Solo2...
"Only a strong-minded person scores a dick on everything and everyone that is against him"

Оффлайн Evg77734Автор темы

  • Мастер Джедай
  • ***
  • Сообщений: 1385
  • Поблагодарили: 8611
  • Уважение: +147
Творчески переработал, переписал на С++, обозвал MyBackup ver. 2.4

В прицепе три исполняемых файла под разные архитектуры и файл конфигурации MyBackup.conf.
Файл конфигурации должен находиться только в /etc/, а сама программа может запускаться из любого места с правами 755.

В первом сообщении этой темы подробно расписаны функции программы.

Изменения:
- добавлено копирование папки /etc/tuxbox
- добавлено копирование папки /media/hdd/cam, куда я перенес все свои эмуляторы, конфиги и скрипты запуска
- добавлено копирование папок пользователя
- добавлено копирование файлов пользователя
- переработал механизм взаимодействия с ftp севером

Запускать можно вручную, а так же по расписанию, используя например crontab.
Для работы с ftp севером требуется установка Curl.

Файл конфигурации состоит из трех секций: [folder], [files] и [server]
Спойлер   :
В секции [folder] первые две строки должны быть обязательно по образцу - это корень, куда будет производиться копирование, но их можно изменять по желанию, но это должен быть путь к папке на съемном носителе: usb, hdd, чтобы не занимать место в самом ресивере.
Ниже можно добавлять любое количество строк с путями к папкам, которые вы хотите, чтобы тоже копировались. Например строку:
/usr/lib/enigma2/python/Components - будет копироваться полностью папка Components.

Секция [files] может быть пустой, но в нее можно добавлять пути к файлам, которые вы хотите, чтобы тоже копировались. Например строка:
/usr/lib/enigma2/python/Plugins/Extensions/Bitrate/bitrate.pyc - будет копироваться файл bitrate.pyc из плагина Bitrate.

Если вы не пользуетесь ftp сервером, то секцию [server] нужно оставить, как есть.
Если пользуетесь, в первой строке правильно укажите IP вашего сервера и название папки, куда будет передаваться файл, во второй и третей строке - логин и пароль сервера соответственно.
В четвертой строке можно ставить ...= 0 или ...= 1. Если 1, то программа будет перебирать IP в диапазоне от 192.168.1.100 до 192.168.1.120, чтобы найти рабочий сервер. Если IP сервера не меняется и он верно указан в первой строке этой секции, то нужно поставить значение 0 и перебора не будет.

Важно. Секции между собой разделяются одной пустой строкой и в конце файла тоже одна пустая строка, как в образце.
Работает очень быстро, скорость ограничена в основном скоростью чтения/записи накопителя, ну и перебор IP занимает в основном 3 сек. на адрес, в особых случаях 2 минуты. Если запускается по расписанию, мы этого не заметим, если в ручную все видно визуально в терминале.

Тестировал на нескольких ресиверах с ARM архитектурой процессора, проблем не заметил, если не нарушать правила выше. Другие архитектуры проверить не могу, но скомпилировал.

Исполняемый файл нужно переименовать, названия могут быть:
Спойлер   :
1. MyBackup - основные функции, описаны выше.

2. Srvidcreator - если вы переименуете исполняемый файл таким образом и запустите, программа отработает, как одноименная моя утилита и создаст файл oscam.srvid в папке /tmp/, который нужен для oscam-ymod для правильного отображения названий каналов в логе.

3. BISS_Key_Formats_Tool - если вы переименуете исполняемый файл таким образом и запустите, программа отработает, как одноименная моя утилита и создаст в папке /tmp/ файлы: BISS_Key_Formats.txt, _SoftCam.Key и _constant.cw (добавил в этой версии).
Долго боролся, но нашел подход для расчета namespace hash в С++, создал для этого свою функцию на основе crc32(), хотя конечно не без помощи интернета, теперь расчет не зависит от версии python, да и сам python в этой программе не используется.

4. Если вы переименуете исполняемый файл в любое другое название и запустите, программа покажет в терминале погоду из сервиса в интернете для места, которое вы укажете в командной строке после пробела, например исполняемый файл находится на /media/hdd, дадим ему любое имя например anyname, запускаем командой:
/media/hdd/anyname dublin - получим погоду для славного города Дублина  ;)
Ну как то так, может кому будет интересно. Надеюсь, косяков будет не так много, как я себе думаю  :hi:

Теги:
 



X

Добро пожаловать!

Мы заметили, что у Вас установлено расширение AdBlock или ему подобное. Пожалуйста добавьте наш Клуб в белый список, внесите этим посильную лепту в его развитие. Спасибо!