- Python для системных администраторов
- Эффективное управление серверами UNIX и Linux.
- Гифт Н., Джонс Д. «Python в системном администрировании UNIX и Linux»Символ-Плюс, 2009 год, 512 стр. (6,37 мб. djvu + 4,13 мб. Source Code)
- Начало работы с Python в Windows для создания сценариев и автоматизации Get started using Python on Windows for scripting and automation
- Настройка среды разработки Set up your development environment
- Установка Python Install Python
- Установка Visual Studio Code Install Visual Studio Code
- Установка расширения Microsoft Python Install the Microsoft Python extension
- Откройте встроенный терминал PowerShell в VS Code Open the integrated PowerShell terminal in VS Code
- Установка Git (необязательно) Install Git (optional)
- Пример сценария для вывода структуры каталога файловой системы Example script to display the structure of your file system directory
- Пример сценария для изменения всех файлов в каталоге Example script to modify all files in a directory
Python для системных администраторов
Эффективное управление серверами UNIX и Linux.
Гифт Н., Джонс Д. «Python в системном администрировании UNIX и Linux»Символ-Плюс, 2009 год, 512 стр. (6,37 мб. djvu + 4,13 мб. Source Code)
Книга показывает как можно эффективно использовать язык программирования Python для системных администраторов. Решать многие повседневные задачи управления серверами UNIX и Linux с его помощью. Все задачи разбиты по главам, где показаны примеры практического применения скриптов для резервного копирования данных, архивирования или созданию собственных инструментов командной строки, создание многозадачных приложений, разработки сценариев для выполнения запланированных задач.
Темы рассмотренные в книге: организация разделения процессов и информационное взаимодействие между ними с использованием сетевых протоколов и задач. Разработка интерактивных программ с графической оболочкой. Обработка обращений и взаимодействие с базами данных. Создание многозадачных приложений работающих с Google App Engine.
Кроме того, авторы книги создали доступную для загрузки и свободно распространяемую — VM (виртуальную машину на базе Ubuntu), включающую исходные тексты примеров из книги и способную выполнять примеры, использующие SNMP, IPython, SQLAlchemy и многие другие утилиты. Книга рассчитан на системных администраторов и программистов, начинающих осваивать язык Python.
ISBN 978-5-93286-149-3 ISBN 978-0-596-51582-9 (англ)
1. Введение 21
Почему Python 21
Мотивация 28
Основы 29
Выполнение инструкций в языке Python 30
Использование функций в языке Python 35
Повторное использование программного кода с помощью инструкции import 39
2. IPython 45
Установка IPython 46
Базовые понятия 48
Справка по специальным функциям 56
Командная оболочка UNIX 61
Сбор информации 81
Автоматизация и сокращения 95
В заключение 101
3. Текст 102
Встроенные компоненты Python и модули 103
Анализ журналов 146
ElementTree 153
В заключение 158
4. Создание документации и отчетов 159
Автоматизированный сбор информации 160
Сбор информации вручную 163
Форматирование информации 174
Распространение информации 180
В заключение 185
5. Сети 186
Сетевые клиенты 186
Средства вызова удаленных процедур 199
SSH 206
Twisted 209
Scapy 216
Создание сценариев с использованием Scapy 219
6. Данные 221
Введение 221
Использование модуля OS для взаимодействия с данными 222
Копирование, перемещение, переименование и удаление данных 224
Работа с путями, каталогами и файлами 226
Сравнение данных 230
Объединение данных 233
Поиск файлов и каталогов по шаблону 239
Обертка для rsync 241
Метаданные: данные о данных 244
Архивирование, сжатие, отображение и восстановление 246
Использование модуля tarfile для создания архивов TAR 246
Использование модуля tarfile для проверки содержимого файлов TAR 249
7. SNMP 252
Введение 252
Краткое введение в SNMP 252
IPython и Net-SNMP 256
Исследование центра обработки данных 260
Получение множества значений с помощью SNMP 263
Создание гибридных инструментов SNMP 270
Расширение возможностей Net-SNMP 271
Управление устройствами через SNMP 275
Интеграция SNMP в сеть предприятия с помощью Zenoss 276
8. Окрошка из операционных систем 278
Введение 278
Кросс-платформенное программирование на языке Python в UNIX 279
Pylnotify 291
OS X 293
Администрирование систем Red Hat Linux 298
Администрирование Ubuntu 299
Администрирование систем Solaris 299
Виртуализация 300
Облачная обработка данных 301
Использование Zenoss для управления серверами Windows из Linux 309
9. Управление пакетами 313
Введение 313
Setuptools и пакеты Python Eggs 314
Использование easy_install 315
Дополнительные особенности easy_install 318
Создание пакетов 324
Точки входа и сценарии консоли 329
Регистрация пакета в Python Package Index 330
Distutils 332
Buildout 335
Использование Buildout 335
Разработка с использованием Buildout 339
Virtualenv 339
Менеджер пакетов ЕРМ 344
10. Процессы и многозадачность 350
Введение 350
Модуль subprocess 350
Использование программы Supervisor т для управления процессами 361
Использование программы screen для управления процессами 364
Потоки выполнения в Python 365
Процессы 378
Модуль processing 379
Планирование запуска процессов Python 382
Запуск демона 384
В заключение 388
11. Создание графического интерфейса 390
Теория создания графического интерфейса 390
Создание простого приложения PyGTK 392
Создание приложения PyGTK для просмотра файла журнала веб-сервера Apache 394
Создание приложения для просмотра файла журнала веб-сервера Apache с использованием curses 398
Веб-приложения 403
Django 404
В заключение 426
12. Сохранность данных 427
Простая сериализация 428
Реляционная сериализация 448
В заключение 458
13. Командная строка 459
Введение 459
Основы использования потока стандартного ввода 460
Введение в optparse 462
Простые шаблоны использования optparse 462
Внедрение команд оболочки в инструменты командной строки на языке Python 470
Интеграция конфигурационных файлов 477
В заключение 479
14. Практические примеры 480
Управление DNS с помощью сценариев на языке Python 480
Использование протокола LDAP для работы с OpenLDAP, Active Directory и другими продуктами из сценариев на языке Python 482
Составление отчета на основе файлов журналов Apache 484
Зеркало FTP 492
Приложение. Функции обратного вызова 496
Алфавитный указатель 499
Начало работы с Python в Windows для создания сценариев и автоматизации Get started using Python on Windows for scripting and automation
Ниже приведено пошаговое руководство по настройке среды разработки и началу работы с Python для создания сценариев и автоматизации операций файловой системы в Windows. The following is a step-by-step guide for setting up your developer environment and getting you started using Python for scripting and automating file system operations on Windows.
В этой статье рассматривается настройка среды для использования некоторых полезных библиотек в Python, которые могут автоматизировать задачи на разных платформах, таких как поиск в файловой системе, доступ к Интернету, анализ типов файлов и т. д. с помощью подхода, ориентированного на Windows. This article will cover setting up your environment to use some of the helpful libraries in Python that can automate tasks across platforms, like searching your file system, accessing the internet, parsing file types, etc., from a Windows-centered approach. Для операций, относящихся к Windows, извлеките ctypes, совместимую с C библиотеку функций с кодом на другом языке программирования для Python, winreg, функции, предоставляющие API реестра Windows для Python, и Python/WinRT, включив доступ к API среды выполнения Windows в Python. For Windows-specific operations, check out ctypes, a C-compatible foreign function library for Python, winreg, functions exposing the Windows registry API to Python, and Python/WinRT, enabling access Windows Runtime APIs from Python.
Настройка среды разработки Set up your development environment
При использовании Python для написания скриптов, выполняющих операции файловой системы, рекомендуется установить Python из Microsoft Store. When using Python to write scripts that perform file system operations, we recommend you install Python from the Microsoft Store. При установке из Microsoft Store используется базовый интерпретатор Python3, но в дополнение к автоматическому обновлению также настраиваются параметры пути для текущего пользователя (без необходимости доступа администратора). Installing via the Microsoft Store uses the basic Python3 interpreter, but handles set up of your PATH settings for the current user (avoiding the need for admin access), in addition to providing automatic updates.
Если вы используете Python для веб-разработки в Windows, рекомендуем использовать другую установку с помощью подсистемы Windows для Linux. If you are using Python for web development on Windows, we recommend a different setup using the Windows Subsystem for Linux. Ознакомьтесь с пошаговыми инструкциями в нашем руководстве: Начало работы с Python для разработки веб-приложений в Windows. Find a walkthrough in our guide: Get started using Python for web development on Windows. Если вы новичок в Python, ознакомьтесь с нашим руководством: Get started using Python on Windows for beginners (Приступая к работе с Python в Windows для начинающих). If you’re brand new to Python, try our guide: Get started using Python on Windows for beginners. В некоторых сложных сценариях (например, при необходимости модификации или доступа к установленным файлам Python, создания копий двоичных файлов или непосредственного использования библиотек DLL Python) может потребоваться загрузить определенный выпуск Python непосредственно с сайта python.org или установить альтернативное средство, например Anaconda, Jython, PyPy, WinPython, IronPython и т. д. Мы рекомендуем это только в том случае, если вы более продвинутый программист на Python и у вас есть конкретная причина выбрать альтернативную реализацию. For some advanced scenarios (like needing to access/modify Python’s installed files, make copies of binaries, or use Python DLLs directly), you may want to consider downloading a specific Python release directly from python.org or consider installing an alternative, such as Anaconda, Jython, PyPy, WinPython, IronPython, etc. We only recommend this if you are a more advanced Python programmer with a specific reason for choosing an alternative implementation.
Установка Python Install Python
Чтобы установить Python с помощью Microsoft Store, сделайте следующее: To install Python using the Microsoft Store:
Перейдите в меню Пуск (значок Windows в нижнем левом углу), введите «Microsoft Store» и щелкните ссылку, чтобы открыть магазин. Go to your Start menu (lower left Windows icon), type «Microsoft Store», select the link to open the store.
Когда магазин откроется, выберите Поиск в верхнем правом меню и введите «Python». Once the store is open, select Search from the upper-right menu and enter «Python». Выберите «Python 3.7» из результатов в разделе приложений. Open «Python 3.7» from the results under Apps. Щелкните Получить. Select Get.
После того как Python завершит процесс загрузки и установки, откройте Windows PowerShell, используя меню Пуск (значок Windows в нижнем левом углу). Once Python has completed the downloading and installation process, open Windows PowerShell using the Start menu (lower left Windows icon). После открытия PowerShell введите Python —version , чтобы убедиться, что Python3 установлен на компьютере. Once PowerShell is open, enter Python —version to confirm that Python3 has been installed on your machine.
Установка Python из Microsoft Store содержит стандартный диспетчер пакетов pip. The Microsoft Store installation of Python includes pip, the standard package manager. Pip позволяет устанавливать дополнительные пакеты, которые не входят в стандартную библиотеку Python, и управлять ими. Pip allows you to install and manage additional packages that are not part of the Python standard library. Чтобы убедиться, что у вас есть pip, который можно использовать для установки пакетов и управления ими, введите pip —version . To confirm that you also have pip available to install and manage packages, enter pip —version .
Установка Visual Studio Code Install Visual Studio Code
При использовании VS Code в качестве текстового редактора или интегрированной среды разработки (IDE) вам доступны IntelliSense (помощь в завершении кода), анализ кода (помогает избежать ошибок в коде), поддержка отладки (помогает находить ошибки в коде после запуска), фрагменты кода (шаблоны для небольших повторно используемых блоков кода) и модульное тестирование (тестирование интерфейса кода с различными типами входных данных). By using VS Code as your text editor / integrated development environment (IDE), you can take advantage of IntelliSense (a code completion aid), Linting (helps avoid making errors in your code), Debug support (helps you find errors in your code after you run it), Code snippets (templates for small reusable code blocks), and Unit testing (testing your code’s interface with different types of input).
Загрузите VS Code для Windows и следуйте инструкциям по установке: https://code.visualstudio.com. Download VS Code for Windows and follow the installation instructions: https://code.visualstudio.com.
Установка расширения Microsoft Python Install the Microsoft Python extension
Установите расширение Microsoft Python, чтобы воспользоваться преимуществами функций поддержки VS Code. You will need to install the Microsoft Python extension in order to take advantage of the VS Code support features. Подробнее. Learn more.
Откройте окно расширения VS Code с помощью CTRL+SHIFT+X (или используйте меню, чтобы перейти к Вид > Расширения). Open the VS Code Extensions window by entering Ctrl+Shift+X (or use the menu to navigate to View > Extensions).
В поле Поиск расширений в Marketplace введите: Python. In the top Search Extensions in Marketplace box, enter: Python.
Найдите расширение Python (ms-python.python) от Microsoft и нажмите зеленую кнопку Установить. Find the Python (ms-python.python) by Microsoft extension and select the green Install button.
Откройте встроенный терминал PowerShell в VS Code Open the integrated PowerShell terminal in VS Code
VS Code содержит встроенный терминал, который позволяет открывать командную строку Python с помощью PowerShell, создавая простой рабочий процесс между редактором кода и командной строкой. VS Code contains a built-in terminal that enables you to open a Python command line with PowerShell, establishing a seamless workflow between your code editor and command line.
Откройте терминал в VS Code, выберите Просмотр > Терминал или используйте сочетание клавиш Ctrl+` (используя символ обратного апострофа). Open the terminal in VS Code, select View > Terminal, or alternatively use the shortcut Ctrl+` (using the backtick character).
По умолчанию этим терминалом должен быть PowerShell, но если его нужно изменить, используйте Ctrl+Shift+P, чтобы ввести команду. The default terminal should be PowerShell, but if you need to change it, use Ctrl+Shift+P to enter the command pallette. Введите терминал: Выберите Оболочку по умолчанию, и отобразится список параметров терминала, содержащий PowerShell, командную строку, WSL и т. д. Выберите ту, которую хотите использовать, и нажмите Ctrl+Shift+` (с помощью обратного апострофа), чтобы создать новый терминал. Enter Terminal: Select Default Shell and a list of terminal options will display containing PowerShell, Command Prompt, WSL, etc. Select the one you’d like to use and enter Ctrl+Shift+` (using the backtick) to create a new terminal.
В окне терминала VS Code откройте Python, введя: python Inside your VS Code terminal, open Python by entering: python
Попробуйте использовать интерпретатор Python, введя: print(«Hello World») . Try the Python interpreter out by entering: print(«Hello World») . Python вернет фразу «Hello World». Python will return your statement «Hello World».
Чтобы выйти из Python, введите exit() , quit() или нажмите клавиши CTRL+Z. To exit Python, you can enter exit() , quit() , or select Ctrl-Z.
Установка Git (необязательно) Install Git (optional)
Если вы планируете совместно работать над кодом Python с другими пользователями или размещать проект на сайте с открытым исходным кодом (например, GitHub), примите во внимание, что VS Code поддерживает управление версиями с помощью Git. If you plan to collaborate with others on your Python code, or host your project on an open-source site (like GitHub), VS Code supports version control with Git. Вкладка системы управления версиями в VS Code отслеживает все изменения и содержит общие команды Git (добавление, фиксация, принудительная отправка, извлечение) прямо в пользовательском интерфейсе. The Source Control tab in VS Code tracks all of your changes and has common Git commands (add, commit, push, pull) built right into the UI. Сначала необходимо установить Git для включения панели управления версиями. You first need to install Git to power the Source Control panel.
Скачайте и установите Git для Windows с веб-сайта git-scm. Download and install Git for Windows from the git-scm website.
В комплект входит мастер установки, который задает вам ряд вопросов о параметрах установки Git. An Install Wizard is included that will ask you a series of questions about settings for your Git installation. Рекомендуется использовать все параметры по умолчанию, если у вас нет конкретной причины изменить какой-либо из них. We recommend using all of the default settings, unless you have a specific reason for changing something.
Если вы никогда не использовали Git, обратитесь к руководствам по GitHub. Они помогут вам приступить к работе. If you’ve never worked with Git before, GitHub Guides can help you get started.
Пример сценария для вывода структуры каталога файловой системы Example script to display the structure of your file system directory
Распространенные задачи системного администрирования могут занимать огромное количество времени, но с помощью сценария Python вы можете их автоматизировать и не тратить на них время вовсе. Common system administration tasks can take a huge amount of time, but with a Python script, you can automate these tasks so that they take no time at all. Например, Python может читать содержимое файловой системы компьютера и выполнять такие операции, как вывод структуры файлов и каталогов, перемещение папок из одного каталога в другой или переименование большого количества файлов. For example, Python can read the contents of your computer’s file system and perform operations like printing an outline of your files and directories, moving folders from one directory to another, or renaming hundreds of files. Как правило, такие задачи могут занимать массу времени, если выполнять их вручную. Normally, tasks like these could take up a ton of time if you were to perform them manually. Вместо этого используйте сценарий Python! Use a Python script instead!
Начнем с простого сценария, в котором описано дерево каталогов и отображено структуру каталогов. Let’s begin with a simple script that walks a directory tree and displays the directory structure.
Откройте PowerShell, используя меню Пуск (нижний левый значок Windows). Open PowerShell using the Start menu (lower left Windows icon).
Создайте каталог для проекта: mkdir python-scripts , а затем откройте этот каталог: cd python-scripts . Create a directory for your project: mkdir python-scripts , then open that directory: cd python-scripts .
Создайте несколько каталогов для использования с нашим примером сценария: Create a few directories to use with our example script:
Создайте несколько файлов в этих каталогах для использования с нашим сценарием: Create a few files within those directories to use with our script:
Создайте в каталоге Python-Scripts новый файл Python: Create a new python file in your python-scripts directory:
Откройте проект в VS Code, введя: code . Open your project in VS Code by entering: code .
Откройте окно проводника VS Code, нажав Ctrl+Shift+E (или используйте меню, чтобы перейти к Вид > Обозреватель) и выберите только что созданный файл list-directory-contents.py. Open the VS Code File Explorer window by entering Ctrl+Shift+E (or use the menu to navigate to View > Explorer) and select the list-directory-contents.py file that you just created. Расширение Microsoft Python будет автоматически загружать интерпретатор Python. The Microsoft Python extension will automatically load a Python interpreter. Загруженный интерпретатор можно увидеть в нижней части окна VS Code. You can see which interpreter was loaded on the bottom of your VS Code window.
Python — интерпретируемый язык, то есть он выступает в качестве виртуальной машины, имитируя физический компьютер. Python is an interpreted language, meaning that it acts as a virtual machine, emulating a physical computer. Существуют различные типы интерпретаторов Python, которые можно использовать: Python 2, Python 3, Anaconda, PyPy и т. д. Чтобы выполнить код Python и получить Python IntelliSense, необходимо указать интерпретатор, который следует использовать в VS Code. There are different types of Python interpreters that you can use: Python 2, Python 3, Anaconda, PyPy, etc. In order to run Python code and get Python IntelliSense, you must tell VS Code which interpreter to use. Если нет конкретной причины для выбора другого интерпретатора, мы рекомендуем придерживаться интерпретатора, который VS Code выбирает по умолчанию (Python 3 в нашем случае). We recommend sticking with the interpreter that VS Code chooses by default (Python 3 in our case) unless you have a specific reason for choosing something different. Чтобы изменить интерпретатор Python, выберите интерпретатор, который сейчас отображается в синей панели в нижней части окна VS Code, или откройте палитру команд (Ctrl+Shift+P) и введите команду Python: Select Interpreter (Python: выбор интерпретатора). To change the Python interpreter, select the interpreter currently displayed in blue bar on the bottom of your VS Code window or open the Command Palette (Ctrl+Shift+P) and enter the command Python: Select Interpreter. На экране появится список установленных интерпретаторов Python. This will display a list of the Python interpreters that you currently have installed. Using Python environments in VS Code(Использование сред Python в VS Code). Learn more about configuring Python environments.
Вставьте следующий код в файл list-directory-contents.py, а затем выберите Сохранить: Paste the following code into your list-directory-contents.py file and then select save:
Откройте интегрированный терминал VS Code (Ctrl+` с помощью символа обратного апострофа) и введите каталог src, в котором вы только что сохранили сценарий Python: Open the VS Code integrated terminal (Ctrl+`, using the backtick character) and enter the src directory where you just saved your Python script:
Запустите сценарий в PowerShell с помощью: Run the script in PowerShell with:
Результат должен выглядеть примерно так: You should see output that looks like this:
Используйте Python, чтобы вывести выходные данные каталога файловой системы в собственный текстовый файл, введя следующую команду непосредственно в терминале PowerShell: python3 list-directory-contents.py > food-directory.txt Use Python to print that file system directory output to it’s own text file by entering this command directly in your PowerShell terminal: python3 list-directory-contents.py > food-directory.txt
Поздравляем! Congratulations! Вы только что написали автоматизированный сценарий системного администрирования, который считывает созданные вами каталог и файлы и использует Python для отображения, а затем для вывода структуры каталога в собственный текстовый файл. You’ve just written an automated systems administration script that reads the directory and files you created and uses Python to display, and then print, the directory structure to it’s own text file.
Если вы не можете установить Python 3 из Microsoft Store, прочтите об этой проблеме, чтобы ознакомиться с примером управления путями для этого примера скрипта. If you’re unable to install Python 3 from the Microsoft Store, see this issue for an example of how to handle the pathing for this sample script.
Пример сценария для изменения всех файлов в каталоге Example script to modify all files in a directory
В этом примере используются только что созданные файлы и каталоги, каждый из которых следует переименовать путем добавления даты последнего изменения файла в начало имени файла. This example uses the files and directories you just created, renaming each of the files by adding the file’s last modified date to the beginning of the filename.
В папке src в каталоге python-scripts создайте новый файл Python для своего сценария: Inside the src folder in your python-scripts directory, create a new Python file for your script:
Откройте файл update-filenames.py, вставьте следующий код в файл и сохраните его: Open the update-filenames.py file, paste the following code into the file, and save it:
os.getmtime возвращает метку времени в тактах, что трудно читать. os.getmtime returns a timestamp in ticks, which is not easily readable. Сначала его необходимо преобразовать в стандартную строку datetime. It must be converted to a standard datetime string first.
Протестируйте сценарий update-filenames.py, запустив его: python3 update-filenames.py а затем снова запустите сценарий list-directory-contents.py: python3 list-directory-contents.py Test your update-filenames.py script by running it: python3 update-filenames.py and then running your list-directory-contents.py script again: python3 list-directory-contents.py
Вы должны получить следующий результат: You should see output that looks like this:
Используйте Python для вывода новых имен каталогов файловой системы с меткой времени последнего изменения в начале текстового файла, введя эту команду непосредственно в терминале PowerShell: python3 list-directory-contents.py > food-directory-last-modified.txt Use Python to print the new file system directory names with the last-modified timestamp prepended to it’s own text file by entering this command directly in your PowerShell terminal: python3 list-directory-contents.py > food-directory-last-modified.txt
Надеемся, что вы узнали несколько интересных вещей об использовании сценариев Python для автоматизации основных задач системного администрирования. Hope you learned a few fun things about using Python scripts for automating basic systems administration tasks. Конечно, есть еще масса информации, но мы надеемся, что это позволит вам начать работу с нужным нижним колонтитулом. There is, of course, a ton more to know, but we hope this got you started on the right foot. Ниже мы предоставили несколько дополнительных ресурсов, чтобы вы продолжили обучение. We’ve shared a few additional resources to continue learning below.