LINUX.ORG.RU

Основы применения Python в администрировании Linux

 , ,


0

0

В статье описаны преимущества языка Python при использовании его в качестве инструментария для решения задач системного администрирования по сравнению с возможностями стандартного командного интерпретатора bash. Python – удобный инструмент для решения задач системного администрирования, как повседневных, так и более специфических. Он одинаково подходит для создания как скриптов, так и более сложных приложений, в особенности сетевых, а также может служить заменой стандартному shell в Linux.

>>> Подробности

★★★

Проверено: boombick ()

По сабжу: Я не вижу python достаточно стабильным для использования его на равне, и темболее, вместо bash. bash прост и вмеру сложен. Как раз, для несложных админ. задачь. Если нужно что-то более сложное, то лучше perl.

Python, представляется для меня, более, языком для пользовательского ПО или системного программирования. Но он ещё не достаточно стабилен, imho.

AGUtilities ★★★
()
Ответ на: комментарий от helios

KISS :)

> И да, админить (заскриптовывать машинку) проще и приятнее перлом. Главное, чтобы программа не превышала экрана. Иначе - питон.

Если примеры, которые приведены в статье, переписать на шелле, как думаешь, во сколько раз сократится объем кода?
KISS :)

anonymous
()
Ответ на: комментарий от anonymous

Это естественный отбор, тупому новичку никогда не стать Ъ админом. Ты еще не видел скрипны на чистом sh, по 5000 строчек.

Sun-ch
()
Ответ на: комментарий от Sun-ch

> Это естественный отбор, тупому новичку никогда не стать Ъ админом. Ты еще не видел скрипны на чистом sh, по 5000 строчек.

Сколько тыс.строчек они станут занимать после переписывания на питоне? :)

anonymous
()
Ответ на: Нет. Не в этом дело... от anonymous

> Проблема в том, что bash можно найти практически в любой системе, он есть «искаропки».

Эх линупсятники, такие линупсятники.

paranormal ★★
()
Ответ на: комментарий от anonymous

> Куча всяких криптописателей на перле и хер новичок за часы научится ориентироваться в этом гогне.

Так за часы новичок ничему не научится. Да, и вы привели ещё одну причину, почему админу нужно всё-таки учить Перл:

Админ редко работает всегда в своей песочнице, часто как раз приходится копаться в старье.

Hjorn
()

пистон не нужен.

anonymous
()
Ответ на: комментарий от anonymous

> Сколько тыс.строчек они станут занимать после переписывания на питоне?

Тут есть более каверзный вопрос: кто станет переписывать эти тысячи строчек? ;)

Hjorn
()

зачем нам «ещёодинвелосипед»?

в этом посте явна заметна так называемая «практика переписывания -> ура мы сделали новую версию программы», которую исповедует ббольшинство корпоротивщегов.

с такой же целью можно использовать и lua.

а вообще надо баш застандартизировать. и точка.!

кто захочет писать на питоне пусть пишет.

guilder
()
Ответ на: комментарий от Sun-ch

> Это естественный отбор, тупому новичку никогда не стать Ъ админом. Ты еще не видел скрипны на чистом sh, по 5000 строчек.

Понимаешь ли, кулхацкеры со своими уникальными способностями сейчас никому не нужны. Бизнес делает выбор в пользу более простых и убодных вещей, которые может админить человек со средними навыками. Питон не самое страшное что можно придумать, сейчас каждый сервис оброс кучей веб морд как раз для таких админов. А ты про какой-то sh на 5к строк.

anonymous
()

недавно написал довольно большую программу (чуть больше 400 строк) на posix shell. Никаких сложностей, полная интеграция с системой. ввод данных пользователем и парсинг конфигов реализовал через функции

annulen ★★★★★
()
Ответ на: комментарий от tia

>Ты не поверишь, но пайтон, руби и эрланг используют не только в веб.

php тоже))

