softshape: с одной стороны, недопустимый заголовок Host — это ошибка клиента и ответ должен быть 400-ым. С другой стороны, среди списка кодов не нашёл подходящего кода (кроме упомянутого в русской Википедии без ссылки на источник 434 кода). То есть да, 301 ответ — это такой изящный финт ушами :-)
Дмитрий: установите опцию CURLOPT_RETURNTRANSFER и curl_exec будет возвращать содержимое полученного файла. Дальше его можно или напрямую парсить, или писать в файл. И что значит конвертированный? Откуда куда?
Во-первых, file_get_contents не пишет в файл, и читает из него. Во-вторых, где детали? Что хотите получить, какие данные на входе и проч. И что это за набор цисел? Hex-дамп?
Rundik: ну уж такую-то ошибку стыдно самому не уметь исправить.
По поводу «всё подругому», MySQLi поддерживает два подхода: процедурно-ориентированный и объектно-ориентированный. Первый нужен для упрощения перехода с mysql, просто к каждой функции добавлени буква i. Если хотите использовать объектно-ориентированных подход, то да, всё будет подругому.
Григорий: надо просто правильно понимать цель шифрования диска. Это не защита на все случаи жизни, а защита от утечки данных в случае потери ли кражи. Само собой, всегда нужно иметь резервную копию.
Кстати, Вы можете посоветовать учебник или руководство по многопоточному программированию? Желательно без привязки к конкретному языку, но не критично.
Ух ты! Пока читал, почувствовал себя на Хабре, а не на Тостере :-)
Да, видимо, придётся действительно писать отдельный процесс под писателя. Тем более, что волшебный объект None позволит очень удобно «отравить» очередь.
А почему Вы пишите, что запись в файл параллельно с получением данных вызовет постоянное открытие-закрытие файла? Я ведь один раз вызываю open(), получаю текстовый поток и пишу в него. На диск данные сбрасываются по мере заполнения буфера. То есть одно открытие при запуске писателя и одно закрытие при останове.
Почему процессы, а не потоки? Если честно, сам точно не знаю. Каждый процесс дёргает HTTP конец, парсит JSON, создаёт paramiko.SSHConnection и отправляет туда команду, потом два поиска по регулярке. Это считается сложной обработкой данных? :-) Особенно с учётом того, что всё шифрование происходит на голом Python в том же потоке. Надо будет запустить профилировщик, проверить.
И про ansible даже не думал, потому что академический интерес, давно хотел научиться работать с многопоточностью/многопроцессностью. Но за совет спасибо.