Entry tags:
Израильская военщина и арабская деревенщина
Короче, совершил сегодня коварный израильский оккупант (с фамилией на букву Л) на территории Баластынской автономии массовое убийство, причем с применением отбора по принципу принадлежности. Вот вам доказательство в чистом виде (некоторые кусочки замараны военной цензурой)
Ось таке варварське вбивство. Походу были выведены из строя некоторые зомби, а также персонально - родительский шелл, который не отзывался ни на какие увещевания. Не пытайтесь повторить дома без предварительного просмотра результатов первых двух команд. По идее должно работать даже в консоли андроид-телефона (если есть рут).
PS: да, есть pkill, но тут коварная военщина требовала двойной селекции, отсюда пайпы и прочая лабуда. Представить себе нечто подобное для винды затрудняюсь, даже приблуды вроде nircmd не потянут, только родименький шелл, потированный через какую-нибудь cygwin.
pgrep -lf /censored/ | grep /censored/ | cut -d' ' -f1 | xargs kill -9
Ось таке варварське вбивство. Походу были выведены из строя некоторые зомби, а также персонально - родительский шелл, который не отзывался ни на какие увещевания. Не пытайтесь повторить дома без предварительного просмотра результатов первых двух команд. По идее должно работать даже в консоли андроид-телефона (если есть рут).
PS: да, есть pkill, но тут коварная военщина требовала двойной селекции, отсюда пайпы и прочая лабуда. Представить себе нечто подобное для винды затрудняюсь, даже приблуды вроде nircmd не потянут, только родименький шелл, потированный через какую-нибудь cygwin.
no subject
Кста, может еще интересных идей подкинешь? У меня есть лаба по командной строке и скриптам, там я даю задания вот примерно такие же - на работу с процессами, файлами, каталогами, устройствами, и всего надо придумать 25 вариантов. Штук 15 я придумал, дальше уже фантазии не хватает.
no subject
Со своей стороны обещаю задачки, реально встречавшиеся в практике DevOps
В принципе, по одному только find я могу накидать штук 15 задачек, но справедливо ли требовать от студентов знания всех его опций? Аналогично - про egrep/sed: насколько глубоко они изучают regexp?
no subject
1. На хосте залогинены какие-то юзеры (открыты интерактивные шеллы). Надо послать всем им автоматический мейл, мол через час хост будет недоступен
2. В некоей директории имеется туева хуча поддеревьев, занимающих много места на вольюме. Надо удалить все пустые поддиректории второго уровня ( path/*/* )
3. В аналогичной директории (задача 2) надо запустить скрипт компрессии для всех поддиректорий 2-го уровня, у которых время создания старше 100 часов
4. Файл конфигурации содержит разделы [development] и [production]. Переменная RELEASE_TYPE указывает на один из разделов. Надо извлечь текст второй строчки в выбранном разделе. (подсказка - grep позволяет указать, сколько строк выдавать после найденной)
5. В файле содержатся имена файлов. Надо однострочным преобразованием сгенерить скрипт, который переименует эти файлы, добавив к каждому из имен "_original" не трогая расширение
6. Из лога надо извлечь все сообщения об ошибках и показать только уникальные, начинающиеся с ':' и заканчивающиеся 'from client ...'
7. В исходниках, прячущихся в дереве под корневой директорией, надо найти все вызовы функции 'exec_command', исключив описание функции и вызовы похожих функций, например 'exec_command_in_context'
8. Найти бегущий на хосте процесс, выполняющий скрипт 'run_main_service,py' и определить, каково значение переменной LD_LIBRARY_PATH в его шелле
9. Совсем детская задачка. Выдать на экран 3 последние строки файла. Поскольку файл может обрываться без символа "конец строки", принудительно перевести строку после выдачи текста
10. Среди процессов, выполняющих скрипт 'run_test_process.py' отобрать те, которые запущены с флагом '--config fast_update' и выдать только аргументы флага '--session_id ...'
В целях иллюстрации дам ответ к 10-й задачке.
pgrep -lf run_test_process.py | grep ' --config fast_update' | sed 's/.*--session_id //;s/ .*//'
11. Преобразовать файл в формате CSV в HTML-таблицу (потребуется несколько команд, но основная будет цепочечной)
12. Есть директория следующей структуры: первый уровень - название ВУЗа, второй - название факультета, третий - фамилия и имя студента. Надо определить, какие студенты числятся в этой структуре более чем один раз
13. В логах имеются сообщения об ошибках. Надо подсчитать сколько ошибок каждого вида есть, причем отсортировать их по количеству (подсказка: grep -c) (вторая подсказка - числовая и текстовая сортировки не есть одно и то же)
14. У процесса 'remote_control' найти все дочерние процессы, бегущие от имени пользователя 'service' и послать им сигнал 'SIGCONT'
15. В данной директории найти все симлинки, указывающие на вольюм '/nfs/corp/work/devel/backup2'