--- title: Необходимые вещи tags: software --- По аналогии с [suckless-tools](http://suckless.org/philosophy), у меня накопился свой список "маленького, но незаменимого" софта[^fn1]. Делюсь: --- * at -- Планировщик. Иногда бывает полезно повесить какое-то разовое задание на определённое время. Пример - докачка чего-то толстого из сети, и выключение компа примерно тогда, когда оно должно завершиться. Ещё сюда же входит batch -- для того спеифического случая, когда нужно выполнить много ресурсоёмких (cpu) задач, за возможно более короткое время. Пример - кодирование разных видеофайлов. Все сразу пускать нельзя, дисковая обидится, и первых результатов хочется возможно быстрее. См. также task-spooler * [burp](http://burp.grke.net) -- Очень удобная система бэкапов. Минимум зависимостей, гибкие настройки, возможность создания бэкапов "по возможности" (timed backup). * [ctags](http://ctags.sourceforge.net) (+vim) -- Подсветка синтаксиса. Писать скрипты намного приятнее, когда вывод раскрашивается, скобки подсвечиваются, а содержимое кавычек выделяется другим цветом. * debfoster -- Чистка системы после экспериментов. Аккуратно разбирает граф зависимостей "сверху", показывая "кто что держит". Самую засранную систему можно привести в первоначальный вид за полчаса (хотя против установки через слака-вей - нет приёма, да). * [htop](http://htop.sourceforge.net) -- top, но с интегрированным tree-view, знающим про отличия thread/fork, и тот факт, что cpuload бывает не только user. * [links](http://links.twibright.com) -- из консольных браузеров - самый вменяемый движок рендеринга, верстка практически не едет (привет w3m!). * localepurge -- Чистка неиспользуемых локалей, могущих жрать до гигабайта места. Очень полезно для минимальных систем. * [ncdu](http://dev.yorhel.nl/ncdu/) -- Отвечает на вопрос "где всё место в /var, блжад??" и ему подобные. Очень удобна для чистки логов и мусора на файлопомойке. * [pv](http://www.ivarch.com/programs/pv.shtml) -- Тот кто пользовался dd хотя бы пару раз - думал о возможности прикрутить к нему progressbar. Их есть у меня! Эта утилитка показывает размер и скорость прокачиваемых через пайп данных. В сочетании с netcat/[tarpipe](https://en.wikipedia.org/wiki/Tar_%28computing%29#Tarpipe) - вещь очень полезная для перекидывания данных с минимальным оверхедом, в том числе по сети. * [task-spooler](http://vicerveza.homeunix.net/~viric/soft/ts/) -- менеджер очереди. В отличие от at+batch не полагается на avgload, а тупо выполняет их по очереди/в несколько потоков. Очередью можно управлять, добавляя/снимая слоты, двигая задания в очереди. * [runit](http://smarden.org/runit/) -- Supervisor. Эта штука, наблюдающая за процессами, перезапуская их при необходимости. К ней легко довешивается сохранение логов (с авторотацией), если приложение может их выдавать на stdout/stderr. Может частично заменять cron (задача вида "запустить скрипт через X минут после завершения предыдущего запуска" в классическом кроне не решается, а здесь пожалуйста - sleep N в начале или конце ./run - и вуаля). См также [s6](http://skarnet.org/software/s6/index.html). * [tmux](http://tmux.sourceforge.net) -- Консольный оконный менеджер. Если [screen](http://savannah.gnu.org/projects/screen) - это "запустить/отцепить/отключиться", то здесь почти можно жить. С плагином [tmux-ressurect](http://www.opennet.ru/opennews/art.shtml?num=40522) - вообще шикарно. * [tudu](http://cauterized.net/~meskio/tudu/) -- Список дел. Есть tree-view, приоритеты, прогресс выполнения, время дедлайна, описание задачи. См также [taskwarrior](http://taskwarrior.org). [^fn1]: Сюда не включены широкоизвестные утилиты, типа rsync'а