LINUX.ORG.RU

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

 ,


0

1

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

Ответ на: комментарий от wakuwaku

я просто уточнить

Как человек, регулярно имеющий дело со скриптами на сотни и тысячи строк

На баше?

в большинстве случаев написать на баше будет значительно быстрее и лаконичней

На баше? Быстрее и лаконичнее чем на перле?

Stil ★★★★★ ()

Напиши демон контроля пользователей. Я сам такой пилю потихоньку как часть своего проекта (даже на VCS заливаю)

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

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

DeadEye ★★★★★ ()
Ответ на: я просто уточнить от Stil

Re: я просто уточнить

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

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

Запущенные процессы (убивает те, которые прописаны в спецконфиге), при имеющейся соответствующей пометке в другом конфиге - запрет на исполнение (пока еще не готов, но реализация на acl). Это не совсем демон в полном смысле этого слова, но тем, что постоянно выполняется - похож.
Также пилю контроль времени сидения пользователей (род. контроль), тоже еще не готов, но суть в парсинге нескольких команд и файлов.

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

Как человек, регулярно имеющий дело со скриптами на сотни и тысячи строк,

Тысячи строк на баше? Ты или гонишь, либо упорот до безобразия.

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

Согласен. На баше такой жести не попишешь, ибо ограничен шеллом.

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

Во-первых, есть такое дело как NDA и передача авторских прав работодателю.

Во-вторых, возьми любой init-script и посмотри.

В-третьих, почему я должен что-то показывать?

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

Мне приятнее писать код, когда для этого есть нормальные инструменты, я не люблю забивать гвозди камнем на палке.

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

Что в этом такого? Это называется гипербола, естественно, скриптами обычно решаются задачи до тысячи строк. Что за перепись неосиляторов баша?

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

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

DeadEye ★★★★★ ()

У меня есть задачка.

Есть пачка фоток с камеры из которых собирается таймлапс.

Проблема в следующем: кадры идут с частотой раз в сутки. Соответственно условия освещенности очень разнятся. Надо решить проблему фликера. Да и с учетом того что в видео за год будет всего 365 кадров надо делать вставку искусственно генерируемых картинок являющимися средним между реальными кадрами.

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

Намекаешь, будто баш нужен был для инит-ситем?

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

Тысячи строк на баше?

dkms:

└► file $(which dkms) ; grep -v -e '^$' -e '^#' $(which dkms) | wc -l
/usr/sbin/dkms: Bourne-Again shell script, ASCII text executable, with very long lines
3303

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

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

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

Во-первых, во-вторых, в-третьих... словесный самурай а не кодер. Заявил про ад, давай показывай, оставь работодателя в покое.

возьми любой init-script и посмотри.

хорошо, даже не выбираю:

$ find /etc/rc.d/ -type f -name rc.* | shuf -n 1 | xargs pastebin.sh -f
http://pastebin.com/94BN1hy8

Что из этого ад для отладки?

почему я должен что-то показывать?

потому что гладиолус. хочешь аргументации - сам аргументируй. Фактами.

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

Кого ты хочешь удивить линуксовыми костылями?

Всех наивно полагающих, что bash-скриптов на тысячи строк не бывает.

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

Всех наивно полагающих, что bash-скриптов на тысячи строк не бывает.

То, что извращенцы всякие бывают, я и так в курсе.

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

То, что извращенцы всякие бывают, я и так в курсе.

Во-первых, ты не один такой наивно полагающий. Во-вторых, причем тут извращенцы?

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

А как ещё назвать тех, кто добровольно выбирает неподходящий инструмент?

Встречный вопрос — в чем заключается «неподходящесть» инструмента?

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

А как ещё назвать тех, кто добровольно выбирает неподходящий инструмент?

и что неподходящего ты нашел в dkms?

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

Так вот если говорить о том, что нужно выбирать подходящий инструмент, для выполнения shell-команд (читай «запуска всяких бинарей и скриптов») надо брать bash, и ничего страшного нет в том что там три тысячи строк. Гораздо глупее писать скрипт для выполнения 100 команд оболочки на python. А вот если тебе, например, нужно получить результат выполнения команды и потом долго и хитро его парсить - тут как раз нет смысла брать bash, т.к. есть более приспособленные для этого языки.

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

А еще весело выглядят «бекапы в кроне» и прочая ересь.

А в чем тогда запуск действия по таймеру не ересь, не пояснишь ?

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

убивает те, которые прописаны в спецконфиге

Не давай запускать те что нельзя запускать.

Также пилю контроль времени сидения пользователей (род. контроль), тоже еще не готов, но суть в парсинге нескольких команд и файлов.

Можешь подробнее? Ты смотришь сколько времени пользователь в системе залогинен?

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

не давай запускать

И так есть - второй слой защиты.

сколько времени

Пока что да - костыль, но поправить не могу...

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

Так если юзер не может запустить зачем проверять не запустил ли он?

Пока что да - костыль, но поправить не могу...

А как планируется (почему костыль)?

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

То есть пользователь должен выходить из системы каждый раз? Просто залочить ПК после того, как закончится доступное время нахождения пользователя за ПК не получится же. Наверно лучше при начале работы пользователь запускать скрипт, который пользователь не сможет убить, и смотреть время работы этого скрипта либо ограничения времени нахождения за ПК организовать через этот скрипт («sleep 3600; poweroff»).

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

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

не сможет

Сможет, к сожалению. Хотя вообще тема насчет запуска еще одного хороша.

DeadEye ★★★★★ ()

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

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

Напиши скрипт бэкапа твоих настроек не всего хомяка и /etc, а самого
минимального, выборочно + набор минимального софта. С автоматической
загрузкой в хранилище и скрипт автоматического деплоя всего этого на новой системе.

Dron ★★★★★ ()

Bash синтаксис ни с чем на свете не совместим. Пиши на нормальном ksh.

Deleted ()

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

1. apt-get install с большим списком

2. создание симлинков на всякие /usr/share/doc

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

Прибивать сессию в смысле пользователь залогинился и его «выкидывает»? А как планируешь быть со всякими tmux и коннектами по ssh?

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

tmux будет прибиваться, как и все остальные, ssh же нет проблем - у контролируемых юзеров будет недостаточно прав, да и смысла не будет по ssh так.

выкидывает

Ну да. Прибить же все процессы юзера.

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