Это старая версия документа!
Содержание
Типовые задачи
Проверка примонтированных дисков без исправления
fsck -nf /
Генерация пароля
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
- /etc/sysctl.d/disableipv6.conf
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 </dev/null &'
Выполнение серии команд по 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
- server
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
- client
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