Система
Pueue
Утилита Pueue — интересная штука для запуска долгих задач и для работы с созданной очередью задач в системе, конечно. Нужна для тех, кому вполне очевидных для таких случаев jobs
/fg
/bg
/screen
/tmux
по какой‑то причине оказывается недостаточно.
Как пишут сами разработчики, Pueue нужен, когда задачи очень долгие либо их нужно выполнять параллельно, имея при этом полный контроль над ними. Лично мне утилита показалась намного более дружелюбной, чем штатный bg
/fg
.
info
Crongo — еще одна попытка создать удобный инструмент для работы с cron. Утилита делает примерно то же самое, что Pueue, так что может в некотором смысле быть альтернативой.
NQ
Nq — еще одна простая утилита, которая позволяет запускать очереди из заданий в системе. Не то чтобы без нее было невозможно жить, но порой очень сильно помогает. Выглядит куда менее привлекательно, чем Pueue, но и в работе проще.
Она настолько простая, что для ее использования достаточно просто увидеть пример:
%
%
%
window1% qget http://mymirror/big1.iso
window2% qget http://mymirror/big2.iso
window3% qget http://mymirror/big3.iso%
... wait for all downloads to finish ...
Vizex
Если ты работаешь в терминале дольше недели, ты, конечно, знаешь о df
и его сухом выводе. Давай разукрасим его и сделаем ближе к людям!
Vizex и vizexdf — это апгрейд df
, который выполняет свою задачу куда нагляднее и приятнее внешне.
bashtop
В фильмах о хакерах люди видят огромные сводные таблицы с информацией о системе и графиками, а у тебя их до сих пор нет? Не беда! Лови bashtop — это как раз такой дашборд. Если у тебя вдруг есть свободный монитор, на который его можно повесить, — ты знаешь, как добавить +1000 к своей гиканутости в глазах посетителей.
Bashtop умеет показывать не только общую информацию, но и детали по каждому процессу. Позволяет эти процессы сортировать по различным параметрам и легко конфигурируется.
А еще есть реализация этого красавца на Python — bpytop. Выглядит не менее эффектно, да и по возможностям не отстает.
Rhit
Занятная консольная утилита для анализа логов nginx. Встречай Rhit — это, конечно, не GoAccess, но выглядит тоже интересно.
Умеет рисовать графики частоты запросов прямо в консоли.
Есть анализ трендов в запросах и удобный графический вывод этого в консоль.
Конечно же, все можно фильтровать, чтобы отслеживать только необходимое.
Lnav
Lnav — это анализатор логов, который умеет работать не только с nginx, в отличие от Rhit. Вот список его достоинств:
- может сводить все требуемые логи на один экран. Ты можешь задать мониторинг логов сразу нескольких сервисов, и он покажет все сразу;
- умеет подсвечивать текст по формату. Имеется десять встроенных форматов, в том числе один «общий», то есть подходящий почти к любому логу;
- автоматически определяет сжатые логи в форматах gzip и bzip2 и разжимает их на лету;
- умеет фильтровать на основе регулярных выражений. Если выводишь много логов сразу — можно отфильтровать лишнее;
- может строить гистограммы сообщений по времени;
- красиво выводит XML и JSON. Просто нажми Shift+P;
- к логам можно обращаться как к виртуальной SQLite БД, которая обновляется вместе с логами в реальном времени;
- lnav поддерживает разные темы оформления своего интерфейса;
- при вводе команд также есть подсветка синтаксиса и автодополнение.
Прямо на сайте есть готовые бинарники под Linux и macOS: видимо, это на случай, если твой сервер — старый макбук.
Butterfly Backup
Butterfly Backup — это такая интересная обертка вокруг rsync, которая умеет создавать и восстанавливать бэкапы. Список умений действительно внушительный:
- поддержка тихого бэкапа;
- все бэкапы аккуратно рассортированы;
- просмотр сведений о конкретном бэкапе;
- поддержка разных режимов копирования;
- можно бэкапить сразу несколько компов, причем параллельно;
- можно восстанавливать копию даже не на том компьютере, где она была создана. Теоретически, это может быть полезно при миграции на новое оборудование. Более того, можно восстановить бэкап даже на другой операционной системе;
- поддерживаются политики относительно старых бэкапов: их можно удалять по достижении лимита занятого хранилища;
- экспорт бэкапов для удобной перевозки сторонними средствами.
Установить Butterfly Backup можно всего в три команды:
git clone https://github.com/MatteoGuadrini/Butterfly-Backup.git
cd Butterfly-Backup
sudo python3 setup.py
Пример использования от автора утилиты:
# Полная копияbb backup --computer pc1 --destination /nas/mybackup --data User Config --type MacOS --mode Full
# Инкрементальная копияbb backup --computer pc1 --destination /nas/mybackup --data User Config --type MacOS
Если просмотреть список копий командой bb
, то можно увидеть краткое описание каждого снятого бэкапа.
BUTTERFLY BACKUP CATALOG
Backup id: f65e5afe-9734-11e8-b0bb-005056a664e0
Hostname or ip: pc1
Timestamp: 2018-08-03 17:50:36
Backup id: 4f2b5f6e-9939-11e8-9ab6-005056a664e0
Hostname or ip: pc1
Timestamp: 2018-08-06 07:26:46
Backup id: cc6e2744-9944-11e8-b82a-005056a664e0
Hostname or ip: pc1
Timestamp: 2018-08-06 08:49:00
Тут отсутствуют некоторые важные детали, так что давай посмотрим на один из них поближе.
bb list --catalog /nas/mybackup --backup-id f65e5afe-9734-11e8-b0bb-005056a664e0
Backup id: f65e5afe-9734-11e8-b0bb-005056a664e0
Hostname or ip: pc1
Type: Full
Timestamp: 2018-08-03 17:50:36
Start: 2018-08-03 17:50:36
Finish: 2018-08-03 18:02:32
OS: MacOS
ExitCode: 0
Path: /nas/mybackup/pc1/2018_08_03__17_50
List: etc
Users
И наконец, восстановление:
bb restore --computer pc1 --catalog /nas/mybackup --backup-id f65e5afe-9734-11e8-b0bb-005056a664e0
Скрипты
Bash Bible
Для начинающих и продолжающих жильцов консоли существует сервис Bash Bible (и его родной брат sh bible): там представлены примеры реализации разных задач в скриптах, написанных исключительно на чистом Bash (или sh).
Чтобы далеко не ходить — вот тебе парочка примеров обхода всех файлов и папок в директории на чистом Bash без использования ls
.
# Greedy example.for file in *; do printf '%s\n' "$file"done# PNG files in dir.for file in ~/Pictures/*.png; do printf '%s\n' "$file"done# Iterate over directories.for dir in ~/Downloads/*/; do printf '%s\n' "$dir"done# Brace Expansion.for file in /path/to/parentdir/{file1,file2,subdir/file3}; do printf '%s\n' "$file"done# Iterate recursively.shopt -s globstar
for file in ~/Pictures/**/*; do printf '%s\n' "$file"doneshopt -u globstar
info
Было бы неправильно не упомянуть священный zsh с плагином oh-my-zsh и кастомными темами. Ничего удобнее для терминала так и не придумали, а мы на «Хакере» уже писали о нем. Настоятельно рекомендуется к ознакомлению!
Полезные однострочники
У меня в закладках лежит интересный ресурс с разнообразными однострочниками — этакая библиотека команд на все случаи жизни.
Вот, например, как смонтировать NTFS раздел из виртуального диска VirtualBox (VDI):
$ mount -t ntfs-3g -o ro,loop,uid=user,gid=group,umask=0007,fmask=0117,offset=0x$(hd -n 1000000 IMAGE.vdi | grep "eb 52 90 4e 54 46 53" | cut -c 1-8) IMAGE.vdi /mnt/vdi-ntfs
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»