LINUX.ORG.RU

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

 , ,


0

0

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

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

★★★

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

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

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

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

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


и закопать по глубже этот реликтовый сталактит назидательного мозготраха .))

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

Да, но, во-первых, это не единственный компилятор, во-вторых, многие срали на предупреждения, а если так в книжке написано, то тем более. Сама эта возможность --- мелочь для прикладного софта, но для системного очень опасна.

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

> Как и ожидалось, вылезла толпа старпёр^W админов-ветеранов, уверенная, что людям следует и следующие четверть века писать скрипты на Perl и Bash

Правильно, писать скрипты нужно на С# и PowerShell. Модно, современно, объектно-ориентированно!

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

> Иногда нужно чуть больше контроля над процессом, чем дают стандартные утилиты. Сколько wget не был бы замечательным инструментом, но его возможности интерактивности ограничены. Замечательно, что нам утилитки могут возвращать коды ошибок. Но что делать, если пишем не просто линейное пакетное задание, но сильно развёрнутый сценарий с необходимой обработкой исключительных ситуаций?

Господи, да всё же проще... Во-первых... Вот например -> http://gd.tuwien.ac.at/opsys/linux/LDP/LDP/abs/html/exit-status.html Что здесь трешового? Или, скажем, такого «военного»? Всё, по-моему, вполне разумно. Есть код ошибки, есть его обработка.

Вот (навскидку) пример -> http://steve-parker.org/sh/exitcodes.shtml

Во-вторых... Такой подход (с bash) практически гарантированно будет работать на системе, отличной от Linux. Причина проста — стандарты OpenGroup относятся к «сложнопосылаемым». И им волей-неволей, но следуют. Например -> http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html Вот когда здесь будет python, тогда можно будет о чём-либо говорить. А пока увы и ах. Не получается. ;)

подкините большую свинью человеку, который будет с этим работать после вас.

Тут я уже не удержусь... :) ЩИТО??? Оно не знает shell-scripting? Ну, пусть найдёт для себя либо Adv. BASH scripting guide -> http://tldp.org/LDP/abs/html/ , либо ближайшую стену (потвёрже). Клинические диагнозы это не ко мне.

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

Да и так... Уже...

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

Рекомендую (чуть выше в постинге) глянуть на спецификацию от OpenGroup и, потом, проверить вывод утилиты ls -la /где/там/sh... Удивитесь... :))) «Я это гарантирую»... :)))

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

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

drfaust ★★★★★
()

Скадите мне, почему в Debian 5.0.4 в программе Inkscape 0.47 половина питоновых скриптов в меню «Фильтры» и «Расширения» неработоспособна?

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

> Во-вторых... Такой подход (с bash) практически гарантированно будет работать на системе, отличной от Linux.

sh != bash

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

Цитируем xintrea

Скадите мне, почему в Debian 5.0.4 в программе Inkscape 0.47 половина питоновых скриптов в меню «Фильтры» и «Расширения» неработоспособна?

Debian - старый глюкодром, юзай арч.

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

> Правильно, писать скрипты нужно на С# и PowerShell. Модно, современно, объектно-ориентированно!

#режим обнаружения демагогов отключён

Powershell, врать не будут, не видел.

На C# «скрипты» писать в принципе можно. Долго и многословно, но вполне можно, плюс на язык и базовую библиотеку есть стандарт. Но не нужно ---- моно не всюду портировано и не всюду стоит, куда портировано. Питон, как минимум, входит в LSB.

#режим обнаружения демагогов включён

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

> Скадите мне, почему в Debian 5.0.4 в программе Inkscape 0.47 половина питоновых скриптов в меню «Фильтры» и «Расширения» неработоспособна?

Номера багрепортов в студию!

Причин может быть множество, от изменения API фильтров и расширений.

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

В перле есть tainted mode, на всякий случай. В пистоне наверно тоже что то такое есть, хотя я не уверен.

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

> Тут я уже не удержусь... :) ЩИТО??? Оно не знает shell-scripting? Ну, пусть найдёт для себя либо Adv. BASH scripting guide -> http://tldp.org/LDP/abs/html/

Там написано, что делать с доставшемся в наследство «монстрообразным нечитабельный трэшовый код с кучей скрытых потенциальных багов»?

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

> На C# «скрипты» писать в принципе можно ... Но не нужно

Нет, я настаиваю! Только современные технологии! Питон тоже не годится, старьё!

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

