Посты по тегу: Bash

Разбираемся в работе fork бомбы

Можете ли вы объяснить как работает fork бомба на bash?

:(){ :|:& };:

Fork бомба - один из видов DoS атак (атака на отказ в обслуживании).

:(){ :|:& };: - ни что иное, как простая bash-функция. Она запускается рекурсивно. Ее часто используют системные администраторы для проверки настройки лимита количества процессов для пользователя. Лимиты могут быть настроены в /etc …

HTTP сервер для раздачи статики одной строкой

Иногда надо быстро поднять http сервер для отдачи какого-то одного или нескольких файликов.

Тут собраны несколько способов, как одной строкой запустить http сервер для раздачи статических файлов.

Python 2.x

$ python -m SimpleHTTPServer 8000

Python 3.x

$ python -m http.server 8000

Twisted

$ twistd -n web -p 8000 --path .

or …

Консольные полезности 7

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

identify -format "%f F:%[EXIF:Flash]\n" *.jpg | egrep " F:(0|16|24|32)$"

Показать в файле символы табуляции

cat -T example.txt

Показать процессы httpd исключив сам grep

ps auxww | grep "[h]ttpd"

Список 20 самых больших по объему файлов/каталогов в …

Консольные полезности 6

Переименовать файл короткой командой:

mv foo.{old,new}

Показать количество НЕуспешных запросов (не 2хх, 3хх HTTP коды ответа)

awk '$9!~/^[23]/{print $4}' access_log | cut -c1-12 | uniq -c

Создать каталог и сразу перейти в него

mkdir dir && cd $_

Запустить скрипт из крона только если он еще не работает

*/3 …

lftp: зеркалируем локальные и удаленные каталоги

lftp — программа для передачи файлов в сложных условиях ftp, http и других соединений. lftp имеет встроенную поддержку зеркалирования всего дерева каталогов. Она так же может зеркалировать в обратном режиме, т.е. сделать зеркало локального каталога на сервере, загрузив все файлы. Еще одна интересная возможность: зеркалирование двух удаленных серверов по протоколу …

Консольные полезности 5

Пинг с префиксом в виде времени:

$ stdbuf -i0 -o0 ping 192.168.42.1 | while read l; do echo "[$(date '+%H:%M:%S')] $l"; done

В bash, выполнить предыдущю команду с заменой foo на bar:

$ ^foo^bar

Показать процессы по потреблению питания (полезно для ноутбуков):

$ sudo powertop

Не очищать экран …

25 примеров использования утилиты find

Краткое описание find

Утилита find позволяет искать по:

  • имени
  • символическим ссылкам
  • дате
  • размеру
  • типу: файл, каталог, символическая ссылка, соккет и т.п.
  • имени пользователя и группы
  • правам доступа
  • любой комбинации вышеперечисленного и многому другому

Если файл был найден, то мы можем сделать следующее:

  • просмотреть или отредактировать
  • сохранить
  • удалить или переименовать …

Консольные полезности 4

Последние добавленные файлы логов

ls -ltr /var/log | tail

Скопировать права с одного файла на другой

chmod --reference=foo.txt bar.txt

Удалить дубли строк

awk '!seen[$0]++' app.logfile

Хак для cd (смена каталога)

CDPATH=/etc:/usr/local/etc 
cd httpd # cd to /etc/httpd 
cd foo # cd /usr …

Консольные полезности 3

Отправить первые 80 гигабайт диска на удаленный хост:

dd if=/dev/sda bs=1G count=80 |pv -s80G |pbzip2 -c |ssh user@remote 'cat > /tmp/sda-80GB.bz2'

Удалить слово перед курсором:

<Ctrl+W>

Как выйти из vim:

<ESC>:q!

Запустить htop на удаленном сервере с локальным отображением:

ssh host …

Консольные полезности 2

В Линукс найти процесс dd и вывести прогресс его работы:

kill -USR1 $( pidof dd )

Найти к какому пакету относится файл. Перед этим необходимо установить apt-file.

apt-file search /usr/bin/apxs2

Найти строки с eval( в PHP файлах в пользовательский www каталогах:

find /home/*/www -name "*.php" -exec grep --color -H …