annulen ★★★★★
()
Ответ на: комментарий от Hjorn

> Так за часы новичок ничему не научится.

Речь не сколько об абсолютных часах, как о, например, плотно поработать пару деньков раз в месяц или два. Типичная ситуация для админа и за такой срок быстро забывается много фич и паттернов перла. С перлом нужно работать постоянно в течение пару лет чтобы хорошо его запомнить.

Да, и вы привели ещё одну причину, почему админу нужно всё-таки учить Перл:

Перл, де факто, загибается. Ещё лет 5 и его в большей части заменит питон.

anonymous
()
Ответ на: комментарий от AGUtilities

>По сабжу: Я не вижу python достаточно стабильным для использования его на равне, и темболее, вместо bash

если речь идет ою интерпретаторе командной строки, то питон баш не заменит (только мелкомягким могло прийти в голову, что объектно ориентированный шелл может быть удобным, хех)

если о скриптах, то «стабильность» не слишком важна, если скрипт применяется на одной и той же машине, т.к. после отладки новых фокусов не будет

annulen ★★★★★
()
Ответ на: комментарий от anonymous

>Бизнес делает выбор в пользу более простых и убодных вещей, которые может админить человек со средними навыками.

Windows Server?

annulen ★★★★★
()
Ответ на: комментарий от anonymous

> Перл, де факто, загибается. Ещё лет 5 и его в большей части заменит питон.

Где то я это уже слышал... Ах да, на ЛОРе каждый год об этом говорят.

Hjorn
()
Ответ на: комментарий от guilder

>надо баш застандартизировать. и точка.!

бздуны обидятся

annulen ★★★★★
()
Ответ на: комментарий от anonymous

много больше, так как в скриптах появится ООП ))

annulen ★★★★★
()

Мда, нашли, что сравнивать... Они бы ещё какой-нибудь Airbus c каким-нибудь МиГ сравнили... А что, оба самолёты, оба летают... :-)

AS ★★★★★
()
Ответ на: комментарий от Alphaer

Даааа. Пестонщеги отжигают

Ждем цикл статей о применении Фортран в тех же целях.

Я готов начать писать. Первые две статьи будут посвящены тому, как разделить строку на подстроки по произвольному набору символов в utf8, и тому, как прочитать многостолбцовый файл и запихать его в запись.

Vudod ★★★★★
()
Ответ на: комментарий от Hjorn

> Не видел юникс-админов, не знающих Перл. Более того, не уверен

что такого вообще возьмут на работу


На самом деле, если подумать, я бы без Perl, наверное, смог бы обойтись в повседневном админстве. А там, где надо Perl, базы не больно-то и хватит: вот, понадобилось, вторую неделю вчитываюсь периодически.

AS ★★★★★
()

ABS наше всё!
Но иногда надоедает на нём извращаться и поэтому поглядываю на Питон.

WatchCat ★★★★★
()

Как и ожидалось, вылезла толпа старпёр^W админов-ветеранов, уверенная, что людям следует и следующие четверть века писать скрипты на Perl и Bash. Их аргументы: «Perl --- отличный язык», «Bash --- удобное средство для написания скриптов», «я мучался, и вы будете мучаться!».

sv75 ★★★★★
()

Python vs shell

Не путайте козла с курицей. Один создан для одного, другой для другого. Статья ни о чём.

Лучше питона сравнить с пёрлом - было бы корректнее, а использоватьшеллы в качестве «мальчика для битья» - стыдно, это во первых, во вторых, языки такого уровня как питон и пёрл ипользовать для администрирования крайне опасно. IMXO.

drfaust ★★★★★
()

Я не готов спорить о достоинствах или недостатках питона как ЯП, но в качестве командного интерпретатора он ещё более убог чем bash в виду отсутствия возможности написать маломальский однострочник (в виду того что отступы таки часть синтаксиса). Без этого мы скатываемся на уровень cmd.exe. А скрипты пофигу на чём писать.

