Воеводский Михаил

Воеводский Михаил

Был в сети 30 марта 2026, 14:44
Заказы не принимаю
Основные возможности дополнения backupManager:
1) Выполнение произвольных системных команд (в том числе сценариев)
2) Загрузка в любой источник файлов
3) Удаление старых файлов из источника
4) Сохранение подробного лога выполнения задания
5) Неограниченное количество частей задания, выполняемых в любом порядке
6) Поддержка переменных для сквозного использования между частями одного задания

Совокупность этих пунктов дает огромный потенциал применения для различных целей.
Дружит неплохо, если изменить переменную sql_mode — убрать NO_ZERO_DATE и NO_ZERO_IN_DATE. Но в приведенной Василием таблице изменений нет — при настройках по умолчанию MODX пока еще несовместим с MySQL 5.7.
Сталкивался ли кто-нибудь с ошибкой выполнения скрипта?

Есть 2 сервера на Ubuntu 16.04.1, настроенные аналогично, отличия в них:
1) На площадке Flops с установленной по умолчанию системой для работы в облаке
2) Выделенный сервер на другой площадке с системой, установленной из официального образа

В первом случае скрипт создания бэкапов вываливается с ошибками, во втором работает без запинки.
На обоих серверах python3 версии 3.5.1-3, модуль requests версии 2.13.0.

Вывод ошибок:
# python3 /root/scripts/py/YaDiskBackuper/backuper.py
Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/requests/utils.py", line 792, in check_header_validity
if not pat.match(value):
TypeError: expected string or bytes-like object
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/root/scripts/py/YaDiskBackuper/backuper.py", line 72, in <module>
disk.ls( path_webdav_today )
File "/root/scripts/py/YaDiskBackuper/YaDiskClient/YaDiskClient.py", line 83, in ls
resp = self._sendRequest("PROPFIND", path, {'Depth': 1})
File "/root/scripts/py/YaDiskBackuper/YaDiskClient/YaDiskClient.py", line 54, in _sendRequest
return s.send(req.prepare())
File "/usr/local/lib/python3.5/dist-packages/requests/models.py", line 257, in prepare
hooks=self.hooks,
File "/usr/local/lib/python3.5/dist-packages/requests/models.py", line 303, in prepare
self.prepare_headers(headers)
File "/usr/local/lib/python3.5/dist-packages/requests/models.py", line 443, in prepare_headers
check_header_validity(header)
File "/usr/local/lib/python3.5/dist-packages/requests/utils.py", line 796, in check_header_validity
"not %s" % (value, type(value)))
requests.exceptions.InvalidHeader: Header value 1 must be of type str or bytes, not <class 'int'>
Поддержка Flops ничего существенного, естественно не говорит, ибо речь идет не только о стандартном ПО из пакетов.
Поскольку Питон не знаю от слова совсем, отладка превращается почти в метод научного тыка. Понимаю лишь общую логику выполнения, не более того.

Надеюсь на помощь более опытных в Питоне товарищей.
Один менеджер из трех в состоянии поменять. Но объяснять оставшимся двум и периодически разгребать — проще уж наглядный конструктор :)

Structures не смотрел. Если он подходит к задаче, то заново изобретать велосипед не нужно, естественно.
Главное преимущество — возможность контент-менеджерам или маркетологам создавать страницы самостоятельно без привлечения разработчика. Это удобно в случаях, когда проводится тестирование поведения или каких-либо акций, чтобы по несколько раз на дню не дергать разрабов.