TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #241 · 5 мај

Можно ли в Python создавать бинарные файлы? Конечно можно. Для этого в Python есть следующие инструменты: ▫️ тип данных bytes и bytearray ▫️ открытие файла в режиме wb (write binary) или rb (read binary) ▫️ модуль struct Про модуль struct поговорим в первую очередь. Файл в формате JSON или Yaml внутри себя содержит разметку данных. Всегда можно определить где список начался а где закончился. Где записана строка а где словарь. То есть формат записи данных содержит в себе элементы разметки данных. В binary-файле данные не имеют визуальной разметки. Это просто байты, записанные один за другим. Правила записи и чтения находятся вне файла. Модуль struct как раз и помогает с организацией данных в таком файле с помощью определения форматов записи для разных частей файла. Модуль struct преобразует Python-объекты в массив байт, готовый к записи в файл и имеющий определённый вид. Для этого всегда следует указывать формат преобразования (или, как оно здесь называется - запаковки). Формат нужен для того, чтобы выделить достаточное количество байт для записи конкретного типа объекта. В последствии с помощью того же формата будет производиться чтение. При этом следует помнить что мы говорим о типах языка С а не Python. Именно формат определяет, что записано в конкретном месте файла, число, строка или что-то еще. Вот какие токены формата у нас есть. Помимо этого, первым символом можно указать порядок байтов. На разных системах одни и те же типы данных могут записываться по-разному, поэтому желательно указать конкретный способ из доступных. Если этого не сделать, то используется символ '@', то есть нативный для текущей системы. В строке формата мы пишем в каком порядке и какие типы собираемся преобразовать в байты. Запакуем в байты простое число, токен "i". >>> import struct >>> struct.pack('=i', 10) b'\n\x00\x00\x00' Теперь несколько float, при этом нужно передавать элементы не массивом а последовательностью аргументов. >>> struct.pack('=fff', 1.0, 2.5, 4.1) b'\x00\x00\x80?\x00\x00 @33\x83@' Вместо нескольких токенов можно просто указать нужное количество элементов перед одним токеном, результат будет тот же. >>> struct.pack('=3f', 1.0, 2.5, 4.1) b'\x00\x00\x80?\x00\x00 @33\x83@' Теперь запакуем разные типы >>> data = struct.pack('=fiQ', 1.0, 4, 100500) я запаковал типы float, int и unsigned long long (очень большой int, на 8 байт) b'\x00\x00\x80?\x04\x00\x00...' Распаковка происходит аналогично, но нужно указать тот же формат, который использовался при запаковке. Результат возвращается всегда в виде кортежа. >>> struct.unpack('=fiQ', data) (1.0, 4, 100500) Как видите, ничего страшного! #lib#basic

Hashtags

Резултати

Пронајдени 3 слични објави

Пребарај: #proxmox

当前筛选 #proxmox清除筛选
infosecurity

@tg_infosec · Post #2941 · 16.02.2025 г., 12:33

👨‍💻 Доступная виртуализация: Proxmox. • Когда потребности перерастают один, ответственный за все, железный сервер, но еще не настолько велики, чтобы использовать Kubernetes, на помощь приходят разные решения, позволяющие управлять кластером из нескольких хостов, организовать High Availability, репликацию и централизованный бэкап контейнеров и виртуалок. Proxmox — одно из них: • Разворачиваем Linstor хранилище ч.1; • Разворачиваем Linstor хранилище ч.2; • Разворачиваем Linstor хранилище ч.3; • Proxmox VE - обновляем 6ку на 7ку (Proxmox 6 to 7 upgrade); • Proxmox: бекапы и факапы (и ресторы); • Proxmox + NFS сервер - внешнее хранилище для iso и дисков; • Proxmox API - автоматизируем рутинную операцию; • Proxmox + Kerio Control - удобные песочницы; • Proxmox + Kerio Control - удобные песочницы; • Вводная; • Урок 1 - вебинар, инсталляция; • Урок 2.1 - Обновления; • Урок 2.2 - Контейнеры; • Урок 2.3 - Виртуальные машины; • Урок 2.4 - Настройки в машинах и контейнерах; • Урок 2.5 - Снапшоты; • Урок 2.6 - Бекапы; • Урок 2.7 - Пользователи и права; • Урок 2.8 - Сети; • Урок 2.9 - Внешнее хранилище; • Урок 2.10 - SSL сертификаты; • Урок 3.1 - Кластер: вводная; • Урок 3.1.2 - Кластер: подготовка нод; • Урок 3.2.1 - Кластер: добавление нод; • Урок 3.2.2 - Кластер: безопасность нод; • Урок 3.3 - Кластер: реплики нод; • Урок 3.4 - Кластер: HA; • Урок 4.1 - time drift; • Урок 4.2 - LB Proxy; • Урок 4.3 - LVM; • Урок 4.4 - Кеш; • Бекапим в облака. #Proxmox