KblCb ★★★★★
()

> Пэтон

Администрирование

БУЭЭЭ... Закапывайте!

anonymous
()
Ответ на: комментарий от ip1981

А я, простите, и не обвинял...

...ни Вас лично (кстати, к Вам у меня глубокое уважение, судя по Вашим постингам), ни, тем более, кого-либо ещё... :) Уж прошу поверить наслово...

anonymous
()
Ответ на: комментарий от anonymous

> Да почти все. Посмотри на любой современный дистрибутив.

Ну и что? Ну, посмотрел... Что дальше-то? То, что оно есть в наборе софта на диске (или _может_ быть скачано из Сети) вообще ничего не означает. Какой смысл ставить в систему то, чем пользоваться не будешь?

anonymous
()
Ответ на: Python vs shell от drfaust

> во вторых, языки такого уровня как питон и пёрл ипользовать для администрирования крайне опасно. IMXO.

перл опасно, нужен хороший опыт.

anonymous
()
Ответ на: комментарий от darkstyler

> Есть же православный Perl

Perl задумывался лишь с одной целью - для автоматической обфускации кода.

bbk123 ★★★★★
()
Ответ на: комментарий от anonymous

>Какой смысл ставить в систему то, чем пользоваться не будешь?

Бугога.

YogSagot ★★★
()
Ответ на: Python vs shell от drfaust

> языки такого уровня как питон и пёрл ипользовать для администрирования крайне опасно.

А почему ты так считаешь?

raystlin
()

Основы применения Python в администрировании Linux

Что только люди не придумают лишь бы не учить Perl

wlan ★★
()
Ответ на: комментарий от sv75

ну питон ничего нового не даёт пока что.

anonymous
()

Кстати, у меня создалось впечатление, что значительная часть здесь присутствующих резко негативно относится к Питону именно потому, что в своё время они сами пошли на поводу у традиции, убили кучу времени на изучние Перла и теперь они не могут допустить, что кто-либо не знающий Ерла может решать задачи эффективнее них, да при этом ещё и не обучавшись по 10 лет.

Практика показывает, что словестный спор с закоренелым перловщиком совершенно бесперспективен: Перл-программисты фактически умеют решать большой (если они хорошие Перл-программисты) набор конкретных индивидуальных задач. Так как часто задачи являются типовыми, им как правило хватает. Как только задача нетиповая, они просто станут кричать, что это вырожденный случай и решать её вообще не надо, а надо переустановить систему/переформулировать задачу/сменить базу данных/etc.

Vudod ★★★★★
()
Ответ на: комментарий от tia

Не-ааа...

> Не?

Лень (прошу простить) цитировать весь постинг, цитирую только то, откуда можно продолжать.

Во-первых, по иксам-консоли. Зависит от варианта — зачем оно мне на «сервере»? На десктопе... Ну, сейчас я буду долго и нудно пинаем, но, тем не менее замечу — для используемого мною Nautilus есть такая вещь как «G-scripts». И это... Именно скрипты, начинающиеся с «шабанг» (#!/bin/bash).

Про ftp... Зачем оно? Ну, положим, scp не требуется, проложим, мы хотим таки именно ftp. Странно, но всё же — кто мне мешает использовать ftp сходным образом -> http://www.stratigery.com/scripting.ftp.html ? Мне... Всенепременно нужны новомодные штучки? А зачем? У меня в систему есть уже всё, что мне нужно для _работы_...

bash/zsh. Последний поглядел. Интересно. Но довольно жирно, к тому же, часть возможностей, которые предоставляются zsh для (опять-таки!) я прошу простить мне мою нудность, _работы_ не нужны. Кому-то нужно? Да Бога ради... Но мне и баша хватает.

Касаемо «скриптовых возможностей»... Ну, кхм... Вы никогда не обращали внимания на то, что утиль командной строки как правило _возвращает_значение_. «0» это всё ок, отличное от «0» — something is wrong... Как Вы думаете, зачем так сделано? Почему в том же С, любая программа начинается с _int_ main( int argc, char * argv[])? И почему значение _должно_ возвращаться — либо через return, либо через exit(); ? Замечу так же, что аналогичного поведения можно ожидать и от GTK+/GNOME-программ. Исполните в консоли любую с ключём --help и посмотрите на результат.

Всё просто — это расчитано именно на то, что любой софт _может_ исполняться пакетном режиме. И _нужно_ знать чётко на каком шаге «пакета» оный перестал исполняться. И, желательно, почему перестал... Случай для bash, не? ;)