> Господи, да всё же проще... Во-первых... Вот например ->

Тебе, млять, русским языком написано, сложные сценарии. Что показываешь учебник c 'hello world'?

Вот (навскидку) пример -> http://steve-parker.org/sh/exitcodes.shtml

Чудненько. Уже относительно простая практическая задача, а костыль чуть ли не на кадом шагу.

Такой подход (с bash) практически гарантированно будет работать на системе, отличной от Linux.

Это уже погоня за абстрактным конём в вакууме. Может вы ещё и писать ПО будете строго с испльзованием POSIХ манерно откидывая фичи конкретной ОС? (вопрос риторический, можно не отвечать). Чтобы оно потенциально работало на всех гипотетических юниксах, где его никогда никто не будет использовать. У админа поле труда вполне конкретное, ему не нужно создавать сверх универсальных вещей.

Вот когда здесь будет python, тогда можно будет о чём-либо говорить.

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

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

+1 Сам на sh сижу, раньше на csh, но чего-то не того он мне...

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

А, вообще-то,

системный софт требует действительно _нормального_ подхода. Рекомендую собрать что-нибудь с void main( void) с ключами gcc -Wall -pedantic как минимум и удивиться... Кстати, я замечу, что так собираю весь свой код (после splint'а в том числе).

Если до чела не доходит что предупреждение это тот самый сук, который потом где-нибудь, да вылезет, то... Мои соболезнования.

anonymous
()

У питона просто более простой синтаксис, а в 5 перле есть много legacy вещей,и книг на русском на нем сильно меньше чем на python,да и сообщество больше.У перловиков только moscow.pm нормально растет и развивается.
P.S rakudo(perl 6) уже очень близко.(большинство фишек уже пашет)

pinachet ★★★★★
()
Ответ на: А, вообще-то, от anonymous

Напишет return(0) в main(), ворнинга не будет и качественно ничего не изменится.

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

> rakudo(perl 6) уже очень близко

Оно уже не первый год близко. И похоже будет близко ещё много лет. К тому же perl6 для сисадмина - это явный оверхед. Perl4 за глаза хватит.

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

> Тебе, млять, русским языком написано, сложные сценарии. Что показываешь учебник c 'hello world'?

Ты так туп от Бога или тебя таким жизнь сделала? Если до тебя, болезный, не доходит ПРИНЦИП решения аналогичных проблем, то ты искренне веришь что ты программист? Или копи-пастом спасаешься? :)))) Ну, так да... Для копи-паста много мозгов не требуется...

Чудненько. Уже относительно простая практическая задача, а костыль чуть ли не на кадом шагу.

кадом-каждом. //fixed. Ну, да ладно... Смотря что называть костылём... Непонятный синтаксис? Ну, он вообще-то в приводившемся выше «букваре» с hello world'ом и описан. Мож букварь таки прочесть? :))) Хотя, да... Судя по всему, это не наш случай... :)))

Это уже погоня за абстрактным конём в вакууме.

И далее по тексту...

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

А вот здесь, припоминая про «абстрактного коня в вакууме» (хотя, мем гласил про «сферического», но придираться не будем), я аж прослезился... Т.е., в одном случае сие юное дарование рекомендует мне забить на стандарты, дескать не нам манерничать, а абзацем ниже растолковывает мне что де, стандарты-то не на пустом месте пишутся... От оно как! Абзац... ЛОГИКА, ГДЕ ТЫ?!? АААААА-УУУУУУ!!!

/me не вынес, и, полуослепший от слёз подался искать Логику...

P.S. Мдеее... Каша в башке просто эпически неэпическая... :))))

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

> Если до тебя, болезный, не доходит ПРИНЦИП решения аналогичных проблем

Замечу в очереднйо раз, мы не обсуждаем принцип решения, а говорим КАЧЕСТВЕ. Вам знакомы понятия типа эргономика, юзабилити...? Речь об этом.

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

>Ты еще не видел скрипны на чистом sh, по 5000 строчек.

и как там с отладкой всего этого обьёма, интересно ? на перле проще писать большие обьёмы, ясно же. а этот пример - это яростный неоправданный фанатизм. либо же в целях безопасности перла и питона на серваке нет - единственное обьяснение в рамках здравого смысла.

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

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

мучаться и bash - это да, тут не поспоришь. но если на перле с умом писать, то какие тут могут быть мучения ? разве что разбирать чужой перловый код, написанный так, что его трудно разобрать.

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

