1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/plutoacharon-LiunxNotes

Клонировать/Скачать
README.md 25 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 03.06.2025 09:43 60f8e94

Основные навыки运维 для Linux

1. Навыки работы с сетью

  1. Модель OSI 7 уровней (TCP 4 уровня)

  2. HTTP

  3. TCP/IP

  4. BIO/NIO/AIO

    • Принципы работы трёх методов, реализация на различных языках
    • Netty
    • Выборка Linux-ядра select, poll, epoll

2. Навыки управления Linux-системой

5. Управление базами данных

  1. Индексы (включая типы, методы оптимизации, условия истощения, структуру на уровне базы данных) Mysql индексы

  2. Синтаксис SQL (join, union, подзапросы, having, group by)

  3. SQL запросы

  4. Сравнение движков (InnoDB, MyISAM)

  5. Закрытие баз данных (строковый блок, таблицный блок, страницный блок, намеренный блок, чтение блок, запись блок, пессимистичный блок, оптимистичный блок, а также методы добавления блока с помощью select sql)

  6. Уровни изоляции, последовательно решаемые проблемы (грязное чтение, не повторяемое чтение, фантомное чтение)

  7. Свойства транзакций ACID

  8. Деревья B и B+

  9. Оптимизация (explain, медленные запросы, show profile)

  10. Нормальные формы баз данных

  11. Разделение баз данных (Mysql репликация, чтение и запись) Mysql репликация, чтение и запись

  12. NoSQL (различия между Redis и Memcached, если вы знакомы с Redis, то есть еще множество вопросов) Redis## 5. Алгоритмы и структуры данных

  13. ​ Массивы, связные списки, двоичные деревья, очереди, стеки и их различные операции (производительность, сценарии)

  14. ​ Двоичный поиск и различные его модификации

  15. ​ Различные алгоритмы сортировки и анализ их сложности (быстрая сортировка, сортировка слиянием, сортировка кучей)

  16. ​ Решение задач на написание различных алгоритмов

  17. ​ Понимание и анализ временной и пространственной сложности

  18. ​ Динамическое программирование, жадные алгоритмы

  19. ​ Красно-черные деревья, деревья AVL, деревья хэш-таблиц, деревья tries, деревья B, деревья B+

  20. ​ Алгоритмы работы с графами (немного, два алгоритма поиска кратчайшего пути)

6. Операционные системы1. Коммуникация процессов IPC (несколько способов), отличие от потоков

  1. Несколько стратегий ОС (перемещение страниц, планирование процессов и т.д., в каждом из которых несколько алгоритмов)
  2. Мьютексы и связанные с ними проблемы смертельных замков
  3. Обычные команды Linux (при вопросе всегда указывается конкретная сценарий)
  4. Связанные с ядром Linux (select, poll, epoll)
  5. Процессы и потоки
  6. Отличие корутин от потоков
  7. Зомби-процессы и сироты

7. Автоматизация

  1. PXE

8. Программные языки

  1. Язык Python
  2. Язык Golang

  3. Язык Shell

9. Docker

10. Kubernetes

11. Проекты

ElasticSearch: разделение мозга

ElasticSearch


Linux-операции и управление - классические вопросы на собеседование

Классические вопросы на собеседование по сетям

Классические вопросы на собеседование по Linux### 1. Вопросы по сетям:

  1. Объясните структуру и функции семи уровней модели ISO/OSI.
  2. Объясните структуру и функции четырех уровней модели TCP/IP.
  3. На каком уровне работают протоколы TCP и UDP, и какова их функция?
  4. Объясните процесс трехстороннего рукопожатия TCP.
  5. Объясните содержимое заголовка TCP.
  6. Объясните процесс четырехстороннего разрыва TCP.
  7. 172.22.141.231/26, на каком сегменте находится этот IP? Сколько доступных IP-адресов в этом сегменте? Каков адрес широковещательной рассылки?
  8. Объясните классификацию IP-адресов.
  9. Объясните функцию приватных IP-адресов.

2. Вопросы по управлению Linux:

  1. Объясните принципы разграничения прав в Linux.

  2. Если пользователь user1 имеет права записи и выполнения на директорию /testdir, могут ли файлы в этой директории, имеющие только права чтения, быть изменены или удалены?

  3. Если у системы отсутствует стратегия резервного копирования, напишите полный и рациональный план резервного копирования.

  4. Веб-серверы генерируют большое количество логов каждый день. Как вы будете делать резервное копирование?

  5. Опишите особенности и принцип работы RAID 0, RAID 1 и RAID 5.

  6. Опишите особенности и принцип работы RAID 6 и RAID 10.

  7. В чем разница между программным RAID и аппаратным RAID?

  8. В Linux есть множество системных ресурсов, которые требуют мониторинга. Какие команды можно использовать для просмотра этих ресурсов?9. Опишите процесс запуска CentOS 6.x.

  9. Опишите процесс запуска CentOS 7.x.

  10. Как можно оптимизировать систему Linux?

