LINUX.ORG.RU

Python в помощь администратору.


0

4

Чем этот язык может помочь сисадмину? Не программисту! Чем он лучше shell? На питоне, так и так, пол кода будет состоять из команд Линукс. Не ради холливара, а просто разобраться. Понять, нужен он конкретно мне или нет.



Последнее исправление: SexualOpenSourceCode (всего исправлений: 1)
Ответ на: комментарий от babusha

Всё глючит и тормозит, а уж руби-то заведомо тормознее. Впрочем, в питоне 2.7 я знаю только 1 глюк (причём в стандартной библиотеке, в модуле zipfile). Можешь назвать ещё, тролль?

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

> Ты 500-строчник написал уже?
Думаю пока, что за скрипт написать.

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

напиши на питоне тот шеловский однострочник

Вот этот, что ли?

cat /dev/sda | pv | tee /dev/sdb > /dev/sdc || echo «Zopa»

Ты бы сначала ошибки в нём поисправлял.

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

>Не принципиально

the devil is in the details. Когда предусмотришь всё, это часто перестаёт быть красивым однострочником.

питон не умеет легко делать пайплайны

4.2. Питон не умеет красиво вызывать функции , и более строго относится к типам данных, т.ч. текст полон мусора типа «(«'»,,,,)». Т.ч. пайплайны там должны выглядеть некрасиво - такова цена универсальности. Подозреваю, что модуль, позволяющий писать что-то типа «cat('/dev/sda') | pv() | tee('/dev/sdb') > '/dev/sdc' || echo('что-то')» достаточно тривиален. Но не нужен - для настолько простых случаев есть shell, а более сложные в тривиальный синтаксис не уложишь.

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

Так 4.2 или «должны выглядеть некрасиво»(=нелегко)? Ты уж определись.

достаточно тривиален.

Покажешь небольшой пример с оператором «||» в питоне?

Далее, смотрим на http://code.google.com/p/python-pipeline/ и видим что это нетривиально. Можешь забахать свою реализацию чтобы убедиться что это над этим посидеть придётся.

для настолько простых случаев есть shell

Об этом и речь в этом треде. Ты тоже тред не читал как и предыдущие ораторы.

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

[quote]Так 4.2 или «должны выглядеть некрасиво»(=нелегко)? Ты уж определись[/quote]

«Нелегко»(я бы сказал «непросто» или «нетрудно», т.к. «лёгкость» характеристика веса) и «некрасиво» - неэквивалентны. Оно там _просто_, но приходится расставить кучу скобок/кавычек/запятых и т.п. Что некрасиво, конечно, но _трудным_ ввод этих символов может быть только человеку с единственным пальцем в качестве интерфейса к клавиатуре. А такие редко занимаются сисадминством. И да, труд сисадмина - вовсе не нажимание кнопок, как может показаться, а придумывание, чего бы такого нажать.

смотрим на http://code.google.com/p/python-pipeline/ и видим что это нетривиально

543 строки, из которых почти 200 - комментарии, 96 - пустые, 71 - названия классов и ф-й. Итого, пачка ф-й/объёктов по 3 строки в среднем. Это не тривиально?! Без комментариев.

Ты тоже тред не читал

Зато я читал твою наглую ложь про трудности построения конвейеров в питоне:)

И должен сказать, что как только твой «пайплайн» начинает требовать чего-то большего, чем a|b|c|d, у sh начинаются неприятности. Их, конечно, приколько преодолевать, но результат оказывается довольно гротескный и редко стабильный.

И ещё я читал вопрос ТС. Вопрос про «может ли помочь админу» эквивалентен вопросу «а встречаются ли ситуации, когда возможностей sh мало»? Ответ же очевиден. Редко удаётся обойтись без sed/awk, а это уже другие языки. Конечно, если ограничиться заведением пользователей и бекапами, то sh-а хватит с головой, а вот уже для анализа журналов может понадобиться больше. Пример - журнал почтового сервера. Если нужно найти судьбу письма, а у тебя на сервере пара внешних фильтров(антивирус, скажем) - sh уже не помощник.

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

Зато я читал твою наглую ложь про трудности построения конвейеров в питоне:)

Написать a|b|c легче чем создавать через Popen объекты и каждый раз указывать у них stdin и stdout. Попробуй так написать конвеер из трёх комманд, поймёшь о чём я.

Это не тривиально?!

Да, это не тривиально. Сложность кода не только кол-вом строк меряется. Я с исходниками ознакомился. Ты сможешь хотя бы за час накидать рабочий вариант обёртки над subprocess.Popen? Я нет, а значит это нетривиально.

«пайплайн» начинает требовать чего-то большего, чем a|b|c|d, у sh начинаются неприятности.

Например? Не встречал такой ситуации(если что, я использую bash и PIPESTATUS в нём есть). Или ты про «дерево» говоришь когда одни и те же данные несколько пайплайнов засылаются?

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

>Попробуй так написать конвеер из трёх комманд

Я тебя понял. Пойми и ты. Этот текст на ithkuil-е, или даже на английском был бы гораздо компактнее, но мы почему-то предпочитаем давить больше кнопок на русском, т.к. проще. Т.е. «компактно» и «просто» никак не связаны. Писать каждый раз «Popen((,),stdin='» долго и нудно но просто. Т.е. пайплайны в питоне просты, но нудный синтаксис — не пайпов, а вызовов функций — мешает сделать это ещё и компактно/красиво/лаконично.

Я нет, а значит это нетривиально.

Ладно, у тебя иное определение тривиальности:)

Например? Не встречал такой ситуации

Ну, скажем, банальный flock в sh уже трудно(как минимум, неочевидно) написать красиво. Перенаправить stdout и stderr отдельным программам мне тоже доводилось хотеть. Скопировать с/на удалённый.хост:недоступный/каталог/(ага, PermitRootLogin no) - очень часто bash подбрасывает сюрпризы с кавычками/звёздочками, раскрывая их невовремя. Т.ч. их таки есть.

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

Не всех ещё антипитонистов отстреляли, некоторые ещё где-то бродят :)

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

Звиняюсь за поздний ответ, но awk 3.1.7 вышел почти 2 года назад, этот пример актуален, разве что для CentOS 5.

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

Нужен. Нормальный админ найдет куда применить питон. И это никак не будет отказом от баша.

p.s. я не видел людей, которые попробовали* питон и блюют от него в истерике.

*именно попробовали в деле, а не повыполняли пару туторов из инета.

Witt
()

Скриптовый язык прогрпммирования не является языком программирования? Потому что скриптовый? Рыжая кошка не является кошкой? Потому что рыжая?

Да, и как бы зачем админу именно-таки компилируемый язык уперся в качестве «профессионального» языка?

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

>Питон компилируемый?

Зависит от реализации. CPython - байт компиляция; PyPy, Jython, IronPython - JIT; Cython - нативная компиляция.

Но я не об этом. С точки зрения топикастера некомпилируемый язык - как бы и не полноценный язык.

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

Ну cx_Freeze и ему подобные вообще формируют стаб. Просто пачка файлов с байт-кодом, обернутая в exe.

(cx_Freeze с версией питоне больше 2.6 не пашет)

У них на сайте есть для более новых версий сборки. Хотя я его не пользовал. py2exe работает с 2.7 100%.

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

Да есть то есть, даже для 3.1 есть, но не работает =3

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