Я видел.

> Powershell, врать не будут, не видел.

Если очень коротко, то это bash (простите, питоновцы), заточенный на работу в M$-среде.

Это «система» изначально появившаяся в w2k, была весьма кастрирована. Позже её нарастили за счёт использования WMI/MMC и разрешили писать скрипты как на самом (типа «внутреннем») языке, так и на VB Script и, до кучи, извращённом javascript, в Necrosoft именуемом JScript.

Сейчас, с распространением поделий на C# и прочих «инновациях», вроде как простой софт (не обязательно относящийся к WMI/MMC, которые, как ни крути, а служат для управления), а работающий на базе COM/DCOM может использоваться в скриптах PowerShell... Но столь глубоко я уже не полез... Без ОЗК и противогаза... :)))

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

> Замечу в очереднйо раз, мы не обсуждаем принцип решения, а говорим КАЧЕСТВЕ. Вам знакомы понятия типа эргономика, юзабилити...? Речь об этом.

И что не так с «качеством»? Оно не работает? Извините, Вы не правы.

Касаемо «эргономики» и «юзабилити», то это, безо всякого сомнения, весьма свежая идея применять эти характеристики к языкам программирования (к коим безо всякого сомнения относятся и питон и баш). Сдаётся мне, что эргономика с юзабилити будут крайне высоки в Visual Basic, да в среде DeveloperStudio... Наверное. Это понятия крайне и весьма относительные. И... Каждому своё...

Однако, прошу прощения за старпёрство, надеюсь, Вы снизойдёте к моим сединам и лысине, но мне как-то весьма эргономично-юзабилистичен (чёт не то? :))) ) простой С или скрипт в vim или gvim (оба настроены как надо).

За сим позволю себе откланяться... Режим, знаете ли... В моём возрасте давно пора кефирчику чавкнуть, на горшок, да спать... :)))))))))))))

anonymous
()

>Python... может служить заменой стандартному shell в Linux.

Дожились! А ведь я предупреждал! Школобыдлокодеры нашли новую дельфю — питон.

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

> Вы снизойдёте к моим сединам и лысине,

Лысина, говорите? Что же, неплохо сохранились. Троллите как 20-летний.

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

>а баш умеет исключения отлавливать ?

питон как раз умеет

Исключения имеют очень ограниченное применение, читай Страуструпа.

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

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

Я именно об этом.

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

> Лысина, говорите? Что же, неплохо сохранились.

Фотографиями обмениваться не будем. Да и не сижу я ни в одноглазниках, на фкантактах этих ваших. Недосуг, знаете ли... Хорошо что хоть уроки делать не отправили... И на том спасибо огромное... :)))

Троллите как 20-летний.

Ддддоооо... Дддддоооо... Любое мнение, отличное от вашего (даже со ссылкой на стандарты) можно объявить троллингом. Было бы желание... Вот только, мой далёкий недалёкий друг, мне интересно — в OpenGroup о сих наипросвещённейших «мнениях» анал-итиков с LOR знают? И куда послали? Последний вопрос риторический. Отвечать ненужно... :)))

Ню-ню... Ню-ню... :)))

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

А какая разница?

sv75, я просто откомментирую с Вашего позволения здесь _два_ момента — про то, «написано ли там...» (выше было про баш). И про «Я именно об этом. » (здесь про perl).

В обоих случаях, если код овно, то что-то с ним сделать крайне сложно. Иной раз дешевле переписать. Но тут другой момент — а надо ли ровняться на овно? Или, всё-таки, каждый из нас стремится хоть к какому-то «эталону»? То же самое, прошу прощения за банальность, но можно сказать о любом коде — «а приходилось ли Вам разбирать овённый код на С++/ассемблере/С/SQL/...pl/SQL...pl/pgSQL... Дельпи наконец?

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

> Затем что пёрл учится годами, а пайтон часами :)

Ни-фи-га. Перл учится с одного прочтения книги Лэрри ))) а вот к трип**доб**дскому питону, который на каждый чих эксепшны кидает, даже при конкатенации utf8 и не utf8, я привыкнуть не могу. Уж не хватало ещё за всю эту хрень «шеллу» париться.

Это не unix-way - понимать питон как замену шелла. O_o И перл тоже. шелл - это такая тоненькая хрень (хотя да, уже ни разу не тоненькая), которая кучу всякой мелкой ерунды вместе связать может независимым интерфейсом - STDIN и STDOUT :)