Третий раздел: вопросы по программированию на языке Shell:

  1. У вас есть текстовый файл b.txt (содержимое приведено ниже). Требуется извлечь все домены и подсчитать количество повторений каждого домена:
http://www.baidu.com/index.html 
https://www.4399.com/index.html
http://www.sina.com.cn/1024.html
https://www.4399.com/2048.html
http://www.sina.com.cn/4096.html
https://www.4399.com/8192.html

Ответ:

cat b.txt | cut -d "/" -f 3 | sort | uniq -c | sort -nr 

cut -d "/" -f 3: разделяет строку по символу "/" и извлекает третий элемент

uniq -c: выводит количество повторений каждого элемента

sort -nr: сортирует по числовому значению в порядке убывания

  1. Подсчитайте текущие IP-адреса, которые подключены к серверу, и отсортируйте их по количеству подключений.

  2. Используя цикл, создайте 10 текстовых файлов в директории /test. Имена файлов должны состоять из 6 случайных строчных букв и фиксированной строки (_gg), например: pzjebg_gg.txt.

#!/bin/bash 
if [ ! -d /test ] # проверяем, существует ли директория
then 
	mkdir /test
fi 
cd /test # переходим в директорию
for (( i=1;i<=10;i++ )) # цикл 10 раз, каждый раз создаем файл с 6 случайными буквами
do 
	filename=$(tr -dc 'a-z' < /dev/urandom | head -c 6)
	touch "$filename"_gg.txt 
done
  1. Генерация случайного числа.

  2. Проверка множества веб-сайтов на доступность с использованием массива shell. Тестирование должно быть максимально близко к реальному пользовательскому поведению.``` http://www.4399.com http://www.gulixueyuan.com http://www.baidu.com


```shell
#!/bin/bash
web=(
http://www.4399.com
http://www.gulixueyuan.com 
http://www.baidu.com
1.1.1.1
) # определяем массив
``````markdown
for i in ${web[*]} # Провести цикл в зависимости от количества элементов в массиве, при каждом проходе присваивая значение элемента массива переменной i
do         
	code=$( curl -o /dev/null -s --connect-timeout 5 -w '%{http_code}'  $i | grep -E "200|302" ) # Проверить код состояния curl
    if [ "$code" != "" ] # Если значение переменной $code не пустое, это означает, что веб-страница доступна для просмотра        
    then                 
    	echo "$i is ok" >> /root/ok.log        
    else # Если значение переменной $code пустое, это означает, что веб-страница недоступна, поэтому необходимо сделать паузу в 10 секунд и повторить проверку                
    	sleep 10                 
    	code=$( curl -o /dev/null -s --connect-timeout 5 -w '%{http_code}' $i | grep -E "200|302" )
    	if [ "$code" != "" ]                
    	then                         
    		echo "$i is ok" >> /root/ok.log                
    	else                        
    		echo "$i is error" >> /root/error.log                
    	fi        
    fi
done

1. Какие настройки могут повысить уровень безопасности удаленного управления SSH?> 1. Изменить режим аутентификации на использование ключей.
> 2. Изменить порт подключения на порт, отличный от 22, и указать IP-адрес для прослушивания.
> 3. Запретить удаленный вход для пользователя root.
> 4. Настроить автоматическое отключение соединения при отсутствии действий.
> 5. Ограничить количество попыток входа после неудачной попытки входа до 6 раз.
> 6. Настроить правила брандмауэра, используя белый список для разрешения порта прослушивания SSH.2. Как решить проблему с длительной проверкой аутентификации при подключении SSH?

Проблема длительного времени ответа DNS при обратном разрешении IP-адреса.

```bash
Конфигурационный файл: /etc/ssh/sshd_config

#UseDns yes     Изменить на no   #Отключить обратное разрешение DNS при входе SSH

Внимание: Комментарии в конфигурационном файле /etc/ssh/sshd_config не отключают функции, а наоборот, включают их по умолчанию. Чтобы отключить функцию, необходимо удалить комментарий и изменить значение на no.
  1. Какие различия между scp и rsync при копировании файлов удаленно?
scp Полная копия Файловый уровень Шифрованная передача Низкое потребление ресурсов
rsync Разностная копия, дельта-копия Блоковое сравнение, частичная передача Нешифрованная передача Высокое потребление ресурсов (при большом количестве фрагментированных файлов)
  1. Опишите процесс получения IP-адреса через DHCP-сервер.

  2. Просто опишите различия между активным и пассивным режимами FTP.

  3. Как обеспечить небольшую разницу во времени между всеми серверами в кластере.

Ручное тестирование синхронизации: ntpdate IP-адрес временного сервера
Автоматическая синхронизация: можно добавить команду в планировщик задач
```7. Опишите процесс разрешения DNS при доступе пользователя к веб-сайту.

