0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Теги: postgresql, python, awk, mysql, ssh, shell, bash (bourne again shell), gnu/linux, условные операторы, операторы цикла, script_name.sh, cron, telnet, бэкап файлов, дампинг, sed, freebsd, windows, macos, unix, symbian, android, парсинг лога, oracle, sybase, конвертация .ini-файлов, configparser, md5</p>
1
<p>Теги: postgresql, python, awk, mysql, ssh, shell, bash (bourne again shell), gnu/linux, условные операторы, операторы цикла, script_name.sh, cron, telnet, бэкап файлов, дампинг, sed, freebsd, windows, macos, unix, symbian, android, парсинг лога, oracle, sybase, конвертация .ini-файлов, configparser, md5</p>
2
<p>Любой системный администратор ежедневно решает большое количество разнообразных задач, призванных "облегчить жизнь" как ему самому, так и пользователям. Это мониторинг серверов или отдельных процессов, резервное копирование баз данных, просмотр логов с последующей выборкой необходимой информации, настройка и совершенствование системы информационной безопасности, заведение и редактирование пользовательских учетных записей и т.д.</p>
2
<p>Любой системный администратор ежедневно решает большое количество разнообразных задач, призванных "облегчить жизнь" как ему самому, так и пользователям. Это мониторинг серверов или отдельных процессов, резервное копирование баз данных, просмотр логов с последующей выборкой необходимой информации, настройка и совершенствование системы информационной безопасности, заведение и редактирование пользовательских учетных записей и т.д.</p>
3
<p>Чтобы написать скрипты, которые помогут автоматизировать большую часть рутинной работы, можно использовать как Bash, так и Python. Что же выбрать?</p>
3
<p>Чтобы написать скрипты, которые помогут автоматизировать большую часть рутинной работы, можно использовать как Bash, так и Python. Что же выбрать?</p>
4
<h2>Bash (Bourne Again Shell)</h2>
4
<h2>Bash (Bourne Again Shell)</h2>
5
<p>Наиболее часто используемая командная оболочка по умолчанию в операционных системах<strong>GNU/Linux</strong>. Она включает в себя простой язык программирования, который позволяет при помощи условных операторов и операторов цикла использовать утилиты и программы операционной системы для написания как простых, так и сложных скриптов.</p>
5
<p>Наиболее часто используемая командная оболочка по умолчанию в операционных системах<strong>GNU/Linux</strong>. Она включает в себя простой язык программирования, который позволяет при помощи условных операторов и операторов цикла использовать утилиты и программы операционной системы для написания как простых, так и сложных скриптов.</p>
6
<p>В этом плане Bash, несомненно, обладает некоторыми преимуществами, в частности, универсальностью и доступностью. Для того, чтобы написать скрипт на Bash, установка дополнительных пакетов не требуется. Достаточно создать файл вида<strong>script_name.sh</strong>с последовательно исполняемыми операциями и запустить его, либо добавить в качестве задачи планировщика<strong>cron</strong>.</p>
6
<p>В этом плане Bash, несомненно, обладает некоторыми преимуществами, в частности, универсальностью и доступностью. Для того, чтобы написать скрипт на Bash, установка дополнительных пакетов не требуется. Достаточно создать файл вида<strong>script_name.sh</strong>с последовательно исполняемыми операциями и запустить его, либо добавить в качестве задачи планировщика<strong>cron</strong>.</p>
7
<p>Вот далеко не полный список задач, которые можно решить с использованием bash-скрипта: - вывод нескольких последних строк лога или поиск и выборка ключевых слов с последующим сохранением в отдельный файл; - архивирование каталога с данными с последующей отправкой архива на удаленный компьютер по<strong>ssh</strong>или<strong>telnet</strong>; - настройка системы бэкапа файлов базы данных с использованием<strong>дампинга</strong>; - запрос информации о конфигурации нескольких компьютеров в сети и отправка файла с результатами по e-mail; - поиск дубликатов файлов на диске с последующим выводом списка имен и запросом на удаление; - рекурсивная замена владельцев отдельных файлов и каталогов на диске.</p>
7
<p>Вот далеко не полный список задач, которые можно решить с использованием bash-скрипта: - вывод нескольких последних строк лога или поиск и выборка ключевых слов с последующим сохранением в отдельный файл; - архивирование каталога с данными с последующей отправкой архива на удаленный компьютер по<strong>ssh</strong>или<strong>telnet</strong>; - настройка системы бэкапа файлов базы данных с использованием<strong>дампинга</strong>; - запрос информации о конфигурации нескольких компьютеров в сети и отправка файла с результатами по e-mail; - поиск дубликатов файлов на диске с последующим выводом списка имен и запросом на удаление; - рекурсивная замена владельцев отдельных файлов и каталогов на диске.</p>
8
<p>Стоит отметить, что возможности командного интерпретатора зачастую используются не полностью. Многие администраторы выбирают Bash для написания простых или средних по сложности скриптов. В крупных проектах, где есть специфические задачи и требуется работа с разнообразными входными данными, многомерными массивами и сокетами больше доверяют Perl, Python или Ruby.</p>
8
<p>Стоит отметить, что возможности командного интерпретатора зачастую используются не полностью. Многие администраторы выбирают Bash для написания простых или средних по сложности скриптов. В крупных проектах, где есть специфические задачи и требуется работа с разнообразными входными данными, многомерными массивами и сокетами больше доверяют Perl, Python или Ruby.</p>
9
<p>Отчасти это связано с проблемами переносимости bash-скриптов на другие платформы, (например, Windows), отчасти с тем, что Bash воспринимается скорее как средство автоматизации работы с файлами и утилитами, чем полноценный скриптовый язык, даже несмотря на наличие в арсенале<strong>sed</strong>и<strong>awk</strong>. Ещё одним минусом Bash является то, что при выполнении скрипта каждая запущенная с его помощью утилита создаёт свой процесс, что отражается на скорости выполнения и уровне использования ресурсов системы.</p>
9
<p>Отчасти это связано с проблемами переносимости bash-скриптов на другие платформы, (например, Windows), отчасти с тем, что Bash воспринимается скорее как средство автоматизации работы с файлами и утилитами, чем полноценный скриптовый язык, даже несмотря на наличие в арсенале<strong>sed</strong>и<strong>awk</strong>. Ещё одним минусом Bash является то, что при выполнении скрипта каждая запущенная с его помощью утилита создаёт свой процесс, что отражается на скорости выполнения и уровне использования ресурсов системы.</p>
10
<h2>Python</h2>
10
<h2>Python</h2>
11
<p>В отличие от Bash, Python является полноценным объектно-ориентированным языком программирования. Он входит в состав большинства распространенных дистрибутивов<strong>GNU/Linux</strong>, что позволяет использовать его в качестве альтернативной основы для написания скриптов, решающих задачи системного администрирования. Вот лишь несколько причин, по которым выбор нередко падает на Python:</p>
11
<p>В отличие от Bash, Python является полноценным объектно-ориентированным языком программирования. Он входит в состав большинства распространенных дистрибутивов<strong>GNU/Linux</strong>, что позволяет использовать его в качестве альтернативной основы для написания скриптов, решающих задачи системного администрирования. Вот лишь несколько причин, по которым выбор нередко падает на Python:</p>
12
<p><strong>Удобочитаемость и компактность кода</strong>Благодаря соблюдению чётких синтаксических правил, скрипт, написанный на Python, будет понятен любому IT-специалисту, знакомому с программированием, даже если он видит этот код впервые. В то же время, при внесении изменений следует обращать внимание на правильную расстановку отступов - в Python они используются в качестве разграничителей блоков кода.</p>
12
<p><strong>Удобочитаемость и компактность кода</strong>Благодаря соблюдению чётких синтаксических правил, скрипт, написанный на Python, будет понятен любому IT-специалисту, знакомому с программированием, даже если он видит этот код впервые. В то же время, при внесении изменений следует обращать внимание на правильную расстановку отступов - в Python они используются в качестве разграничителей блоков кода.</p>
13
<p><strong>Наличие (даже в стандартной комплектации) большого количества модулей, подключаемых с помощью оператора import</strong>Каждый из модулей состоит из набора функций и методов, которые поддерживают основные системные протоколы и форматы и легко используются при написании собственного кода. Таким образом, экономится время, а скрипт будет выглядеть более структурированным. Возможности Python также позволяют написать и подключить собственный модуль, если поставленная задача отличается специфичностью решения;</p>
13
<p><strong>Наличие (даже в стандартной комплектации) большого количества модулей, подключаемых с помощью оператора import</strong>Каждый из модулей состоит из набора функций и методов, которые поддерживают основные системные протоколы и форматы и легко используются при написании собственного кода. Таким образом, экономится время, а скрипт будет выглядеть более структурированным. Возможности Python также позволяют написать и подключить собственный модуль, если поставленная задача отличается специфичностью решения;</p>
14
<p><strong>Кроссплатформенность</strong>Скрипты Python работают и в среде<strong>Windows</strong>, и в<strong>MacOS</strong>, и в<strong>UNIX</strong>, включая<strong>FreeBSD</strong>и<strong>GNU/Linux</strong>. Этот язык широко используется и на мобильных платформах, таких как<strong>Symbian</strong>,<strong>Android</strong>. В этом преимущество Python. Bash такими возможностями не обладает и является "встроенным" инструментарием только для семейств<strong>_NIX</strong>,<strong>_BSD</strong>и<strong>GNU/Linux</strong>. Скрипт, однажды написанный на Python, с большой долей вероятности будет работать на разных платформах, решая схожие задачи, при условии, что код не будет содержать специфических для конкретной операционной системы функций.</p>
14
<p><strong>Кроссплатформенность</strong>Скрипты Python работают и в среде<strong>Windows</strong>, и в<strong>MacOS</strong>, и в<strong>UNIX</strong>, включая<strong>FreeBSD</strong>и<strong>GNU/Linux</strong>. Этот язык широко используется и на мобильных платформах, таких как<strong>Symbian</strong>,<strong>Android</strong>. В этом преимущество Python. Bash такими возможностями не обладает и является "встроенным" инструментарием только для семейств<strong>_NIX</strong>,<strong>_BSD</strong>и<strong>GNU/Linux</strong>. Скрипт, однажды написанный на Python, с большой долей вероятности будет работать на разных платформах, решая схожие задачи, при условии, что код не будет содержать специфических для конкретной операционной системы функций.</p>
15
<p>Python является подходящим инструментарием для решения следующих задач администрирования: - парсинг лога или конфигурационного файла с использованием регулярных выражений; - разработка приложений, в том числе нестандартных, для работы с базами данных<strong>MySQL</strong>,<strong>Oracle</strong>,<strong>PostgreSQL</strong>,<strong>Sybase</strong>и др.; - сбор и анализ статистики интернет-трафика с нескольких IP-адресов; - преобразование данных в различные форматы, например, конвертация<strong>.ini-файлов</strong>в текст при помощи модуля<strong>ConfigParser</strong>; - работа с файлами сервера при помощи FTP-клиента; - поднятие простого прокси-сервера; - мониторинг работоспособности сервиса, запущенного на сервере, с отправкой предупреждений на e-mail администратора в случае сбоя; - поднятие<strong>ppp</strong>-соединения с использованием программы автодозвона; - поиск дубликатов с запросом на удаление или перемещение в каталоге с большим количеством файлов; - проверка целостности архивов бэкапа при помощи алгоритма<strong>md5</strong>; - и т.д.</p>
15
<p>Python является подходящим инструментарием для решения следующих задач администрирования: - парсинг лога или конфигурационного файла с использованием регулярных выражений; - разработка приложений, в том числе нестандартных, для работы с базами данных<strong>MySQL</strong>,<strong>Oracle</strong>,<strong>PostgreSQL</strong>,<strong>Sybase</strong>и др.; - сбор и анализ статистики интернет-трафика с нескольких IP-адресов; - преобразование данных в различные форматы, например, конвертация<strong>.ini-файлов</strong>в текст при помощи модуля<strong>ConfigParser</strong>; - работа с файлами сервера при помощи FTP-клиента; - поднятие простого прокси-сервера; - мониторинг работоспособности сервиса, запущенного на сервере, с отправкой предупреждений на e-mail администратора в случае сбоя; - поднятие<strong>ppp</strong>-соединения с использованием программы автодозвона; - поиск дубликатов с запросом на удаление или перемещение в каталоге с большим количеством файлов; - проверка целостности архивов бэкапа при помощи алгоритма<strong>md5</strong>; - и т.д.</p>
16
<h2>Вывод</h2>
16
<h2>Вывод</h2>
17
<p>Python - удобный инструмент для решения задач системного администрирования, как повседневных, так и более специфических. Он одинаково подходит для создания как скриптов, так и более сложных приложений, в особенности сетевых, а также может служить заменой стандартному<strong>shell</strong>в<strong>Linux</strong>.</p>
17
<p>Python - удобный инструмент для решения задач системного администрирования, как повседневных, так и более специфических. Он одинаково подходит для создания как скриптов, так и более сложных приложений, в особенности сетевых, а также может служить заменой стандартному<strong>shell</strong>в<strong>Linux</strong>.</p>
18
<p>Так как Python является полноценным скриптовым языком, предпочтение в его использовании отдаётся специфическим задачам или тем, для решения которых возможностей Bash недостаточно. В решении же повседневных задач выбор нередко падает на Bash по причине его универсальности и доступности. Однако преимущество Python в его удобстве и большей функциональности.</p>
18
<p>Так как Python является полноценным скриптовым языком, предпочтение в его использовании отдаётся специфическим задачам или тем, для решения которых возможностей Bash недостаточно. В решении же повседневных задач выбор нередко падает на Bash по причине его универсальности и доступности. Однако преимущество Python в его удобстве и большей функциональности.</p>
19
<p>Безусловно, для опытного системного администратора написать 300 строк на Bash - не проблема. Особенно, если он потом не будет их читать. Но для специалиста, которому необходимо быстро понять и исправить проблему, это настоящая головная боль.</p>
19
<p>Безусловно, для опытного системного администратора написать 300 строк на Bash - не проблема. Особенно, если он потом не будет их читать. Но для специалиста, которому необходимо быстро понять и исправить проблему, это настоящая головная боль.</p>
20
<p><em>Есть вопрос? Напишите в комментариях!</em></p>
20
<p><em>Есть вопрос? Напишите в комментариях!</em></p>
21
21