anonymous
()
Ответ на: Не-ааа... от anonymous

Вообще-то любая Python функция возвращает значение, только оно может быть None --- специальная такая константа, если вы не потрудились его определить.

Как раз C код очень ругаем за то, что многие криворкие программисты пишут void main(void) и этот самый void ничего не возвращает. Более того, именно такой рпимер приведён в более чем половине учебников и пособий.

Vudod ★★★★★
()
Ответ на: комментарий от tia

Эмм... Недавно ржал...

> Ты не поверишь, но пайтон, руби и эрланг используют не только в веб.

Вот от этого -> http://www.nixp.ru/news/%D0%9F%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B0%D0%B2%D0%B... Нет... Конечно, можно и так... Но что делать, если на веб (пусть даже веб) сервере _мусора_ нет? Что, если он (сервер) собран суровым, челябинским админом? :))) И, таки да, зачем такой подход вообще??? Нет, оно понятно — законодательно не запрещено на потолке спать... Только, знаете ли, неудобно — одеяло падает... :)))

P.S. Прошу не считать это «вбросом». Это, скорее, просто иллюстрация определённого «подхода», «благодаря» которому Россия почему-то оказывается за бортом «компьютинга» как такового... Такую бы энергию, да в мирных целях... :)))

anonymous
()
Ответ на: Не-ааа... от anonymous

Иногда нужно чуть больше контроля над процессом, чем дают стандартные утилиты. Сколько wget не был бы замечательным инструментом, но его возможности интерактивности ограничены. Замечательно, что нам утилитки могут возвращать коды ошибок. Но что делать, если пишем не просто линейное пакетное задание, но сильно развёрнутый сценарий с необходимой обработкой исключительных ситуаций? Можно, конечно, писать на sh/bash с использованием шеловых костылей: интепретировать возвращаемые коды ошибок (не такие уж разнообразные для точного диагноза) и парсить вывод утилит. Но зачем? Получите монстрообразный нечитабельный трэшовый код с кучей скрытых потенциальных багов, подкините большую свинью человеку, который будет с этим работать после вас.

anonymous
()
Ответ на: комментарий от kto_tama

Суровые админы не генерят исключений. У них всё по правилам. Поэтому и отлавливать нечего.

Vudod ★★★★★
()
Ответ на: комментарий от Vudod

> Кстати, у меня создалось впечатление, что значительная часть здесь присутствующих резко негативно относится к Питону именно потому, что в своё время они сами пошли на поводу у традиции, убили кучу времени на изучние Перла и теперь они не могут допустить, что кто-либо не знающий Ерла может решать задачи эффективнее них, да при этом ещё и не обучавшись по 10 лет.

Эммм... Всё хуже. Я — закоренелый сыч. Однако, питон, скажем так, знаком мне в том объёме, чтобы я знал о существовании (например) библиотек по работе с e-mail : smtp/pop3/imap4/rfc822... etc. И он довольно хорош для случая, если надо изваять что-то такое, чтобы быстренько порешать задачку. Хотя, например те же CCP изваяли eve-online (я про клиент как минимум) на stackless python...

Дело в другом — это _НЕ_ задачи администрирования. Это несколько другое... ;)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.