8. Объясните, что такое авторитетный DNS и рекурсивный DNS, и опишите принцип работы умного DNS.

Авторитетный DNS — это DNS-сервер, который имеет право разрешать домены своего уровня и может передавать это право другим серверам. Рекурсивный DNS принимает запросы пользователей на любые домены и возвращает результаты, он может кэшировать результаты для уменьшения количества запросов.

Умный DNS анализирует запросы пользователей и определяет, к какому оператору они подключены, а затем перенаправляет запрос к соответствующему IP-адресу оператора, что уменьшает время доступа через операторов и повышает скорость доступа.


9. В компании есть сервер, на котором нужно запустить два сайта, и один из сайтов требует смену доменного имени. Как это сделать?

Сайт 1: www.a.com

Сайт 2: www.b.com (старый) www.d.com (новый)


10. Кратко опишите три режима работы Apache.

11. Напишите несколько общих оптимизационных стратегий для Apache.```txt
Установите правила циклического архивирования и разделения логов Apache, чтобы предотвратить их переполнение.
Улучшите внешний вид страниц с ошибками, перенаправляя их на главную страницу или на определенную страницу.
Скройте информацию о версии Apache и других данных, чтобы предотвратить получение информации о версии Apache.
Настройте кэширование статических файлов, чтобы уменьшить нагрузку на сервер.
Запретите интерпретацию страниц в определенных директориях, например, в директории upload, запретите интерпретацию пользовательских загруженных скриптов.

Текст уже был на русском языке и не требовал перевода. Оригинальное форматирование сохранено.12. Какие технологии могут улучшить безопасность и производительность сайта?

  1. Какие преимущества и недостатки у Apache и Nginx, и как их следует выбирать?

  2. Почему у Nginx высокая способность к параллельной обработке запросов и низкое потребление ресурсов?

  3. Напишите несколько часто используемых модулей Nginx и опишите их функции.

  4. Опишите, как Nginx подключается к PHP для обработки страниц.

  5. Опишите процесс передачи данных между Nginx и Tomcat.

  6. Напишите несколько общих HTTP-кодов состояния и объясните причины их появления.

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

  1. В базе данных student.report есть три столбца: имя, предмет, результат. Записи представлены следующим образом. Составьте SQL-запросы по указанным требованиям:
Имя Предмет Результат
Ли Бо Математика 95
Ду Фу Английский 83
Ли Шаньсинь Математика 79
Бай Юй Математика 98
Ли Цзиньчжоу Английский 85
Ван Вэй Математика 74

1.1 Найдите количество студентов с фамилией Ли.

select count(*) from student.report where Name like '李%'

1.2 Найдите имена двух студентов с самыми высокими результатами, превышающими 80, отсортировав их по убыванию результатов.

select Name from report ORDER BY Result DESC limit 2
```2. В MySQL-кластере с одним главным сервером и несколькими репликами, главный сервер вышел из строя. Как правильно переключиться на репликацию и как следует действовать с остальными репликами?3. Когда одна машина MySQL достигает предела производительности, как можно устранить этот барьер?

4. Когда следует создавать индексы в MySQL?

5. В результате ошибочного использования команды DROP данные в базе данных были уничтожены. Методы и шаги для восстановления данных:

Ручным способом разрезать binlog журнал и запомнить местоположение разрезанного binlog журнала, предположим, это 009, сделать резервную копию всех binlog журналов.
Найти местоположение последнего полного резервного копирования binlog файла и запомнить его, предположим, это 005.
Используя команду mysqladmin, извлечь SQL-запросы из binlog файлов с 005 по 008 и найти команду DROP DATABASE, удалив её.
Импортировать ранее сделанное полное резервное копирование в MySQL сервер.
Импортировать SQL-запросы, извлечённые на шаге 3, в MySQL сервер.
Удалить binlog файл 009, снова обновить binlog журнал, база данных восстановлена успешно.

6. Как гарантировать постоянное хранение данных в Redis?

7. Как использовать Redis для улучшения производительности MySQL?

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/plutoacharon-LiunxNotes.git
git@api.gitlife.ru:oschina-mirror/plutoacharon-LiunxNotes.git
oschina-mirror
plutoacharon-LiunxNotes
plutoacharon-LiunxNotes
master