Я накопил некоторый список скриптов, которыми пользуюсь каждый день и мне интересно поделиться своими наработками с обществом и менее опытными товарищами, а так же почерпнуть опыт от более опытных сочувствующих и дополнить их.
Накопилось множество скриптов:
1. textfind — скрипт из публикации: habrahabr.ru/post/135497 — очень полезен в купе с Suricata/Snort в качестве IPS.
2. lschanged — список 5 последних изменённых файлов — полезно, если отвлёкся и нужно вспомнить, какими файлами ты занимался.
3. prettyuser — очень полезный скрипт, если установил поверх системы какой-нибудь софт, который шёл с «предустановленным» юзером — удобно посмотреть, в каких группах он находится.
4. memhungry — иногда полезно узнать, сколько памяти жрёт конкретный процесс.
И многие другие…
В последнее время мне часто приходится переносить эти скрипты между новыми, только установленными системами. Поэтому я создал репозиторий на github, в котором систематизирую все свои скрипты, которыми пользуюсь каждый день. Идея создать репо, в котором сконцентрировать наиболее удобные и полезные скрипты.
Я стараюсь каждый день дополнять список, исправляя свои скрипты и их неудобства. Поэтому репозиторий будет часто обновляться.
Так же у меня есть некоторое количество скриптов, позволяющих оценить нагрузку системы с использованием netstat:
netstat -na | grep ":80\ " | wc -l
netstat -na | grep ":80\ " | grep SYN_RCVD | wc -l
netstat -na | grep ":80\ " | grep ESTAB | wc -l
и т.д.
Очень приветствуются дополнения, критика и исправления ошибок в скриптах. Большая часть скриптов взята с commandlinefu — как замена моим менее функциональным.
Комментарии (6)
acmnu
09.12.2016 14:44+7Эта статья конечно полезная, но лично для вас. Фишка в том, что паттерны, повторяющеся в вашей работе не факт что будут полезны для других. Например для многих задача вспомнить что он тут делал будет комбинацией команд git status; git show HEAD;
Для привыкания к новым патернам требуется время, а главное не всегда надо их сохранять. Часто можно прям в консоли набить функцию которая нужна вам прям сейчас, но врятли понадобится когда-нибудь ещё.
Например прям сейчас у меня есть функция:
$ type get_console get_console is a function get_console () { curl $1 | grep --color=auto -v '| +' }
Это сиюминутная фишка необходимая мне для того, что я просматриваю кучу логов от Jenkis и они засраны спамом от set +x. Думаю понятно, что без этой функции мне приходилось бы подставлять url, куда-то в средину команды, а так стрелка вверх, ctrl+w, shift-insert. Но нет я не делаю скрипт, не правлю .bashrc, просто набиваю эту функцию прям в командной строке.
Ну и не надо забывать про alias. Класика жанра:
alias ll='ls -alF'
Ну или ваши пять последних файлов (правда не больше 2^15 файлов):
alias ltr5='find . | xargs ls -tr | tail -5'
Косательно вашего репозитория могу сделать вам несколько подсказок, возможно они вам понадобятся.
- Имена ваших хелперов неплохо начинать одинаково. Я например предпочитаю префикс hlp_. В этом случае, даже если подзабыл как называлась функция, то нажав на таб получишь список (если пользоваться zsh, то можно и список с пояснениями вывести)
- Если расширяете известные команды или делаете по ним шорткаты, то проще называть созвучной с оригнальным именем командой. Опять таки классика ls и alias ll.
- Нет никакой необходимости "инсталировать" это дело. Гораздо проще написать один sh файл с функциями и делать source из .bashrc. Это позволятет просто соурсить из вашей рабочей папки с гитом. Ну или в вашем случае можно прописать PATH на эту директорию.
- Надо писать толковый readme. Со временем патерны работы поменяются и разобраться что вы писали год или два назад будет очень сложно. Написать для себя man вообще бесценно.
HellDN
09.12.2016 17:29+1Вы правы, но идея была собрать полезные ежедневные скрипты.
Я сомневаюсь что Вы сможете вспомнить что устанавливали/конфигурили командой git status.
Алиасы, конечно, полезны. Но мне часто приходится переносить скрипты с сервера на сервер и переносить .bashrc каждому юзеру в home — очень не удобно.
Поэтому мне удобнее иметь все эти скрипты в /usr/bin.acmnu
09.12.2016 17:37Ну если это тащить на сервер, то надо пакетировать однозначно, хотя можно и в хомяк положить.
HellDN
09.12.2016 18:07+1Вот я и вложил в некое подобие пакета.
По поводу, что они полезны только для меня — я специфичные скрипты не выкладывал. Только общие. Никаких докеров, xen, и тому подобных.
Рассмотрите prettyuser — достаточно удобная штука.
lschanged, showservice — с начала sysmtectl скучал по этой софтине.
Благо вместо netstat — ss с теми же аргументами идёт. Не пришлось оборачивать в удобочитаемую форму.
Хомяк — опять же идёт привязка к конкретному юзеру.
nightvich
Простите, не могу сдержаться, но эта картинка отлично визуализирует Вашу статью.