И идея питоновый ftp юзать вместо урлов тоже конечно пипец...)

Заменой шелла и перл, и питон могут быть там, где нет САМОГО шелла - под виндой какой-нибудь сраной.

На серверах же я не думаю что наличие пайтона является проблемой.

Как сказать... Иногда бывает такие сервера, что там наличие make является проблемой, не то что питона.

vitalif ★★★★★
()

>может служить заменой стандартному shell в Linux.

Интерпретатор shell уже встроили в Linux? Я что-то пропустил?

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

> Фотографиями обмениваться не будем. Да и не сижу я ни в одноглазниках, на фкантактах этих ваших. Недосуг, знаете ли...

Знаете, это большая потеря для меня лично и интернет сообщества в целом. Могли бы не огорчать такой новостью, раз недосуг. В прочем, с чего Вы вдруг нашли у меня проявление интереса к вашему досугу и вашей личности?

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

Давайте посмотрим что вы успели написать в мой адрес: 'Ты так туп от Бога', 'болезный', 'копи-пастом спасаешься', 'юное дарование' и прочие нежности. Я уже не говорю о передёргивании и взгляда с высока на незнакомого Вам человека. Как, по вашему, это называется? Хамский троллинг, так это называется.

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

Это:

Тебе, млять, русским языком написано, сложные сценарии. Что показываешь учебник c 'hello world'?

не Ваше, часом? Тогда чьё? И что _ЭТО_ как не троллинг? Мои «эпитеты» и прочие «нежности» просто переключили Ваше внимание с Вашего (вполне объяснимого, я замечу) баттхёрта на предмет обсуждения. Я рад тому, что это удалось... :))) Правда, по теме обсуждения... Ну, по теме тут уже понятно. Обсуждать нефиг. Читать что-либо окромя своего кода, как я понимаю, нониче просто моветон... Ну, да и Бог бы с ним... Не Россией единой, слава Богу... :))))

Кстати, за «эргонимику» с «юзабилити» в отношении языков программирования отдельное и огромное спасибо. Дело-то вечернее, так что парализовать работу моей мааасенькой конторки Вам не удалось. Контакты в джаббере просто «лежали» от смеха... Спасибо ещё раз... :)))

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

Мдее, popen такой попен

хотя это еще куда ни шло, я встречал С-шный, написанный девицей, так эта... хмм, «программистка», вызывала из C через popen ПАЙП из 2-3-4х команд.

Эпик звиздец, скажу я вам.

$GIRLNAME, если ты это читаешь - приветик тебе, талантливая девочка :)

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

Наше. А что там может быть не понятным? Это бурное возмущение (мне то оно по вашей оценки относительно моего возраста вполне простительно). Я до сих пор не понимаю, как можно на столько быть глухой стеной и отвечать несколько сообщений подрят не совсем по теме. Монологе «запустить дурочку» ваш стиль.

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

Robotron, не поленитесь и напишите в Linux-org-ru о том, что в этой теме с вас сняли 20 баллов без указания причины. Я думаю, вы всего-навсего хотели поделиться интересной информацией, имеющей прямое отношение к ЛОРу, и не были в курсе предшествующей драмы.

Подобные репорты оттуда не трут, рассматривают, и сообщают в модераторскую рассылку. Поучаствуйте в благом деле очистки ЛОРа от неадекватных модераторов. Спасибо.

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

Да ещё и запретили в форуме отвечать, даже в своих собственных темах запретили отвечать.

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

>>Цитируем xintrea

Скадите мне, почему в Debian 5.0.4 в программе Inkscape 0.47 половина питоновых скриптов в меню «Фильтры» и «Расширения» неработоспособна?


Debian - старый глюкодром, юзай арч.


made my day ^_^

volh ★★
()

Сколько синтаксических ошибок в примерах статьи?

Сколько синтаксических ошибок в примерах статьи? Стоило бы подсчитать прежде чем разводить holywar

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

>Оно уже не первый год близко. И похоже будет близко ещё много лет.
http://rakudo.org/status - посмотри сюда . И на данный момент положение лучше стало.Кстати разрабы уже начали проект открытой книги писать по перл 6,так что все будет ок.

К тому же perl6 для сисадмина - это явный оверхед. Perl4 за глаза хватит.

Ну perl4 было не очень радужно с многоуровневами хешами .
Однострочники это да - хватает для 99% админских задач,пока админ не начинает писать свою систему для управления чего-либо

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