LINUX.ORG.RU

Подскажите тему для написания bash скрипта

 ,


0

1

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

Не нужно выдумывать задачу ради задачи.

Как только появится необходимость, напишешь не один десяток скриптов!

Типа такого:

ls ~/bin|wc -l
173

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

ls ~/bin|wc -l
173

Вы серьезно?))))

А по поводу задачи — вы правы, но мой вопрос можно сформулировать по другому: «Где, как и для чего можно применять bash скрипты». Да и вообще, через написание скриптов хочется побольше узнать о возможностях системы.

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

Где, как и для чего можно применять bash скрипты

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

То есть просто подумай, что бы в своей системе хотел улучшить, чтоли, допилить под себя, что ты делаешь часто и тратишь время и попробуй автоматизировать процесс.

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

Для любой автоматизации работы, например, я делал bash скрипты для следующих нужд:

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

2) Массовая конвертация музыки на старый телефон, который умел играть mp3 (но mp3 очень жирные), а так же aac, но aac должен был быть не абы каким, а с некоторыми ограничениями на способ записи обложки в файл, глубиной звука и т.д.

3) Для создания книг из кучи сканов, т.е. опять - почистить картинки от желтизны, подрезать, повернуть и т.д. (без распознавания текста).

4) Менюшка для выключения PC с Openbox.

5) Скрипты для conky (мне лень учить Lua)

6) Обработка видео - вшивание обложки, субтитров и прочей информации, опять для железного плеера, который не всё понимает, потому через готовую GUI программу сделать сложно.

7) Скрипт для записи скринкастов и их последующей переконвертации.

Это те, которыми я активно пользуюсь (не реже раза в месяц). А так, ещё кучу для разовых нужд.

peregrine ★★★★★ ()

Напиши видеоплеер, чисто на баше

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

Хм, что ж, к сожалению я такими задачами не занимаюсь, но суть понял, как уже отметил USF, если есть что автоматизировать, то баш безупречен) Благодарю.

vyusfire ()

- отлов ошибок по trap в sub-shell-ах и возврат оттуда exit codes на верхний уровень

- На закуску: разбор параметров с возможностям как в https://docs.python.org/3/library/argparse.html или поиск простой и достойной альтернативы

;)

anonymous ()

Не надо писать на bash. Надо писать на sh. Башизмы - зло. Да, обычный sh достаточно туп. Поэтому придумали sed/awk/perl/...

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

Чем зло? Обоснуй? Скоростью работы? Так это сейчас пофигу, даже Java, Python и C# живут и себя прекрасно чувствуют, да при том прямо в продакшене на задачах, где скорость относительно важна, а не на ПК у Васи, где 10 000 с гаком файликов надо отправить в backup и все упрётся в производительность HDD, Тем, что кое-где только sh? Так это не проблемы того, кто пишет. Инструмент обычно выбирают под задачу. Нет задачи, чтобы работало на sh и пиши себе на bash.

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

В 2014 году нет абсолютно никаких причин писать на sh. Во-первых, для всех стоящих использования систем есть GNU bash. Во-вторых, как такового «стандартного» sh всё равно не существует.

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

Если скрипт наколеночный - хоть на zsh. Но если в скрипте башизмы - будут матюги тех, кто будет его запускать на aix/hpux/solaris/... , где может не оказаться bash

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

Во-вторых, как такового «стандартного» sh всё равно не существует.

4.2 Существует первый sh, написанный тем же Боурном

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

Что только не дергается в продакшне больших ынтерпрайзов.

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

Не все девы - админы.

Девам (что бы это слово ни означало) совершенно не обязательно делать это самостоятельно.

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

А вот — на работе:

ls ~/bin| wc -l
153

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

Опять задача с ног на голову ставится!

Eddy_Em ☆☆☆☆☆ ()

Пиши автоматический граббер любимых картинок/видео с любимого сайта. В качестве бонуса добавь работу через прокси/тор.

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

матюги тех, кто будет его запускать на aix/hpux/solaris/

Матюги 0.000000000000000000000001% будут совершенно не слышны, я гарантирую это.

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

Это более слабое правило. А если написать /bin/bash, то что делать в системе, где его нет?

Если нет bash - бери PowerShell

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

если есть что автоматизировать, то баш безупречен) Благодарю.

Хуже инструмента для автоматизации, чем баш нет.

Он подходит только для поделок пионеров в 15 строк.

wlan ★★ ()

Подскажите тему для написания bash скрипта

форк-бомба. остальное скууучно. :-D

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

Иногда это матюг конкретного коллеги. Слышный.

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

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

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

На дворе новый миллениум, кругом уже systemd, какие init-скрипты.

Пусть возьмет debian-stable +)

А вообще, для практики самое оно. И до появления systemd/upstart/etc у скриптов на баше было только два кейса, скрипты в 15 строк для ленивых и init-скрипты по понятным причинам.

wlan ★★ ()

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

wakuwaku ★★★★ ()

Сложные задачи надо уже не на баше писать. Баш нужен для простой автоматизации.

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

Автоматизация автоматизации рознь.

Скрипт на 15 строк еще нормально на баше написать. Что-то сложнее возьми нормальный инструмент типа питон-перл.

Я не спорю на баше можно написать все что угодно. Но потом поддержка этого всего скатывается в ад.

Баш прост именно для того чтобы в пару строк избавиться от какой-то рутины. Так сказать скриптинг в мусорное ведро. А вообще я считаю что интерактив и скрипты это атавизм. Когда продакшен из-за одной невнимательной макаки и одной опечатки может улететь в даун на несколько часов это весело. А еще весело выглядят «бекапы в кроне» и прочая ересь.

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

Кстати, после пары собственноручно написанных инит-скриптов становится понятно зачем нужен systemd.

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

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

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

Ты даже тся/ться не осилил. О чем с тобой вообще можно говорить?

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

Часто кстати на опе волосы рвешь когда дебажишь баш-скрипт на тысячу строк?

Проблема баша в том что он слишком простой и начать на нем писать может любая макака через час чтения ABS.

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

кто будет его запускать на aix/hpux/solaris/

Матюги 0.000000000000000000000001% будут совершенно не слышны

Админы aix/hpux/solaris/ просто не будут запускать ваше наколеночное говно. А указанный процент больше похож на активность твоего мозга.

sdio ★★★★★ ()

Обсуждался как то тут вопрос. Вот, собственно, «В системе работают два RAID1-массива mdadm, состоящих из дисков одинакового размера. А также один запасной диск такого же размера — для замены вышедшего из строя. Напишите скрипт, который бы следил за выходом из строя дисков в любом из настроенных массивов и автоматически исправлял деградировавший массив.» Дерзайте. :)

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