Go to content Go to menu Go to search

Полезные мелочи, которые бывают часто нужны

...и о которых часто забываешь

Копирование Web-сайта со структурой (grabbing)

Непрерывное копирование (высокая скорость): wget —no-parent -r -l 0 -k http://www.geocities.com/airfly/

Копирование с паузами 1 сек (меньше нагрузка на сайт)

wget -w 1 —no-parent -r -l 0 -k http://www.geocities.com/airfly/

Если добавить ключ -b копирование будет выполняться в фоне, а итоги выполнения выводиться в файл wget-log

Работа YUM через прокси

Есть разные способы организовать работу YUM через прокси – задать переменные окружения и т.п.
Но самый удобный – прописать параметры в /etc/yum.conf:

proxy=http://192.168.1.2:3128 proxy_username=root proxy_password=блаблабла

Очень удобный «Web-построитель команды ‘find‘»

Его страница находится здесь

MySQL: забыт рутовский пароль

Решение простое – сбросить забытый пароль:

1). В /etc/mycnf в секцию [mysqld] вставляем строку

skip-grant-tables

2). Перезапустить mysqld

После этого пароль будут сброшен и можно ввести любой другой.

Тестирование скорости веб-сервера

Используется консольная утилита mq

Для своей установки требует пакета httpd-tools и runtime-библиотеку Апача.

mq-c100-n1000http://mysite.com

где
c – число множественных запросов к серверу в секунду
n – число множественных запросов к серверу в секунду

MySQL: чиним битые таблицы

Бывает, что после длительной работы дедика или при его сбоях “бьются” таблицы типа MyISAM(в отличие от более медленных таблиц InnoDB, которые этим недостатком не обладают). Косвенный признак этого – резкое замедление работы сайта и перегруженность процесса mysqld – 200-300% и более.

Для “починки” всех таблиц всех баз данных на сервере необходимо выполнить следующую команду:

mysqlrepair-auto-repair all-databases user=root -password

Здесь mysqlrepair – лишь линк на исполняемый файл mysqlcheck, обычно расположенный в /usr/bin/ Вначале программа запросит рутовский пароль MySQL. Перед починкой таблиц программа сначала анализирует их состояние и выводит на экран их состояние. Корректные таблицы будут отмечены словом Ok.

Настоятельно рекомендуется эту команду дополнить логгированием в текстовый файл, например, > log.txt Иначе, если не хватит буфера консоли, вся история восстановления в него не поместится.

Для просмотра всех возможностей программы следует выполнить команду mysqlrepair —help или mysqlrepair -?

Загрузка Linux мелким шрифтом

В современных дистрибутивов Linux загрузка системы на экране и работа в ее консоли обычно отображается удобным небольшим шрифтом, позволяющим разместить на экране больше информации. Но иногда это не так, и шрифт выглядит крупным, 80×25

Чтобы исправить это, необходимо в /boot/grub/grub.conf в строку kernel… добавить параметр режима экрана vga= Например, для режима 1024×768 данный параметр будет равен 0×314 и строка может выглядеть так:

kernel/vmlinuz-2.6.18-194.26.1.el5 roroot=/dev/System/Rootelevator=deadlinevga=0×314

Кстати, установка мелкого шрифта помогает избежать в Федоре крякозябриков в системных сообщениях при ее ребуте или выключении.

PS. При использовании технологии виртуализации Xen из-за особенности ее ядра указанный метод не работает.

Сетевая установка CentOS

Среди различных вариантов установки продуктов Red Hat есть сетевой вариант, когда локальная загрузка производится с небольшого загрузочного дистрибутива объемом порядка 10 Mb, а остальное все дотягивается с репозитариев. Удобно, если есть скоростной канал.

Но вот за что хочется дать пинка радхатовским разработчикам – так это за извращенный синтаксис такой установки. Дело вот в чем.
Когда процесс установки доходит до указания источника с дистрибутивом, возникает окошко для ввода его адреса, необходимо вводить:

http://mirror.centos.org/centos/5/os/x86_64/

вместо

http://mirror.centos.org/centos/5/os/x86_64/images

Т.е. без указания каталога /image с образом. Почему именно так – подержите арбуз…

Подсчет контрольной суммы файлов

Иногда требуется подсчитать контрольную сумму файлов, лежащих в каталогах и подкаталогах. Всего несколько команд, требуемых для выполнения этой задачи, демонстрируют мощь Linux, в частности, интерпретатора bash:

