25 вопросов задаваемых на собеседовании системным администраторам Linux.
Вопрос:1 Что такое Kdump и для чего предназначен?
Ответ:
Kdump это механизм сохранения дампов при крахе системы или панике ядра. Дампы могут быть сохранены как на удаленной машине, так и на локальном диске. Анализируя дампы мы можем найти корневую причину отказа системы или паники ядра. В случае, если у вас есть платная поддержка ОС, вы можете отправить файл vmcore поставщику для дальнейшего анализа.
Вопрос:2 Как узнать когда файловая система проверялась последний раз?
Ответ:
При помощи команды tune2fs мы можем проверить, когда файловая система последний раз сканировалась на предмет ошибок.
# tune2fs -l <Device_Name> | grep «Last checked»
Вопрос:3 Как изменить срок действия пароля пользователя без изменения самого пароля?
Ответ:
Команда chage позволяет задать дату (срок) действия пароля для локальной учетной записи пользователя. Синтаксис команды такой:
# chage -d <date-in-yy-mm-dd> <User_Name>
Вопрос:4 Как заставить fsck проверить файловую систему ОС при следующей перезагрузке?
Ответ:
Для принудительного запуска утилиты fsck для проверки конкретной файловой системы при следующей перезагрузке, нужно создать пустой файл с именем ‘forcefsck’ в корне этой файловой системы. Например, если мы хотим проверить файловую системы смонтированную в каталог /home, команду будет выглядеть примерно так:
# cd /home; touch forcefsck; reboot
Вопрос:5 Каким инструментом анализируются дампы краха системы или файл vmcore в ОС CentOS 7 & RHEL 7?
Ответ:
Утилита или команда crash операционных систем CentOS 7 и RHEL 7 позволяет проводить анализ файлов дампов.
Вопрос:6 Как установить все патчи за исключением патчей ядра в CentOS и RHEL?
Ответ:
Параметр ‘–exclude=kernel*’ команды yum позволяет установить все патчи кроме предназначенных для ядра. Например так:
# yum update –exclude=kernel*
Если добавить следующую строку в файл ‘/etc/yum.conf’ мы предотвратим любые обновления ядра навсегда:
exclude=kernel*
Вопрос:7 Как проверить, что вы работаете на физическом или виртуальном сервере?
Ответ:
С помощью команды dmidecode мы можем проверить платформу сервера. Например так:
# dmidecode -t system | grep «Product Name»
Product Name: VMware Virtual Platform
Вопрос:8 Что такое automounter и для чего он служит?
Ответ:
Automounter это сервис в операционной системе Linux которые используется для монтирования удаленной или локальной файловой системы автоматически в момент обращения к ней. Когда файловая система неактивна в течение определенного периода времени сервис automounter (autofs) автоматически размонтирует ее. Основная польза от autofs заключается в том, что мы не должны монтировать файловую систему каждый раз когда она нам нужна, automounter сделает это за нас при обращении к этой файловой системе.
Вопрос:9 Как принудить пользователя изменить пароль при регистрации?
Ответ:
Команда ‘chage’ позволяет задать время окончания действия пользовательского пароля, например «chage -d 0 <user_name>». После этого, при попытке регистрации пользователя в системе (в том числе и по ssh), он будет получать предупреждение «Срок действия вашего пароля истек. Вы должны изменить ваш пароль и войти заново».
Вопрос:10 Как узнать как завершилась последняя команда — успешно или нет?
Ответ:
Можно получить статус завершения последней команды из переменной среды ‘$?’, в ней хранится код завершения. Например:
# ls -l /var/
# echo $?
0
# ls -l /var/wwer
# echo $?
2
Код завершения 0 означает что команды выполнена успешно, любой отличное от нуля число свидетельствует об ошибке.
Вопрос:11 Как узнать, установлен ли конкретный rpm-пакет?
Ответ:
Возьмем например postfix. Следующее использование команды rpm покажет нам, установлен ли postfix или нет:
[root@cloud ~]# rpm -q postfix –last
postfix-2.10.1-6.el7.x86_64 Saturday 27 February 2016 11:56:43 PM EST
[root@cloud ~]#
Для этих же целей мы можем воспользоваться командой yum:
[root@cloud ~]# yum history package postfix
Вопрос:12 Как войти в режим одиночного пользователя (single user mode) в RHEL 7?
Ответ:
При загрузке системы нужно войти в меню загрузчика GRUB2, нажать ‘e’, найти строку начинающуюся с ‘linux16/vmlinz’ и заменить параметр ‘ro’ на ‘rw init=/sysroot/bin/bash’. Нажать ctrl-x для продолжения загрузки.
Вопрос:13 Какая команда позволяет изменить имя хоста навсегда в CentOS 7 & RHEL 7?
Ответ:
Команда ‘hostnamectl’ используется для задания или изменения имени хоста. Например, так:
# hostnamectl set-hostname «New_HostName»
Кроме hostnamectl могут быть использованы команда ‘nmtui’& ‘nmcli’, которые тоже могут изменять имя хоста в CentOS 7 и RHEL 7.
Вопрос:14 Как включить политики паролей (password policies) в Linux?
Ответ:
Политики паролей (password policies) включаются через pam (подсистему загружаемых модулей аутентификации). В Centos и RHEL у нас есть файл «/etc/pam.d/system-auth», в котором мы определяем требования к паролям. В ОС, основанных на Debian, для этих же целей служит файл «/etc/pam.d/common-password».
Вопрос:15 Как узнать, какие модуля ядра загружены в ОС Linux?
Ответ:
Команда ‘lsmod’ выдает список загруженных модулей ядра.
Вопрос:16 Какой командой можно проверить состояние ввода-вывода в Linux?
Ответ:
Есть несколько команд, таких как ‘sar’, ‘iostat’ и ‘vmstat’ с использованием которых мы можем проверить состояние ввода-вывода в Linux.
Вопрос:17 Каково назначение файлов ‘/etc/lvm/backup’ и ‘/etc/lvm/archive’?
Ответ:
Каждый раз, когда мы создаём или изменяем любой lvm раздел, резервная копия метаданных сохраняется в файле ‘/etc/lvm/backup’, а архив метаданных ведется в файле ‘/etc/lvm/archive’ file. Используя команду vgcfgrestore мы можем восстановить метаданные группы томов lvm.
Вопрос:18 Как просмотреть таблицу маршрутизации в Linux?
Ответ:
Используя команды ‘route -n’ и ‘netstat -nr’ мы можем просмотреть таблицу маршрутизации в Linux.
Вопрос:19 Что происходит на фоне когда вы заходите по ssh на сервер Linux?
Ответ:
Каждый раз, когда мы заходим по ssh на любой Unix сервер, устанавливает TCP соединение между Клиентом и Сервером по порту 22 (по-умолчанию, если не указано другое) и Сервер выдает список версию протокола SSH которую он поддерживает. Если клиента она «устраивает», то соединение продолжается и после того как Сервер передаст свой публичный ключ и Клиент сохранит его в файле ‘~/.ssh/known_hosts’ мы получим подсказку ssh.
Вопрос:20 Как изменить порт по-умолчанию для SSH на сервере Linux?
Ответ:
Значение порта по-умолчанию (22) для SSH может быть изменено в параметре «Port \<NNN\>» в файле ‘/etc/ssh/sshd_config’. Где NNN — это номер порта. После внесения изменений в этом файл, сервис SSH следует перезапустить.
Вопрос:21 Как увидеть временные метки dmesg в RHEL7?
Ответ:
Добавим параметр ‘-T’ к команде dmesg можно увидеть временные метки dmesg.
Вопрос:22 Как узнать модель физического сервера из командной строки?
Ответ:
С помощью команды dmidecode можно узнать производителя и модель физического сервера. Например:
# dmidecode -t system
…
Handle 0x0011, DMI type 1, 27 bytes
System Information
Manufacturer: HP
Product Name: ProLiant DL580 Gen8
Version: P79
Serial Number: CKX42926E0
UUID: 97387735-1541-238A-1B33-533850564430
Wake-up Type: Power Switch
SKU Number: 728551-B21
Family: ProLiant
…
Вопрос:23 Как узнать версию BIOS сервера из командной строки?
Ответ:
С помощью команды dmidecode можно получить версию bios:
# dmidecode -t bios
# dmidecode 2.12
SMBIOS 2.8 present.
Handle 0x0010, DMI type 0, 24 bytes
BIOS Information
Vendor: HP
Version: P79
Release Date: 04/01/2014
Address: 0xF0000
Runtime Size: 64 kB
ROM Size: 16384 kB
…
Вопрос:24 Как расширить существующую группу томов lvm?
Ответ:
Сначала нужно создать pv (физический том) на пустом новом диске (например /dev/sdb) командой «pvcreate /dev/sdb» и затем, командой vgextend расширить группу: «vgextend <vloume_group_name> /dev/sdb».
Вопрос:25 Как посмотреть номер WWN на карте HBA на сервере Linux?
Ответ:
Существует как минимум, два способа с помощью которых можно узнать номер WWN для карты HBA.
Первый, с использованием команды systool. Например так:
# systool -c fc_host -v | grep «port_name»
Второй способ — просмотреть содержимое файла классов в файловой системе sys:
# cat /sys/class/fc_host/host*/port_name
0x7001639028cbeca0
0x7001639028cbefa2
0x7001639028cbf5d8
0x7001639028cbf6da