Небольшая заметка шпаргалка на тему установки разных версий python на Centos 7.
https://serveradmin.ru/ustanovka-python-3-na-centos-7/
#статья #centos #python
https://serveradmin.ru/ustanovka-python-3-na-centos-7/
#статья #centos #python
Server Admin
Установка Python 3 на Centos 7
Подробное описание установки python3 разных версий на сервер CentOS 7. Установка pip нужной версии и пакетов.
Какой самый простой способ передать ссылку или небольшой текст с компьютера на смартфон? Правильно, отправить его самому себе через Telegram 😎 Всегда так делаю. А если нет мессенджера? Тут уже начинают шевелиться извилины, так как задача становится не такой уж и тривиальной.
Можно воспользоваться очень простым скриптом на Python, который будет генерировать QR-код из содержимого буфера обмена. Для этого нужна пара библиотек: qrcode и pyperclip.
Теперь можно запустить скрипт:
Содержимое буфера обмена окажется в виде QR-code прямо в консоли. Я проверял локально на WSL. Не знаю, сработает ли в консоли сервера. Мне кажется, что нет, так как при подключении по ssh у сервера доступа к локальному буферу не будет.
Я решил сам немного переделать скрипт, чтобы текст для qr-кода можно было передать либо как параметр, либо ввести его в консоль, если скрипт запущен без параметров:
Это, кстати, наглядный пример простоты изучения Python. Я не умею на нём программировать, но код настолько простой и человекочитаемый, что я просто посмотрел на него, загуглил, как реализуется текстовый ввод в python, а так же передачу текста через параметры командной строки. Посмотрел, как пишется простой цикл и всё реализовал. Потратил буквально 30 минут. Стало интересно самому разобраться. В итоге всё получилось. Завис только на одном моменте. Не знал, как вывести список, пропустив нулевой элемент в нём. В итоге нашёл -
Теперь можно передать нужную строку в качестве параметра запуска:
Если хотите изучать программирование, начните с Python. Я помню как посмотрев пару бесплатных уроков, написал простенького бота. Даже публиковал его здесь, но его сразу сломали :) В целом, python очень простой. Его даже приятно изучать и что-то писать, не то что bash.
#python
Можно воспользоваться очень простым скриптом на Python, который будет генерировать QR-код из содержимого буфера обмена. Для этого нужна пара библиотек: qrcode и pyperclip.
# pip install qrcode pyperclip
Теперь можно запустить скрипт:
# git clone https://github.com/Louise-h-aa/qrclip.git
# cd qrclip
# python3 qrclip.py
Содержимое буфера обмена окажется в виде QR-code прямо в консоли. Я проверял локально на WSL. Не знаю, сработает ли в консоли сервера. Мне кажется, что нет, так как при подключении по ssh у сервера доступа к локальному буферу не будет.
Я решил сам немного переделать скрипт, чтобы текст для qr-кода можно было передать либо как параметр, либо ввести его в консоль, если скрипт запущен без параметров:
#!/usr/bin/env python3
import sys
from qrcode import QRCode, ERROR_CORRECT_L
def print_qr_code(text: str) -> None:
qr = QRCode(
version = 1,
error_correction = ERROR_CORRECT_L,
box_size = 10,
border = 4
)
qr.add_data(text)
qr.make(fit = True)
qr.print_tty()
if __name__ == "__main__":
if len (sys.argv) > 1:
print_qr_code(sys.argv[1:])
else:
text: str = input()
print_qr_code(text)
Это, кстати, наглядный пример простоты изучения Python. Я не умею на нём программировать, но код настолько простой и человекочитаемый, что я просто посмотрел на него, загуглил, как реализуется текстовый ввод в python, а так же передачу текста через параметры командной строки. Посмотрел, как пишется простой цикл и всё реализовал. Потратил буквально 30 минут. Стало интересно самому разобраться. В итоге всё получилось. Завис только на одном моменте. Не знал, как вывести список, пропустив нулевой элемент в нём. В итоге нашёл -
[1:]
. Теперь можно передать нужную строку в качестве параметра запуска:
# python3 qrclip.py https://ya.ru https://serveradmin.ru
Если хотите изучать программирование, начните с Python. Я помню как посмотрев пару бесплатных уроков, написал простенького бота. Даже публиковал его здесь, но его сразу сломали :) В целом, python очень простой. Его даже приятно изучать и что-то писать, не то что bash.
#python
Ещё немного полезных для сисадминов и девопсов бесплатных курсов со stepik. Я и не думал, что столько народу их знает и проходит. Эта площадка как-то не на слуху. Мало от кого слышал про неё.
Сегодня предлагаю изучать Python. Я когда-то проходил небольшой курс по нему, кое-что программировал. Сделал бота для TG, разобрался, как там всё работает. Но в итоге забросил. В работе особо не нужно. Привык всё на bash писать. Для моих задач хватает. Но если надо какой-то python код посмотреть, разобраться, что там происходит и внести небольшие правки, то могу это сделать. В принципе, это как раз тот уровень, что нужен мне.
◽"Поколение Python": курс для начинающих. Курс разработан для школьников, для тех, кто изучает программирование с нуля. В нём даётся база: ввод-вывод, условия, типы данных, циклы, списки, функции. Ровно то, что нужно и нам в своей работе. Курс свежий, писался в 2020 году, обновляется, нет плохих отзывов. Победитель конкурса Stepik Awards 2020 в номинации "Лучший бесплатный онлайн-курс размещенный на платформе Stepik". За прохождение дают именной сертификат.
◽Программирование на Python. Курс от Института биоинформатики, созданного на базе Санкт-Петербургского академического университета РАН и с поддержкой JetBrains. У них в Питере офисы по соседству. Я его сам где-то на треть прошёл и забросил. Как и первый курс, этот адаптирован для новичков непрограммистов, поэтому даётся база. Он значительно короче первого курса, так что если нужны какие-то обзорные знания, то можно пройти его. А потом закрепить первым.
◽Телеграм-боты на Python и AIOgram. Более прикладной курс для тех, кто уже освоил базу. Здесь учат настраивать окружение, использовать IDE (VS Code), использоваться GIT, работать с API, деплоить код и т.д. Как раз тот уровень, который будет достаточен для инфраструктурщиков.
#обучение #бесплатно #python
Сегодня предлагаю изучать Python. Я когда-то проходил небольшой курс по нему, кое-что программировал. Сделал бота для TG, разобрался, как там всё работает. Но в итоге забросил. В работе особо не нужно. Привык всё на bash писать. Для моих задач хватает. Но если надо какой-то python код посмотреть, разобраться, что там происходит и внести небольшие правки, то могу это сделать. В принципе, это как раз тот уровень, что нужен мне.
◽"Поколение Python": курс для начинающих. Курс разработан для школьников, для тех, кто изучает программирование с нуля. В нём даётся база: ввод-вывод, условия, типы данных, циклы, списки, функции. Ровно то, что нужно и нам в своей работе. Курс свежий, писался в 2020 году, обновляется, нет плохих отзывов. Победитель конкурса Stepik Awards 2020 в номинации "Лучший бесплатный онлайн-курс размещенный на платформе Stepik". За прохождение дают именной сертификат.
◽Программирование на Python. Курс от Института биоинформатики, созданного на базе Санкт-Петербургского академического университета РАН и с поддержкой JetBrains. У них в Питере офисы по соседству. Я его сам где-то на треть прошёл и забросил. Как и первый курс, этот адаптирован для новичков непрограммистов, поэтому даётся база. Он значительно короче первого курса, так что если нужны какие-то обзорные знания, то можно пройти его. А потом закрепить первым.
◽Телеграм-боты на Python и AIOgram. Более прикладной курс для тех, кто уже освоил базу. Здесь учат настраивать окружение, использовать IDE (VS Code), использоваться GIT, работать с API, деплоить код и т.д. Как раз тот уровень, который будет достаточен для инфраструктурщиков.
#обучение #бесплатно #python
Stepik: online education
"Поколение Python": курс для начинающих
Курс с кучей тренировочных задач, удобный как для самостоятельного изучения, так и для работы в группе в рамках внеурочной деятельности.
Я уже много раз упоминал про использование простейшего http сервера на базе python:
Я его постоянно использую, когда надо быстро откуда-то забрать файлы без лишних телодвижений. Просто перехожу в нужную директорию, запускаю веб сервер, скачиваю файлы, открыв их по ip адресу сервера и завершаю работу веб сервера.
Мне понадобилось для проверки одного приложения запустить https сервер, так как по http оно не работает. Было лень настраивать для этого Nginx. Подумал, что наверное его так же можно быстро поднять с помощью python. Быстро нашёл решение.
Генерируем самоподписный ключ и сертификат в один файл:
Создаём файл
Запускаем веб сервер:
Идём по адресу https://172.20.0.210:8000 и видим содержимое директории или какой-то сайт, если в ней лежит index.html.
В принципе, можно сохранить этот файл и использовать для передачи файлов, если вам важно передавать по https. Я люблю такие простые и быстрые решения. Так что обязательно сохраню и буду использовать.
#webserver #python
# python3 -m http.server 8000
Я его постоянно использую, когда надо быстро откуда-то забрать файлы без лишних телодвижений. Просто перехожу в нужную директорию, запускаю веб сервер, скачиваю файлы, открыв их по ip адресу сервера и завершаю работу веб сервера.
Мне понадобилось для проверки одного приложения запустить https сервер, так как по http оно не работает. Было лень настраивать для этого Nginx. Подумал, что наверное его так же можно быстро поднять с помощью python. Быстро нашёл решение.
Генерируем самоподписный ключ и сертификат в один файл:
# openssl req -new -x509 -keyout localhost.pem -out localhost.pem -days 365 -nodes
Создаём файл
webserver.py
следующего содержания:import http.server, ssl
server_address = ('172.20.0.210', 8000)
httpd = http.server.HTTPServer(server_address, http.server.SimpleHTTPRequestHandler)
httpd.socket = ssl.wrap_socket(httpd.socket,server_side=True,certfile='localhost.pem',ssl_version=ssl.PROTOCOL_TLSv1_2)
httpd.serve_forever()
Запускаем веб сервер:
# python3 webserver.py
Идём по адресу https://172.20.0.210:8000 и видим содержимое директории или какой-то сайт, если в ней лежит index.html.
В принципе, можно сохранить этот файл и использовать для передачи файлов, если вам важно передавать по https. Я люблю такие простые и быстрые решения. Так что обязательно сохраню и буду использовать.
#webserver #python
Когда мне нужно было быстро поднять smb сервер, чтобы разово перекинуть какие-то файлы, раньше я устанавливал samba и делал для неё простейший конфиг.
Потом в Linux появилась поддержка протокола smb и сервера на его основе в ядре в виде пакета ksmbd. Стал использовать его. Хотя принципиально ни по времени настройки, ни по удобству он особо не выигрывает у самбы. Настройка плюс-минус такая же. В нём основное преимущество в скорости по сравнению с samba, что для разовых задач непринципиально.
На днях в комментариях поделились информацией о том, что есть простой smb сервер на базе python. Решил его попробовать. Он реализован в отдельном пакете python3-impacket.
Это довольно обширный набор сетевых утилит, которые обычно используют пентестеры. В том числе там есть и smb сервер. Запустить его можно в одну строку примерно так:
◽share - имя шары
◽/mnt/share - директория для smb сервера, не забудьте на неё сделать права 777, так как доступ анонимный
◽smb2support - использовать 2-ю версию протокола, если это не добавить, то с Windows 11 подключиться не получится.
Запуск сервера реально простой и быстрый. Не нужны ни конфиги, ни службы. Запускаем в консоли команду, делаем свои дела и завершаем работу сервера. Для разовых задач идеально, если бы не довольно жирный сам пакет impacket.
Если нужна аутентификация, то её можно добавить:
Только учтите, что винда по какой-то причине не предлагает ввести имя пользователя и пароль, а пытается автоматически подключиться, используя имя пользователя и пароль, под которыми вы находитесь в системе в данный момент. Я не очень понял, почему так происходит. Если кто-то знает, поделитесь информацией. По идее, должно вылезать окно аутентификации. Но по логам smbserver вижу, что винда автоматически случится под той учёткой, от которой пытаешься подключиться.
Если подключаться с Linux, то таких проблем нет. Смотрим информацию о сетевых папках сервера:
Подключаемся к настроенной шаре:
Такой вот инструмент. В принципе, удобно. Можно использовать наравне с веб сервером.
#python #fileserver
Потом в Linux появилась поддержка протокола smb и сервера на его основе в ядре в виде пакета ksmbd. Стал использовать его. Хотя принципиально ни по времени настройки, ни по удобству он особо не выигрывает у самбы. Настройка плюс-минус такая же. В нём основное преимущество в скорости по сравнению с samba, что для разовых задач непринципиально.
На днях в комментариях поделились информацией о том, что есть простой smb сервер на базе python. Решил его попробовать. Он реализован в отдельном пакете python3-impacket.
# apt install python3-impacket
Это довольно обширный набор сетевых утилит, которые обычно используют пентестеры. В том числе там есть и smb сервер. Запустить его можно в одну строку примерно так:
# cd /usr/share/doc/python3-impacket/examples/
# python3 smbserver.py share /mnt/share -smb2support
◽share - имя шары
◽/mnt/share - директория для smb сервера, не забудьте на неё сделать права 777, так как доступ анонимный
◽smb2support - использовать 2-ю версию протокола, если это не добавить, то с Windows 11 подключиться не получится.
Запуск сервера реально простой и быстрый. Не нужны ни конфиги, ни службы. Запускаем в консоли команду, делаем свои дела и завершаем работу сервера. Для разовых задач идеально, если бы не довольно жирный сам пакет impacket.
Если нужна аутентификация, то её можно добавить:
# python3 smbserver.py share /mnt/share -smb2support -username user -password 123
Только учтите, что винда по какой-то причине не предлагает ввести имя пользователя и пароль, а пытается автоматически подключиться, используя имя пользователя и пароль, под которыми вы находитесь в системе в данный момент. Я не очень понял, почему так происходит. Если кто-то знает, поделитесь информацией. По идее, должно вылезать окно аутентификации. Но по логам smbserver вижу, что винда автоматически случится под той учёткой, от которой пытаешься подключиться.
Если подключаться с Linux, то таких проблем нет. Смотрим информацию о сетевых папках сервера:
# smbclient -L 172.20.204.133 --user user --password=123
Подключаемся к настроенной шаре:
# smbclient //172.20.204.133/share --user user --password=123
Такой вот инструмент. В принципе, удобно. Можно использовать наравне с веб сервером.
#python #fileserver