1
2
3
4
5
#!/bin/sh
 cd "$1"
 PathName=$(basename $(pwd))
 cd ..
 find "$PathName" -type f -print0 | xargs -0 md5sum > "$PathName".md5

Для удобства помещаем эти команды в исполняемый скрипт, например, csumm.sh, и запускаем его с аргументом, равным пути подсчитываемого каталога, например:

./csumm.sh /boot

При этом, если не хотим, чтобы файл скрипта тоже попал в подсчет, размещаем его в каталоге выше, чем подсчитываемый каталог.

Данный скрипт рекурсивно обходит все папки и файлы и выдает результат в файле с именем, совпадающим с именем подсчитываемого каталога, примерно в таком виде:

29127f2917ab5da409cf96d2f85f51ce boot/grub/jfs_stage1_5
3a470d923dea5de8d6547c7431a476dd boot/grub/splash.xpm.gz
f94a0824e7862bdab090b0a9dbb26384 boot/grub/vstafs_stage1_5
1f143a653df3c6961259e181cb84236c boot/grub/fat_stage1_5
c1e7a72a73b5db02653a8d4e2d760c07 boot/grub/ffs_stage1_5
48c2edef9527d3fb1259b74dbaab9dd8 boot/grub/stage1
c775729f11f1d3ef288482927a2ae2bb boot/grub/minix_stage1_5

Исключение обновления некоторых пакетов в YUM

Чтобы отключить обновление некоторых пакетов, производимое с помощью YUM, необходимо в конфиге /etc/yum.conf дописать параметр exclude= и после него перечислить через запятую исключаемые пакеты, Например:

exclude=isdn4k-utils,ql2200-firmware,irda-utils,bluez-utils,wvdial,php*,rp-pppoe

Очень полезная команда, когда необходимо предупредить пользователей, зашедших на сервер, что он, например, будет перезагружаться:

wall Who can hide - the server will reboot!

Результат работы команды wall:

Broadcast message from abdula@1c-server.local (pts/0) (Fri May 13 00:52:44 2011)Who can hide - the server will reboot!

Выдаваться она может любым пользователем.

Директивы сокрытия сигнатуры сервера и Апача

Чтобы скрыть от браузеров пользователей наименование ОС и веб-сервера Apache, нужно в конфиг-файл Апача /etc/httpd/conf/httpd.conf поместить две директивы:

ServerSignature Off
ServerTokens Prod

Быстрый скан локальной сети

Чтобы быстро просканировать сеть класса “C”, достаточно запустить утилиту nmap в следующем формате:

nmap 192.168.1.0/24

После нескольких секунд работы она выдаст примерно следующее:

...............................
 Nmap scan report for 192.168.1.10
 Host is up (0.00028s latency).
 Not shown: 997 filtered ports
 PORT      STATE SERVICE
 21/tcp open  ftp
 22/tcp    open  ssh
 23/tcp open  telnet
 80/tcp    open  http
 10000/tcp open  snet-sensor-mgmt
...............................

Конвертация русскоязычных доменов

Конвертация домена русский -> punycode

idn -a --quiet "Энергоагентство.рф"

Конвертация домена punycode -> русский

idn -s --quiet "xn--80aebbhd5cfffosmb7m.xn--p1ai" | idn -u --quiet

Онлайн:

Есть масса онлайн-перекодировщиков, например на сайте http://www.reg.ru

Установить часовой пояс в CentOS без использования утилит.

В папке /usr/share/zoneinfo находим нужный файл зоны. Удаляем файл /etc/localtime, вместо него делаем символическую сылку на найденный файл зоны:

mv /etc/localtime /etc/localtime_bkp
ln -s /usr/share/zoneinfo/America/Los_Angeles /etc/localtime

Для Новосибирска:

ln -s /usr/share/zoneinfo/Asia/Novosibirsk /etc/localtime

Узнать список файлов которые содержит пакет (или какие файлы установлены при установке пакета)

RedHat:

rpm -qa | grep <часть имени пакета>
rpm -ql <имя пакета>
rpm -qf <полный путь к файлу>

Debian:

dpkg --list | grep <часть имени пакета>
dpkg -L <имя пакета>

Ключи монтирования NFS

строка в /etc/fsatb

192.168.1.53:Images     /mnt/NAS3_192.168.1.53 nfs  defaults,soft,timeo=20,retrans=2,nolock 0 0

ключи:

soft / hard Determines the recovery behavior of the NFS client after an NFS request times out. If neither option is specified (or if the hard option is specified), NFS requests are retried indefinitely. If the soft option is specified, then the NFS client fails an NFS request after retrans retransmissions have been sent, causing the NFS client to return an error to the calling application.

NB: A so-called “soft” timeout can cause silent data corruption in certain cases. As such, use the soft option only when client respon‐ siveness is more important than data integrity. Using NFS over TCP or increasing the value of the retrans option may mitigate some of the risks of using the soft option. timeo=n The time in deciseconds (tenths of a second) the NFS client waits for a response before it retries an NFS request.

retrans=n The number of times the NFS client retries a request before it attempts further recovery action. If the retrans option is not spec‐ ified, the NFS client tries each request three times. The NFS client generates a “server not responding” message after retrans retries, then attempts further recovery (depending on whether the hard mount option is in effect).

lock / nolock Selects whether to use the NLM sideband protocol to lock files on the server. If neither option is specified (or if lock is speci‐ fied), NLM locking is used for this mount point. When using the nolock option, applications can lock files, but such locks provide exclusion only against other applications running on the same client. Remote applications are not affected by these locks.

Настройка сети в CentOs

/etc/sysconfig/network-scripts/ifcfg-eth0:

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
IPADDR=192.168.1.86
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
NETWORKING_IPV6=no
IPV6INIT=no

Проделать действия над всеми файлами в папке в Linux

for file in *.jpg
do
  convert -resize x800  "$file" x576/"$file"
done

Состояние, уровень и качество сигнала wifi

iwconfig wlan0
iwlist scan

Многократный запуск команды

команда watch по умолчанию запускает команду с периодичностью 2 сек

watch "iwconfig wlan0 | grep Qual"

Вывести содержимое каталога в два столбца

ls | paste - -

Узнать свой внешний IP в консоли Linux

curl https://showip.net/

Add Static route in Ubuntu (Добавить статический маршрут в Ubuntu)

В файле /etc/network/interfaces в раздел к интерфейсу дописать примерно это:

up ip route replace 172.16.0.0/24 via 192.168.10.1

Cron: /etc/cron.d/backup

PATH=/sbin:/usr/sbin:/bin:/usr/bin
#m   h  dom mon dow user   command
10   23 *   *   7   root   /root/bin/full-code-backup.sh
*/10 *  *   *   *   root   date +%Y-%m-%d\ %H\:%M >> /var/log/csync2.log; /sbin/csync2 -xv >> /var/log/csync2.log 2>&1

Установка репозитория epel в CentOS

yum install epel-release

Вывод результатов работы команд в виде таблицы

mount | column –t

Сортировка процессов

По используемой памяти:

ps aux | sort -nk 4

По использованию CPU:

ps aux | sort -nk 3

Сетевые утилиты в CentOS7

yum install net-tools

Настройка bash

/root/bash.rc:

# не сохранять в истории дубликаты команд и команды начинающиеся с пробела
HISTCONTROL=ignoreboth
# добавлять в историю команды со всех открытых терминалов
shopt -s histappend
# длина истории
HISTSIZE=10000
HISTFILESIZE=20000

Узнать какой процесс кушает своп

for file in /proc/*/status ; do awk '/VmSwap|Name|^Pid:/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 3 -n -r | less

или:

smem -t -p

Определить каталог, в котором больше всех файлов (бывает нужно, когда высокий inode usage на файловой системе):

find / -xdev -printf '%h\n' | sort | uniq -c | sort -k 1 -n

fstab

Сделать монтирование диска не обязательным

/dev/usb0    /mount/usb  ext4 auto,nofail,x-systemd.device-timeout=5s 0 0

Автомонтирование диска при обращении (удобно делать для сетевых фс)

/dev/usb0    /mount/usb  ext4 x-systemd.automount 0 0

Монтирование диска после монтирования предыдущего

/dev/sdb     /mount/data       ext4 auto,nofail,x-systemd.device-timeout=5s 0 0
/dev/sdb1    /mount/data/logs  ext4 auto,x-systemd.requires-mounts-for=/mount/data 0 0

Монтирование сетевой фс после того, как поднимется сеть

nfsmount /mnt/nfs                fuse _netdev  0 0

Проверить целостность файлов, установленных из пакетов debian

sudo debsums -a | grep -v OK

Enjoy!


при публикации материалов с данного сайта обратная ссылка на сайт обязательна.
valynkin.ru © no rights reserved