Hashtags

DOFH - DevOps from hell

@dofh_ru · Post #3270 · 08.02.2024 г., 06:14

​​До появления Proxmox Backup Server я часто отдавал предпочтение при выборе гипервизора Hyper-V из-за того, что для Proxmox VE не было функционального инструмента для бэкапов VM, кроме его встроенного средства, которое делало только полные бэкапы. С выходом PBS этот вопрос был закрыт, причём бескомпромиссно. Предложенное решение было лучше, чем любое другое бесплатное. Так что связка Proxmox VE + PBS аналогов сейчас не имеет по удобству, простоте настройки и эксплуатации. Отдельно отметить и рассказать более подробно я хочу про Proxmox Backup Client. Это консольная утилита для Linux, которая позволяет делать бэкап на уровне файлов из виртуальной машины в PBS, даже если система находится на другом гипервизоре. То есть это полностью отвязанный от инфраструктуры Proxmox клиент, который позволяет складывать резервные копии в PBS. Таким образом этот сервер бэкапов может объединять в себе разнородную инфраструктуру. Сразу перечислю основные ограничения этого клиента: ▪ бэкап только на уровне файлов или образов дисков, не системы целиком; ▪ официальная поддержка только deb дистрибутивов, для rpm люди сами собирают пакеты, так как исходники открыты; ▪ нет поддержки windows, вариант бэкапа данных оттуда только один - монтирование диска по smb к linux машине и бэкап этого примонтированного диска. Использовать proxmox-backup-client очень просто. Я не буду подробно описывать его возможности, так как в оригинальной документации представлена исчерпывающая информация. Если хочется на русском, то можно обратиться к документации от altlinux. Кратко покажу пример установки и бэкапа. Ставим Proxmox Backup Client на Debian: # wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg # mcedit /etc/apt/sources.list.d/pbs-client.list Вставляем туда для Debian 12 deb http://download.proxmox.com/debian/pbs-client bookworm main Для Debian 11: deb http://download.proxmox.com/debian/pbs-client bullseye main Для Debian 10: deb http://download.proxmox.com/debian/pbs-client buster main Ставим клиента: # apt update && apt install proxmox-backup-client Теперь бэкапим корень сервера без примонтированных дисков. То есть делаем бэкап системы: # proxmox-backup-client backup root.pxar:/ --repository 10.20.1.47:main Здесь мы указали: ◽root.pxar - имя архива в формате pbs ◽/ - бэкапим корень системы ◽10.20.1.47 - адрес pbs сервера ◽main - имя datastore По умолчанию используется учётная запись root@pam, то есть дефолтный админ. Разумеется, на проде так делать не надо, потому что у него полные права, в том числе на удаление архивов. Делайте отдельные учётки для разных систем с ограниченными правами. В PBS это организовано удобно и просто, так что разобраться не трудно. Для указания имени пользователя, нужно использовать такой вид репозитория: user01@[email protected]. То есть мы указали созданного вручную пользователя user01@pbs. Для того, чтобы не вводить пароль пользователя вручную, можно задать его через переменную окружения PBS_PASSWORD. Смотреть содержимое бэкапов можно как через веб интерфейс, так и тут локально. Причём бэкап можно примонтировать через fuse. Сморим снэпшоты и выбираем любой для монтирования: # proxmox-backup-client snapshot list --repository 10.20.1.47:main # proxmox-backup-client mount host/debian12-vm/2024-02-06T19:19:12Z root.pxar --repository 10.20.1.47:main /mnt/backup Очень быстро и удобно. При желании бэкапы можно шифровать. #proxmox#backup

DOFH - DevOps from hell

@dofh_ru · Post #3851 · 03.09.2025 г., 12:20

Proxmox: привязка CPU к виртуальным машинам Не всегда очевидно, зачем вообще нужна привязка CPU к виртуальным машинам, особенно если речь идёт о небольших развертываниях - там этот параметр чаще всего просто игнорируют. Но в реальном продакшене использование CPU affinity становится действительно важным для повышения производительности виртуалок. https://telegra.ph/Proxmox-privyazka-CPU-k-virtualnym-mashinam-09-03 #ит_статьи#devops#proxmox#linux#numa