Если добавить ключ -b копирование будет выполняться в фоне, а итоги выполнения выводиться в файл wget-log
pwgenКоманда имеет ключи, позволяющие генерировать криптостойкие пароли, исключить неоднозначно читабельные символы, цифры, большие или малые символы и т.п.
Например, эта команда генерирует криптостойкую читабельную смесь букв, цифр и знаков:
pwgen -sBy
yum provides '*/need_file'где need_file - искомый файл
Есть разные способы организовать работу YUM через прокси - задать переменные окружения и т.п.
Но самый удобный - прописать параметры в /etc/yum.conf:
Решение простое - сбросить забытый пароль:
1. В /etc/mycnf в секцию [mysqld] вставляем строку
skip-grant-tables2. Перезапустить mysqld, в этом случае пароль будут сброшен и можно будет ввести любой другой:
service mysqld restart
3. Зайти в MySQL с пустым паролем (вместо него нажать Enter):
mysql -u root mysql
4. Задать здесь новый root-пароль мускуловской командой:
UPDATE user SET Password=PASSWORD('пароль') WHERE user='root';
5. Чтобы изменения вступили в силу, выполнить мускуловскую команду:
FLUSH PRIVILEGES;
6. Выйти из MySQL командой quit
7. Теперь удалить из /etc/mycnf строку
skip-grant-tables8. Перезапустить MySQL:
service mysqld restart
Тестирование скорости веб-сервера
Используется консольная утилита ab
Для своей установки требует пакета httpd-tools и runtime-библиотеку Апача.
ab -c 100 -n 1000 http://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 загрузка системы на экране и работа в ее консоли обычно отображается удобным небольшим шрифтом, позволяющим разместить на экране больше информации.
Но иногда это не так, и шрифт выглядит крупным, 80x25
Чтобы исправить это, необходимо в /boot/grub/grub.conf в строку kernel... добавить параметр режима экрана vga=
Например, для режима 1024x768 данный параметр будет равен 0x314 и строка может выглядеть так:
kernel /vmlinuz-2.6.18-194.26.1.el5 ro root=/dev/System/Root elevator=deadline vga=0x314Кстати, установка мелкого шрифта помогает избежать в Федоре крякозябриков в системных сообщениях при ее ребуте или выключении.
PS. При использовании технологии виртуализации Xen из-за особенности ее ядра указанный метод не работает.
Среди различных вариантов установки продуктов Red Hat есть сетевой вариант, когда локальная загрузка производится с небольшого загрузочного дистрибутива объемом порядка 10 Mb, а остальное все дотягивается с репозитариев. Удобно, если есть скоростной канал.
Но вот за что хочется дать пинка радхатовским разработчикам - так это за извращенный синтаксис такой установки. Дело вот в чем.
Когда процесс установки доходит до указания источника с дистрибутивом, возникает окошко для ввода его адреса, для http-источника оно такое:
Настройка HTTPВведите следующую информацию:
- имя или IP вашего сервера Веб
- каталог на этом сервере, в котором содержится CentOS для вашей архитектуры
Казалось, чего тут сложного? Вводим интуитивно понятное:
- mirror.centos.org
- /centos/5.5/os/x86_64/images
т.е. указываем /images - каталог, где лежит необходимый нам образ stage2.img
А вот фигушки! В ответ на эти данные неизменно возникает ошибка:
Ошибка
Не удается получить
http://mirror.centos.org//centos/5/os/x86_64/images/images2.img
Как видите, и образ не найден, и в полученном адресе почему-то вклинивается два слеша.
В-общем, можно долго гадать и подбирать адрес каталога с образом, но правильным неожиданно почему-то оказывается такой:
http://mirror.centos.org/centos/5/os/x86_64/
Т.е. без указания каталога /image с образом. Почему именно так - подержите арбуз...
Монтирование ISO-образа
Команда нехитрая, но с несколькими ключами, которые постоянно забываются, а в мане их искать дольше, чем здесь:
mount -o loop -t iso9660 file.iso /mnt/iso
Как узнать, работает ли NCQ?
Допустим, у вас и материнка, и жесткие диски по спецификации поддерживают технологию NCQ.
Вы включили в BIOS´е режим AHCI. Как узнать, работает ли реально NCQ?
Очень просто - даете команду
dmesg | grep NCQи если в полученном сообщении
[2.009858] ata3.00: 976773168 sectors, multi 16: LBA48 NCQ (depth 31/32), AAв скобках после NCQ первое число отлично от нуля - значит, работает! 
Пример использования chkconfig
Утилита chkconfig служит для управления сервисами. Запуск ее без параметров обычно выводит список сервисов в системе и их состояние. А как ими управлять?
Ответы можно найти в мане, но как правило, для chkconfig он везде на английском. Вопросы к гуглу футболятся опять к чтению мана. А ведь достаточно привести простой пример, чтобы понять ее работу.
Пример наиболее частого использования:
Чтобы отключить работу сервиса netfs на уровнях выполнения 3, 4 и 5, необходимо выполнить следующую команду:
chkconfig --level 345 netfs offПосле перезагрузки системы установленное состояние сервиса сохраняется.
Чтобы узнать состояние всех сервисов, достаточно запустить chkconfig без параметров, конкретного сервиса - в виде
chkconfig --list netfsЕсли какой-то сервис установили во включенное состояние, не забудьте его запустить командой
service netfs startили общей перезагрузкой системы.
Подсчет времени выполнения команд
Чтобы подсчитать, сколько времени будет выполняться так или иная команда, нужно перед ней добавить префикс time
Например, в этом примере подсчитывается время копирования каталога с файлами:
time cp /lib /home/abdulaРезультат выводится в виде:
real 3m18.814s
user 0m19.170s
sys 0m6.905s
Подсчет контрольной суммы файлов
Иногда требуется подсчитать контрольную сумму файлов, лежащих в каталогах и подкаталогах.
Всего несколько команд, требуемых для выполнения этой задачи, демонстрируют мощь Linux, в частности, интерпретатора bash:
Для удобства помещаем эти команды в исполняемый скрипт, например, 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
145d3a00a64c8e1b3f2eb760f35850ce boot/grub/ufs2_stage1_5
8bc2d36dcf4ca401b16970caa146a6f2 boot/grub/e2fs_stage1_5
cb8f7abb71fc677873aaaf8ae0c5c4c6 boot/grub/device.map
413a504defbaa728a0fddacbf0f656f1 boot/grub/stage2
093622972811a10adae157724e37e062 boot/grub/xfs_stage1_5
0d12ccbbfada1d0a45693f349edd42a0 boot/grub/reiserfs_stage1_5
a716f899a795f71f64ef4554dc935461 boot/grub/iso9660_stage1_5
c5a0753899d331b662b984ee8e79f563 boot/vmlinuz-2.6.32-71.18.2.el6.x86_64
b98b21114cf4c4763189db2b9c51aaf5 boot/symvers-2.6.32-71.18.2.el6.x86_64.gz
9f219fceab9f99e8376f8445526b960c boot/efi/EFI/redhat/grub.efi
41a5454cc4ad65b34a3951aa72445c55 boot/vmlinuz-2.6.32-71.el6.x86_64
f9b634e36065fe92437ff9e1983b9af9 boot/.vmlinuz-2.6.32-71.el6.x86_64.hmac
b4a4366c065b8431d7824cb7581ea664 boot/initramfs-2.6.32-71.18.2.el6.x86_64.img
9969fe1ecf926e5f1a051b2aa278805d boot/initramfs-2.6.32-71.el6.x86_64.img
ee84d20f3ceb6c3b6fb3ec51f7a54e85 boot/System.map-2.6.32-71.el6.x86_64
e5de0af756b4ec1b82a289d00bbd1b8c boot/symvers-2.6.32-71.el6.x86_64.gz
5e5ab4ce5bc16d6e7a639344baf4b49b boot/config-2.6.32-71.18.2.el6.x86_64
dbe67f2833725262ae2b2a11c0760607 boot/.vmlinuz-2.6.32-71.18.2.el6.x86_64.hmac
395debd47cb5062c6bb181a86f649ab1 boot/System.map-2.6.32-71.18.2.el6.x86_64
7f88a9a0ac4d7b73e6916c93bb5f9746 boot/config-2.6.32-71.el6.x86_64
Часто необходимо отсортировать полученные результаты для удобства сравнения с другими результатами.
Сортировку по первому полю можно выполнить следующим образом:
sort input.md5 -o output.md5Но конечно, лучше сделать сортировку по второму полю (по пути). Кто возьмется? 
Исключение обновления некоторых пакетов в YUM
Чтобы отключить обновление некоторых пакетов, производимое с помощью YUM, необходимо в конфиге /etc/yum.conf дописать параметр exclude= и после него перечислить через запятую исключаемые пакеты,
Например:
exclude=isdn4k-utils,ql2200-firmware,irda-utils,bluez-utils,wvdial,php*,rp-pppoe
Аналоги консольной утилиты SCREEN
Утилита SCREEN отлично помогает при работе с программами, запускаемыми в фоне, почти как сервисы.
Кроме нее, есть еще и такие аналоги -
tmux
dialog
Контроль процессов
Чем мы пользуемся при контроле процессов? Разумеется, бессменной, как vi, утилитой top
Но не забываем, что кроме нее, есть и другие средства контроля, иногда превосходящее ее в каких-то случаях, иногда более удобные.
Среди них:
ps
htop
iotop
Например эта команда будет показывать процессы, активно работающие с диском:
iotop -o
Выбор по конкретной ситуации.
Борьба с "большесекторными" винчестерами
Со времени создания жесткие диски имели размер сектора байта 512 байт и (какой-то придурок из мелкософта
придумал) - 63 сектора на дорожку.
Наступила эпоха емких винчестеров с большими размерами сектора, например, 4096 байт.
Компания Western Digital начала выпуск таким дисков с модели WD10ERAS.
И жто идиотское число 63 стало камнем преткновения для использования в старых ОС - Windows XP и т.п., поскольку скорость таких дисков без обработки специальными утилитами-"выравнивателями" заметно падает.
Определить, сколько байт на сектор в конкретном жестком диске можно командой
hdparm -I /dev/sdaПри этом ядро должно уметь распознавать 4K-секторы, обычно всегда показываются не реальные, а пересчитанные логические значения - 512.
В Linux подготовка таких дисков осуществляется следующим образом:
mkfs.ext4 -b block-size 4096Более подробно решение проблемы описано в статье Linux WD EARS Advanced Hard Drive Format
(эта заметка не закончена)
Надёжное отключение SeLinux
Иногда, особенно если паранойя безопасности над нами не доминирует, возникает неугасимое желание отключить подсистему SeLinux, которая порой порождает всяческие конфликты в системе и усложняет ее настройку.
Способов отключить ее множество, в том числе и указание в параметрах загружаемого ядра.
Один из самых надежных и проверенных - редактирование конфига /etc/selinux/conf
Обычно после установки продуктов RH в нем есть такая строка:
Её нужно заменить на
Переключение раскладки в LXDE
LXDE - отличная графическая оконная среда: легкая, быстрая, ничего лишнего. Однако в настройках текущей версии не предусмотрено цивилизованное переключение раскладки клавиатуры, пока это делается через редактирование пользовательского конфиг-файла .bashrc.
Пример, в котором английский, русский и украинский переключаются виндовс-клавишей "Menu", а индикация состояния дополнительно индицируется индикатором "Scroll Lock"
Если же поместить эту строку в конфиг ~/.xinitrc , то действие раскладки должно быть глобальным
(пока не проверялось).
NetHogs: аналог утилиты Top для сети
Утилита NetHogs является сетевым аналогом известной утилиты top только она анализирует не процессы, а сетевой трафик работающих программ и сетевых интерфейсов.
Запускается nethogs под рутом без параметров. Единицы отображаемых параметров можно менять клавишей "m".
IOTop: анализ дисковой активности
Утилита iotop является аналогом известной утилиты top только она анализирует не процессы, а дисковую активность, отображая используемый диск процессы.
Запуск iotop показывает все процессы, использующие диск.
Запуск iotop с ключом -o показывает наиболее активные из них.
ISPManager: когда исчезают "Возможности"
Есть такая панель управления веб-хостингом - ISPManager.
Частенько при ее использовании исчезают неизвестно куда "Возможности" из меню "Настройки сервера" (например, после перезагрузки хоста).
Чтобы их восстановить, нужно выполнить под рутом 3 команды:
VNC: работоспособный конфиг
Следует отметить, что за историю создания технологии удаленного доступа режиме в Линуксе программ, реализующий доступ в графическом режиме, развелось меряно-немеряно. Одни появлялись и умирали, другие раздваивались и конкурировали друг с другом. Ко всему прочему, названия программ то ли случайно, то ли специально выбирались похожими. что ещё больше усугубляло путаницу, например, TightVNC и TigerVNC
Мы будем рассматривать TigerVNC, который является продолжением TightVNC и входит в большинство современных дистрибутивов Linux.
Для работы VNC-сервера на нём должна быть установлена система X.
Для современных продуктов RedHat это xorg-x11-server-Xorg с соответствующими зависимостями.
Пример системного конфига /etc/sysconfig/vncservers для доступа к нему одного пользователя:
Пример пользовательского конфига VNC /home/abdula/.vnc/xstartup с запуском среды LXDE:
Если среда IceWM, то вместо startlxde & следует использовать icewm-session &.
Для XFCE v.4 последняя строка такая: startxfce4 &
Отличное HowTo по настройке VNC-сервера в CentOS: VNC ( Virtual Network Computing )
Wall: команда оповещения "Ховайся кто может!"
Очень полезная команда, когда необходимо предупредить пользователей, зашедших на сервер, что он, например, будет перезагружаться:
wall Who can hide - the server will reboot!Результат работы команды wall:
Выдаваться она может любым пользователем.
PS. Кириллицу, к сожалению, эта команда не выводит.
Директивы сокрытия сигнатуры сервера и Апача
Чтобы скрыть от браузеров пользователей наименование ОС и веб-сервера Apache, нужно в конфиг-файл
Апача /etc/httpd/conf/httpd.conf поместить две директивы:
Сборка пакета с помощью утилиты rpmbuild
Утилита rpmbuild устанавливается вместе с пакетом rpmrebuild.
Для ее работы понадобятся установить программы make и automake.
Сборку пакетов желательно проводить не под рутом, а под любым другим пользователем, например, build.
При работе утилиты rpmbuild в домашнем каталоге образуется папка /rpmbuild с деревом:
Базовый синтаксис использования утилиты rpmbuild:
rpmbuild -bСтадия_сборки имя_пакета.spec
Опция -b указывает на режим сборки.
Второй ключ после -b говорит, до какой стадии осуществлять процесс.
Возможные стадии процесса рассмотрены ниже.
rpmbuild -ba имя_пакета.spec #Собрать бинарный пакет и пакет с исходным кодом
rpmbuild -bb имя_пакета.spec #Собрать бинарный пакет
rpmbuild -bc имя_пакета.spec #Скомпилировать программу, но не собирать rpm-пакет, то есть выполнить до секции %build включительно
rpmbuild -bp имя_пакета.spec #Выполнить подготовку и остановиться сразу после завершения стадии %prep
rpmbuild -bi имя_пакета.spec #Выполнить сборку бинарного пакета и остановиться сразу после завершения стадии %install
rpmbuild -bl имя_пакета.spec #Выполнить проверку списка файлов для пакета и вывести резюме ошибок, если корневой каталог сборки не содержит каких-то файлов из списка
rpmbuild -bs имя_пакета.spec #Собрать только пакет с исходным кодом
Для одновременной сборки нескольких пакетов их нужно перечислить в строке запуска сборки, а если они собраны в одном каталоге, достаточно в качестве аргумента указать * (звёздочку).
Для указания некоторых характеристик сборки нужно создать файл конфигурации сборки:
Собранные пакеты собираются в каталоге /RPMS
Связь видеорежима, разрешения и объема памяти:
video=vesafb:mode=1024x768-32 vga=790
В следующей формулировке, режим=<разрешение>-<глубина цвета> vga=<разрешение буфера кадров> используется, где разрешение буфера кадров можно найти по следующей схеме:
+---------------------------------------------------------------------+
| | 640x480 | 800x600 | 1024x768 | 1280x1024 |
+---------------------------------------------------------------------+
256 | 0x301=769 0x303=771 0x305=773 0x307=775
32K | 0x310=784 0x313=787 0x316=790 0x319=793
64K | 0x311=785 0x314=788 0x317=791 0x31A=794
Очистка неиспользуемых пакетов в Федоре
Всегда интересовал вопрос избавления неиспользуемых в системе пакетов. И если в Мандриве это предусмотрено штатно утилитой urpmi с соответствующим ключом, то для Федоры это было загадкой.
И вот недавно наткнулся на такую команду:
package-cleanup --orphansПо идее она должна была показать неиспользуемые в системе пакеты.
Но когда запустил ее, она выдала такой огромный список, что пол-системы надо будет отправить в корзину.
Странно, какими же критериями она руководствуется?...
Быстрый скан локальной сети
Чтобы быстро просканировать сеть класса "C", достаточно запустить утилиту nmap в следующем формате:
nmap 192.168.1.0/24После нескольких секунд работы она выдаст примерно следующее:
Быстрая настройка VSFTP
Не знаю, с какого такого перепугу создатели сервера VSFTP в каждой версии в своем дефолтовом конфиге vsftpd.conf всякий раз упорно запрещают то, для чего он, собственно, и создан - доступ к нему до FTP.
Чтобы исправить ситуацию, достаточно раскомментировать строку #chroot_local_user=YES
Если еще нужно запретить доступ анонимным пользователям, необходимо в строке anonymous_enable=YES
поменять аргумент на NO
Бекап и восстановление баз MYSQL
Данное описание пригодно для случая, когда описанные операции произодятся на одном и том же сервере.
При переносе баз на другой сервер процедура усложняется дополнительными действиями по заданию прав доступа к файлам, паролей доступа и т.п.
Команды, используемые для переноса баз MySQL:
Бекап базы в архив:
- выбранной базы:
$ mysqldump --opt -uлогин -pпароль -h localhost имя_базы | gzip -c > имя_архива.gz
- все базы:
$ mysqldump --opt -uлогин -pпароль -h localhost --all-databases | gzip -c > имя_архива.gz
$ mysqldump --opt -uusername -ppassword -h localhost --add-drop-table dbname > dump.sql
Рекомендуется ставить опцию --opt, особенно на работающих сайтах.
Cо сжатием (gzip) и показом хода выполнения:
$ mysqldump --opt -uusername -ppassword -h localhost --add-drop-table dbname | pv | gzip -cq9 > dbname.sql.gz
Импорт в базу:
$ mysql -uusername -ppassword -Ddbname < dump.sql
С показом хода выполнения:
* Для показа хода выполнения процесса нужно установить в систему утилиту pv.
Для бекапа/импорта базы можно также использовать удобную PHP-утилиту Sypex Dumper.
Ограничение доступа к каталогам веб-сайтов по паролю с помощью .httaccess
1. Создать каталог для хеша пароля.
Обычно используется /var/www/etc/
2. Перейти в этот каталог.
3. Задать новый пароль для пользователя:
htpasswd -c .htpasswd user
или переопределить имеющийся пароль:
htpasswd .htpasswd user
Пример:
htpasswd -c .htpasswd alexandr
Эта команда сгенерирует хеш введенного вами пароля в текущей папке в виде файла примерно такого содержания:
alexandr:Fy5mBtYD5unRdK
4. Создать в веб-каталоге, который нужно закрыть от постороннего доступа, файл .htaccess следующего содержания:
При входе браузером по адресу данного каталога возникнет приглашение ввести логин и пароль к нему.
Поместив файл .htaccess в корень сайта, можно ограничить доступ к целому сайту.
В yum provides можно не ставить кавычки вокруг выражения - и так работает. Жаль, что для urpmi нет аналога
Кавычки для Юма лучше ставить всегда. Иначе, когда в выражении вам попадется пробел, вы поймете, для чего они нужны