LINUX.ORG.RU

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


0

4

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



Последнее исправление: SexualOpenSourceCode (всего исправлений: 1)

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

anonymous
()

+ Возможность легко абстрагировать свои действие, многоразовое использование кода и все такое.

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

> бОльшая часть задач решается с помощью библиотек пайтона.
Какая разница, подключать библиотеки или пользоваться утилитами Линукс? Суть та же.

многоразовое использование кода

Это ты про функции?

SexualOpenSourceCode
() автор топика

для разминки, попробуйте реализовать подобное на shell:

$tclsh findusb.tcl
/dev/sde    1924    SanDisk Cruzer   
/dev/sdd    1430797    WD Ext HDD 1021   
/dev/sdc    1938    Generic STORAGE DEVICE    ISOIMAGE
/dev/sdb    988    SanDisk Cruzer Micro    Debian nfp2 i386 20110404

elipse ★★★
()

Самый лучший ЯП - тот который знаешь. Если Вы задаете такие вопросы, то ничем не лучше;-)

Но если таки приложите некоторые усилия и выучите питон, то думаю сами все поймете - все же питон классический ЯП где четко разделяются строки и числа, есть куча встроенных типов и не приходится плясать с бубном вокруг кавычек. Хотя может я просто шелл плохо знаю;-)

Я на питоне пишу какие то вещи требующие сложной логики.

AIv ★★★★★
()

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

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

уровень наглядности кода Python или Perl - значительно выше чем скрипта bash

AGUtilities ★★★
()

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

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

> Я на питоне пишу какие то вещи требующие сложной логики.
Принижаешь достоинства шелла? И зачем питону столько библиотек? Даже для работы с 3D графикой есть, и вообще, для рисования. Админу это зачем. Профессиональный программер выберет точно не питон. И не шелл и не компилируемый язык, что-то непонятное.

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

а какая разница ? напишите на пистоне это
все едино, только бы не shell это мне писать ))

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

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

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

AGUtilities ★★★
()

Есть такая книга: Гифт,Джонс - Python в системном администрировании, там как раз об этом.

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

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

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

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

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

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

и

У меня короче:) Не пенис! Сэкономит сотые доли секунд.

------------

Вы создали тему как повод написания подобной ерунды ?))

elipse ★★★
()

На питоне, так и так, пол кода будет состоять из команд Линукс.

Нет, в том и дело. При использовании python такие утилиты как grep, sed, awk, wc, head, tail, wget, curl и т.п. становится не нужны.

Понять, нужен он конкретно мне или нет.

Если твои скрипты уже не влазят в пару экранов и в них есть циклы и обработка текста (sed, awk, grep), то переходить на python уже можно. Ну или на perl =).

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

бОльшая часть задач решается с помощью библиотек пайтона.

Какая разница, подключать библиотеки или пользоваться утилитами Линукс?

Суть та же.

Суть та же, а производительность может отличаться на _порядки_.

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

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

Вы создали тему как повод написания подобной ерунды ?))

Надо было наказать негодяев, которые посмели опорочить честное имя Shell.

Хоть бог и запретил дуэли,
Но к шпаге чувствую талант,
Дерусь семь раз я на неделе
Ведь право я не дуэлянт.

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

Суть та же, а производительность может отличаться на _порядки_.

Shell быстрее.

Бугага =). Ты серьёзно?

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

Сдается мне, ты сюда зашел просто уныло потроллить, а не разобраться.

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

> Надо было наказать негодяев, которые посмели опорочить честное имя Shell.
Не надо быть таким фанатичным. Разные языки программирования для разных задач.

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

А вот когда скрипт постепенно разрастается, то на шелле он превращается в эдакого нечитабельного монстра.
Я не говорю что на шелле нельзя нормально писать, но ИМХО сделать это гораздо тяжелее нежели чем на полноценном ЯП, например питоне.

З.Ы. Я когда открываю eclass`ы в gentoo, то прямо руки опускаются, даже код portage по сравнении с этим выглядит не так страшно.

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

> то на шелле он превращается в эдакого нечитабельного монстра.
Погляди, хоть, на синтаксис C++...

на полноценном ЯП, например питоне.

Если ЯП - это язык программирования, то поспешу тебя разочаровать! Это не язык программирования, а язык сценариев. Если ты не чувствуешь разницы, мне тебя жаль.

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

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

можно увидеть элегантный аналог вот этого:

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

?

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

> При использовании python такие утилиты как grep, sed, awk, wc, head, tail, wget, curl и т.п. становится не нужны.
Зачем изучать другое то же самое? Для серьёзного программирования, кроме как СИ, больше ничего, по сути, нет.

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

Shell быстрее.

Ты не знаешь ни шелла ни питона. На скорость шелла можно посмотреть, например, на примере ./configure скриптов. Из-за постоянных форков и exec-ов скорость низкая. Поэтому built-in комманды быстрее работают.

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

При использовании python такие утилиты как grep, sed, awk, wc, head, tail, wget, curl и т.п. становится не нужны.

ничего подобного. Писать парсеры удобнее на языках которые под это затачивались. Какие есть средства внутри питона? Регулярки? Даже рядом с awk не стояло.

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

Это не язык программирования, а язык сценариев.

Бугага. Особенно позабавило что на это все повелись. Хотя бы википедию открой в которой в первой строчке сказано что ЯС это ЯП.

Дай определение ЯП, если сможешь :). Посмотрим подходит ли сюда баш.

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

> Ты не знаешь ни шелла ни питона.
А ты знаешь и тот и другой? :) В Питоне я только азы освоил. Посмотрю, нужно ли дальше изучать или нет. В shell операторы - это команды Линукс. Естественно я Линукс от корки до корки не знаю. Да и кто-нибудь знает, акромя Торвальдса? Я 1.5 года на Линуксе, даже по самым оптимистическим прогнозам, был бы не в состоянии осилить полностью.

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

А ты знаешь и тот и другой?

да.

В shell операторы - это команды Линукс

не только. Циклы, ветвления, переменные это всё внутри сидит. Потом мы говорим о bash. А если взять busybox то у него большинство комманд внутри сидит.

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

Дай определение ЯП, если сможешь

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

Чтоооо??? И после этого ты меня школьником называешь? :)))))

Открой википедию, что ли...

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

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

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

python - мультипарадигменный (императивный, объектно-ориентированный, с элементами функционального) компилируемый (в байткод или в натив с помощью cython) язык.

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

Я рад что у тебя богатый внутренний мир в котором у тебя есть свои определения на все случаи жизни. Можешь называть кошку собакой а кровать табуреткой, твоё право. Но когда ты заходишь на технических форум с более-менее взрослым сообществом и устоявшейся терминологией то будь добр использовать эти знания. Особенно когда пытаешься кому-то что-то доказать.

А иначе ты просто ещё одно пустое трепло которое не может в гугле набрать «what is programming language?».

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

> в байткод
байткод!=машинный код.

более-менее взрослым

Насмешил. Ладно, кто еще может высказаться по существу?

SexualOpenSourceCode
() автор топика

На шелле хорошо писать только небольшие скрипты. На сложных вылазят проблемы. Шелл объективно плохой язык. Проблемы с типизацией, с видимостью перменных. Не все на нем записывается кратко и красиво. В тоже время админские скрипты на питоне тоже выглядят по-уродски, так как нету простоты для решения простых задач. На самом деле оба языка херово подходят под админские задачи.

Идеальный админский язык выглядит как-то так: http://rush.heroku.com/

На твоем месте я бы взял и сделал свой shell-like DSL поверх питона.

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