====== Типовые задачи ====== ===== Проверка примонтированных дисков без исправления ===== fsck -nf / ===== tail с подсветкой строк ===== Вывод файла почтового лога с подсветкой строк содержащих слово "sent". I в вонце sed-команды 's/.../.../I' делает поиск независящим от регистра. tail -f /var/log/mail.log | sed --unbuffered -e 's/\(.*sent.*\)/\o033[32m\1\o033[39m/I' То же с помощью awk tail -f /var/log/mail.log | awk '{if ($0 ~ /sent/) print "\033[32m" $0 "\033[39m"; else print $0}' Подсветка только совпадающих слов с помощью sed tail -f /var/log/mail.log | sed --unbuffered -e 's/\(.*\)\(sent\)\(.*\)/\1\o033[32m\2\o033[39m\3/I' Подсветка только совпадающих слов с помощью grep tail -f /var/log/mail.log| grep --color=always -iE 'sent|$' ===== Генерация пароля ===== openssl rand -base64 15 openssl rand -base64 24 ===== Замеры скорости ===== Замер скорости чтения большого количества мелких файлов (на примере папки /usr) tar c /usr |pv -s $(du -sb /usr | awk '{print $1}')>/dev/null Замеры скорости диска командой dd Запись dd if=/dev/zero of=/dev/sdb status=progress bs=8M Чтение dd of=/dev/null if=/dev/sdb status=progress bs=8M ===== Telnet с передачей команд из строки/файла ===== Команда telnet не умеет принимать команды для выполнения кроме как с клавиатуры. Вариантом решения может быть использование expect, либо вместо телнета можно использовать netcat. Пример получения статистических данных от сервиса memcached: echo stats|nc 127.0.0.1 11211|egrep "evict|get_hit|get_miss" ===== Пинг нефрагментированными пакетами ===== Пинг нефрагментированными пакетами размером 9000 байт: ping -M do -s 9000 192.168.1.1 для стандартного джамбо-фрейма(MTU=9000) следует указывать ''-s 8972'' ===== Ping нескольких хостов одновременно ===== Данный функционал отсутствует в программе ping, но есть в fping, которую можно установить. fping -c 9999 -i 1000 192.168.0.1 192.168.0.2 ya.ru -c - сколько раз пинговать -i - интервал между пингами в милисекундах ===== Тюнинг производительности с помощью tuned ===== tuned использует провфили для задания параметров системы, связанных с производительностью. Посмотреть какие профили доступны: tuned-adm list Текущий профиль: tuned-adm active Задать новый профиль производительности: tuned-adm profile throughput-performance ===== Отключение IPv6 ===== net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 net.ipv6.conf.eth0.disable_ipv6 = 1 sysctl --system ===== Запуск фоновой программы по SSH ===== ssh login@host 'nohup /path/to/program >/dev/null 2>&1 ===== Выполнение серии команд по SSH ===== Делаем переменную с текстом скрипта script=" if [ Condition_1 ]; then command1 elif [ Condition_2 ]; then command2 command3 fi" И затем ssh login@host "$script" или ssh login@host 'bash -s' <<< "$script" ===== самодельный VPN через SSH ===== ssh -L 127.0.0.1:2222:127.0.0.1:2222 server socat -d -d TCP4-LISTEN:2222,reuseaddr TUN:192.168.255.1/24,up iptables -t nat -A POSTROUTING -o tun0 -s 192.168.255.0/24 -j MASQUERADE socat TCP:localhost:2222 TUN:192.168.255.2/24,up ip r add 0.0.0.0/0 via 192.168.255.1 metric 10 ===== Поиск имен файлов больше 255 символов ===== Это может быть полезно при переносе файлов с NTFS/CIFS дисков на диски линукс сервера (где ограничение на длину имен в 256 байт, что для русских букв в UTF-8 будет означать 127 символов) find . -type f -print| while read line; do len=$(basename "$line"|wc -c); if [[ $len -ge 255 ]]; then echo "$line"; fi done {{tag>linux unix shell scripts}}