Архив метки: Python

Python: скрипт подсчёт % CPU процесса из данных в /proc

26 октября 2014
 

 Не всегда есть возможность использовать psutil, поэтому — напишем свой велосипед. Для сбора информации нам потребуются два файла: /proc/<PID>/stat — для получения информации о процессе; /proc/stat — для информации о процессоре. Описание всех полей файла stat можно найти в документации ядра, в файле /usr/share/doc/kernel-doc-2.6.32/Documentation/filesystems/proc.txt, таблица 1-4. Нас интересуют тут такие поля: # cat /proc/stat cpu… Читать далее »

Python: строковые методы

15 октября 2014
 

 В Python  у объектов типа string имеется огромное количество методов для работы с ними. Они могут быть сгруппированы в два различных типа: первый — методы, которые модифицируют объект и создают новый, и второй — методы, которые предоставляют информацию об объекте. Строковые методы для изменения строки

Python: скрипт инкрементального или полного бекапа файлов

14 октября 2014
 

 Создаёт копию всех данных в каталоге /var/www/vhosts/ по понедельникам, и «инкрементальный» бекап только файлов, изменившихся за последние 24 часа. Упаковывает и сжимает в архив tar.bz2. На каждый день создаётся отдельная директория, хранятся 4 полных бекапа и 7 — ежедневных. Для бекапа баз MySQL — второй скрипт: Python: скрипт бекапа баз данных MySQL/MariaDB.

Python: утилита для создания нового Apache VirtualHost + пользователь + база MySQL

14 сентября 2014
 

 Готовясь с переезду со старого сервера (FreeBSD) на новый (CentOS) — пришлось задуматься о том, сколько сайтов надо создавать вручную: добавить пользователя, создать директории, файлы логов, отредактировать файл конфигурации Apache HTTP. С целью упростить себе жизнь, а заодно — попрактиковаться в Python, задумался следующий скрипт. Предполагается, что Apache настроен с поддержкой suEXEC + mod_fcgid (CentOS:… Читать далее »

Python: зачем нужен if __name__ == «__main__» ?

12 сентября 2014
 

 Во многих модулях можно встретить конструкцию вида: if __name__ == «__main__»: func() Её основное назначение — разделение кода, который будет выполнятся при вызове кода как модуля (при импортировании его в другой скрипт) — и при запуске самого модуля, как отдельного файла. Возьмём такой пример. Скрипт 1: #!/usr/bin/env python print(‘Script 1. My name is: %s’ % __name__)… Читать далее »

Python: скрипт LogParcer

11 сентября 2014
 

 Задача скрипта — выполнять постоянную проверку лога приложения и, в случае обнаружения сообщений об ошибке подключения к базе данных, останавливать Tomcat. Т.к. после трёх неудачных попыток подключения аккаунт на Oracle-сервере блокируется — необходимо было жестко останавливать приложение до того, как аккаунт будет заблокирован. Для PROD-сервера — конечно, «убивать» приложение нельзя, поэтому — там скрипт только… Читать далее »

Python: модуль pysed — расширенный аналог редактора sed

28 августа 2014
 

 Страница проекта на PyPI. Там есть достаточно подробный HowTo с примерами, но мало показано применение модуля непосредственно в коде — больше в консоли. В Python есть строковый метод replace: Help on function replace in string: string.replace = replace(s, old, new, maxsplit=-1) replace (str, old, new[, maxsplit]) -> string Return a copy of string str with… Читать далее »

Python: работа с файлами

24 августа 2014
 

 Для работы с файлами в Python используется встроенная функция open(): Help on built-in function open in module __builtin__: open(…) open(name[, mode[, buffering]]) -> file object Open a file using the file() type, returns a file object. This is the preferred way to open a file. С помощью open() создаётся новый объект, над которым потом можно выполнять… Читать далее »

Python: ООП — наследование классов

21 августа 2014
 

 Наследование в ООП Понимание наследования в ООП и классах Python обязательно для понимания. Рассмотрим простые примеры наследования. Возьмём код из статьи Python: классы — краткий обзор: аргументы, методы и специальные методы, импорт классов: class thisIsClass: »’This is class documentation»’ # зададим два аргумента arg1 = ‘string’ arg2 = 100 # зададим два аргумента — changearg1, changearg2… Читать далее »

Python: установка и использование IPython

19 августа 2014
 

 IPython — интерактивная оболочка для языка программирования Python, которая предоставляет расширенную интроспекцию, дополнительный командный синтаксис, подсветку кода и автоматическое дополнение. Является компонентом пакета программ SciPy. (c) Wiki Установка через PIP: # pip install ipython Однако, на CentOS 6.5, в котором используется: # python -V Python 2.6.6 установка через pip невозможна, так как: ERROR: IPython requires Python version 2.7 or 3.3 or… Читать далее »