Опубликовано

Вышло второе издание книги “Командная строка Linux”

Командная строка Linux, 2 изд. (серия "Профессиональное программирование")

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

Во втором издании особое внимание уделено задачам системного администратора – разметке диска, восстановлению загрузчика, в том числе при использовании жестких дисков на основе GPT/UEFI, установке пакетов, мониторингу системы и автоматизации на языках оболочек bash.
Для системных администраторов, программистов и квалифицированных пользователей Linux

Для системных администраторов, программистов и квалифицированных пользователей Linux

Эффективная работа в командной строке Linux

Настоящий линуксоид должен уметь работать в консоли, что требует определенной квалификации пользователя. Рассмотрены задачи, которые выполняются из командной строки Linux. Объясняется, как попасть в командную строку, работать в консоли, настраивать систему с помощью программ, обладающих только текстовым интерфейсом. Описаны особенности файловой системы Linux, наиболее полезные команды для работы с текстом, сетью и  Интернетом, а также команды системного администратора. Особое внимание уделено написанию сценариев автоматизации рутинных задач на языках командных оболочек bash и tcsh. Рассмотрены способы  перенаправления ввода-вывода, маски и псевдонимы, различные варианты запуска программ, эффективные приемы использования клавиатуры, примеры сложных команд и другие вопросы.

  • Работа в консоли
  • Автоматизация на языках оболочек bash и tcsh
  • Особенности файловой системы Linux
  • Управление процессами
  • Команды системного администратора
  • Команды для обработки текста и для работы в сети

Книгу “Командная строка Linux, 2 изд.“.

Глава 1. Командная строка: основы основ………………………………………………. 9

1.1. Переключаемся из графического режима в консоль………………………………………………………….. 9

1.2. Графические (псевдо)-терминалы……………………………………………………………………………………… 12

1.3. Удаленная консоль……………………………………………………………………………………………………………… 14

1.4. Завершение работы из консоли. Команды poweroff, halt, reboot, shutdown………………….. 15

Глава 2. Работаем в консоли………………………………………………………………….. 17

2.1. Ввод команд. Команда man……………………………………………………………………………………………….. 17

2.2. Ввод/вывод и каналы………………………………………………………………………………………………………….. 18

2.3. Шесть полезных команд…………………………………………………………………………………………………….. 20

2.3.1. Команда wc……………………………………………………………………………………………………………………. 20

2.3.2. Команда head………………………………………………………………………………………………………………… 21

2.3.3. Команда cut…………………………………………………………………………………………………………………… 21

2.3.4. Команда grep…………………………………………………………………………………………………………………. 22

2.3.5. Команда sort………………………………………………………………………………………………………………….. 23

2.3.6. Команда uniq…………………………………………………………………………………………………………………. 24

Глава 3. Оболочка bash………………………………………………………………………….. 26

3.1. Маски имен файлов…………………………………………………………………………………………………………….. 26

3.2. Переменные окружения………………………………………………………………………………………………………. 27

3.3. Псевдонимы…………………………………………………………………………………………………………………………. 28

3.4. Изменение приглашения командной строки…………………………………………………………………….. 28

3.5. Еще раз о перенаправлении ввода/вывода………………………………………………………………………. 30

3.6. Пробелы в именах файлов………………………………………………………………………………………………….. 31

3.7. Инициализация переменных………………………………………………………………………………………………. 32

3.8. Просмотр истории команд…………………………………………………………………………………………………. 32

3.9. Вызов предыдущих команд……………………………………………………………………………………………….. 33

3.10. Защита от случайного удаления файла…………………………………………………………………………. 34

3.11. Использование последнего вывода команды…………………………………………………………………. 34

3.12. Редактирование командной строки…………………………………………………………………………………. 34

Глава 4. Файловая система. Команды для работы с файловой системой… 36

4.1. Особенности файловой системы Linux……………………………………………………………………………… 36

4.1.1. Имена файлов в Linux…………………………………………………………………………………………………… 36

4.1.2. Файлы и устройства……………………………………………………………………………………………………… 36

4.1.3. Корневая файловая система и монтирование…………………………………………………………….. 37

4.1.4. Стандартные каталоги Linux………………………………………………………………………………………. 38

4.2. Команды для работы с файлами и каталогами……………………………………………………………….. 39

4.2.1. Работа с файлами………………………………………………………………………………………………………….. 39

4.2.2. Работа с каталогами…………………………………………………………………………………………………….. 42

4.2.3. Удобная навигация по файловой системе…………………………………………………………………… 44

4.3. Команда ln: создание ссылок…………………………………………………………………………………………….. 47

4.4. Команды chmod, chown и chattr…………………………………………………………………………………………. 48

4.4.1. Команда chmod: права доступа к файлам и каталогам…………………………………………….. 48

4.4.2. Команда chown: смена владельца файла…………………………………………………………………… 50

4.4.3. Специальные права доступа: SUID и SGID………………………………………………………………… 50

4.4.4. Команда chattr: атрибуты файла, запрет изменения файла……………………………………… 51

4.5. Монтирование файловых систем………………………………………………………………………………………. 52

4.5.1. Команды mount и umount……………………………………………………………………………………………… 52

4.5.2. Файлы устройств и монтирование………………………………………………………………………………. 54

Жесткие диски………………………………………………………………………………………………………………….. 54

Приводы оптических дисков…………………………………………………………………………………………… 56

Флешки и внешние жесткие диски………………………………………………………………………………….. 56

4.5.3. Опции монтирования файловых систем……………………………………………………………………… 56

4.5.4. Монтирование разделов при загрузке………………………………………………………………………… 58

4.5.5. Подробно о UUID и файле /etc/fstab……………………………………………………………………………. 60

4.5.6. Монтирование флешек…………………………………………………………………………………………………. 62

4.6. Настройка журнала файловой системы ext3/ext4…………………………………………………………… 63

4.7. Файловая система ext4……………………………………………………………………………………………………….. 64

4.7.1. Сравнение ext3 и ext4…………………………………………………………………………………………………… 64

4.7.2. Совместимость с ext3……………………………………………………………………………………………………. 65

4.8. Особые команды…………………………………………………………………………………………………………………. 66

4.8.1. Команда mkfs: создание файловой системы……………………………………………………………….. 66

4.8.2. Команда fsck: проверка и восстановление файловой системы…………………………………. 66

4.8.3. Команда chroot: смена корневой файловой системы………………………………………………… 67

4.8.4. Установка скорости CD/DVD………………………………………………………………………………………. 67

4.8.5. Монтирование каталога к каталогу……………………………………………………………………………. 67

4.8.6. Команды поиска файлов………………………………………………………………………………………………. 67

4.9. Многофункциональная команда dd………………………………………………………………………………….. 69

4.9.1. Копирование файлов с помощью команды dd……………………………………………………………. 69

4.9.2. Разделение файла на несколько частей………………………………………………………………………. 70

4.9.3. Создание резервной копии жесткого диска………………………………………………………………… 71

4.9.4. Создание архива с резервной копией всего жесткого диска…………………………………….. 71

4.9.5. Уничтожение всех данных раздела жесткого диска………………………………………………….. 71

4.10. Команда du………………………………………………………………………………………………………………………… 72

Глава 5. Процессы…………………………………………………………………………………. 73

5.1. Оболочки, команды и программы……………………………………………………………………………………… 73

5.2. Родительский и дочерний процессы………………………………………………………………………………….. 74

5.3. Команды kill, killall, xkill и ps…………………………………………………………………………………………….. 75

5.4. Программы top и htop: кто больше всех расходует процессорное время?……………………. 77

5.5. Команды nice и renice: изменение приоритета процесса………………………………………………… 80

5.6. Команда fuser: кто открыл ресурс?…………………………………………………………………………………… 80

5.7. Команда lsof………………………………………………………………………………………………………………………… 80

5.8. Команды управления сервисами……………………………………………………………………………………….. 81

5.9. Команда journalctl……………………………………………………………………………………………………………… 82

Глава 6. Выполнение команд и установка программ……………………………… 85

6.1. Списки………………………………………………………………………………………………………………………………….. 85

6.1.1. Условные списки…………………………………………………………………………………………………………… 85

6.1.2. Безусловные списки………………………………………………………………………………………………………. 86

6.2. Подстановка………………………………………………………………………………………………………………………… 87

6.2.1. Подстановка команды………………………………………………………………………………………………….. 87

6.2.2. Подстановка процесса………………………………………………………………………………………………….. 88

6.3. Команда как строка……………………………………………………………………………………………………………. 89

6.3.1. Передача команды в виде аргумента………………………………………………………………………….. 89

6.3.2. Перенаправление команды на стандартный ввод bash…………………………………………….. 89

6.4. Удаленное выполнение команды по SSH…………………………………………………………………………. 90

6.5. Фоновое выполнение команд…………………………………………………………………………………………….. 90

6.6. Команда nohup……………………………………………………………………………………………………………………. 92

6.7. Планировщик cron………………………………………………………………………………………………………………. 92

6.8. Установка программ командой apt…………………………………………………………………………………… 94

6.9. Установка программ командой dnf…………………………………………………………………………………… 96

Глава 7. Некоторые полезные команды…………………………………………………. 97

7.1. Команда seq…………………………………………………………………………………………………………………………. 97

7.2. Фигурные скобки…………………………………………………………………………………………………………………. 98

7.3. Команда find……………………………………………………………………………………………………………………….. 98

7.4. Команды zip и unzip……………………………………………………………………………………………………………. 99

7.5. Команда tar……………………………………………………………………………………………………………………….. 100

Глава 8. Команды для работы с текстом………………………………………………. 102

8.1. Команда sort: сортировка файлов…………………………………………………………………………………… 102

8.2. Команда diff: сравнение файлов……………………………………………………………………………………… 102

8.3. Команда diff3: сравнение трех файлов…………………………………………………………………………… 103

8.4. Команда cmp: сравнение двух файлов……………………………………………………………………………. 104

8.5. Команда comm: еще одна команда для сравнения файлов…………………………………………… 104

8.6. Команда column: разбивка текста на столбцы………………………………………………………………. 105

8.7. Команда egrep: расширенный текстовый фильтр………………………………………………………….. 105

8.8. Команда expand: замена символов табуляции пробелами…………………………………………… 106

8.9. Команда fmt……………………………………………………………………………………………………………………….. 107

8.10. Команда fold……………………………………………………………………………………………………………………. 107

8.11. Команда grep: текстовый фильтр………………………………………………………………………………….. 107

8.12. Команды more и less: постраничный вывод…………………………………………………………………. 108

8.13. Команды head и tail: вывод начала и хвоста файла…………………………………………………… 108

8.14. Команда look…………………………………………………………………………………………………………………… 108

8.15. Команда split: разбиение файлов на несколько частей………………………………………………. 108

8.16. Команда unexpand: замена пробелов символами табуляции…………………………………….. 109

8.17. Команды vi, nano, ee, mcedit, pico: текстовые редакторы…………………………………………… 109

8.18. Команда sed: потоковый текстовый редактор……………………………………………………………… 113

8.19. Команда wc: подсчет слов в файле……………………………………………………………………………….. 114

8.20. Команда gpg: шифруем файлы паролем………………………………………………………………………. 114

8.21. Некоторые команды преобразования символов и форматов……………………………………… 116

Глава 9. Эффективное использование клавиатуры………………………………. 117

9.1. Работа с окнами………………………………………………………………………………………………………………… 117

9.2. Доступ к веб-браузерам из командной строки……………………………………………………………….. 119

9.3. Работаем с буфером обмена…………………………………………………………………………………………….. 121

Глава 10. Команды для работы с сетью и Интернетом…………………………. 123

10.1. Команда ifconfig: управление сетевыми интерфейсами……………………………………………… 123

10.2. Команда ip………………………………………………………………………………………………………………………. 125

10.3. Маршрутизация………………………………………………………………………………………………………………. 126

10.3.1. Команда netstat: просмотр таблицы маршрутизации
и другой сетевой информации……………………………………………………………………………………………… 126

10.3.2. Команда route: изменение таблицы маршрутизации……………………………………………. 130

10.4. Команды получения информации об узле……………………………………………………………………. 133

10.4.1. Получение информации о доменном имени……………………………………………………………. 133

10.4.2. Команды host и dig……………………………………………………………………………………………………. 133

10.4.3. Утилита DMitry…………………………………………………………………………………………………………. 135

10.5. Текстовые браузеры……………………………………………………………………………………………………….. 135

10.6. Команда ftp: FTP-клиент………………………………………………………………………………………………… 136

10.7. Команда wget: загрузка файлов…………………………………………………………………………………….. 137

10.8. Команды для диагностики сети…………………………………………………………………………………….. 139

10.9. Команда ssh…………………………………………………………………………………………………………………….. 143

10.10. Сетевой сканер nmap……………………………………………………………………………………………………. 145

10.10.1. Что такое nmap?………………………………………………………………………………………………………. 145

10.10.2. Где мне взять nmap?………………………………………………………………………………………………… 146

10.10.3. Примеры использования nmap………………………………………………………………………………. 146

10.11. Команда systemd-resolve………………………………………………………………………………………………. 148

10.12. Команда netplan……………………………………………………………………………………………………………. 149

10.13. Команда ufw………………………………………………………………………………………………………………….. 150

Глава 11. Команды системного администратора………………………………….. 152

11.1. Программы разметки диска……………………………………………………………………………………………. 152

11.1.1. Программа fdisk………………………………………………………………………………………………………… 152

11.1.2. Программа Parted……………………………………………………………………………………………………… 155

11.1.3. Таблица разделов GPT……………………………………………………………………………………………… 159

11.1.4. Разметка диска на физическом сервере…………………………………………………………………… 160

11.1.5. Добавление диска на виртуальном сервере…………………………………………………………… 161

11.1.6. Расширение существующего диска…………………………………………………………………………. 164

11.1.7. Команды восстановления загрузчика GRUB2……………………………………………………….. 166

Восстановление загрузчика GRUB2 при использовании UEFI…………………………………. 166

Команда boot-repair………………………………………………………………………………………………………. 167

11.2. Информация о системе и пользователях………………………………………………………………………. 167

11.2.1. Команда uptime: информация о работе системы…………………………………………………… 167

11.2.2. Команда users: информация о пользователях………………………………………………………… 168

11.2.3. Команды w, who, ftpwho и whoami: информация о пользователях………………………. 168

11.2.4. Команды last и id………………………………………………………………………………………………………. 169

11.2.5. Мониторинг работы системы………………………………………………………………………………….. 169

11.2.6. Команды uname и lsb_release…………………………………………………………………………………… 172

11.2.7. Команда sensors………………………………………………………………………………………………………… 172

11.3. Команды date и timedatectl…………………………………………………………………………………………….. 173

11.4. Планировщик at………………………………………………………………………………………………………………. 174

11.4.1. Команда at: добавление задания…………………………………………………………………………….. 174

11.4.2. Команды atq и atrm: очередь заданий и удаление задания………………………………….. 175

11.5. Планировщик crond………………………………………………………………………………………………………… 175

11.6. Команды free и df: информация о системных ресурсах………………………………………………. 175

11.7. Команды управления пользователями…………………………………………………………………………. 176

11.8. Получение информации об оборудовании…………………………………………………………………… 176

11.8.1. Команда dmesg………………………………………………………………………………………………………….. 176

11.8.2. Команда lscpu: получение информации о процессоре………………………………………….. 177

11.8.3. Команда lsusb: список USB-устройств……………………………………………………………………. 178

11.8.4. Команда lspci: список PCI-устройств……………………………………………………………………… 178

11.8.5. Команда lshw: получение информации об устройствах……………………………………….. 179

11.8.6. Команда dmidecode…………………………………………………………………………………………………… 179

11.8.7. Команда lsblk…………………………………………………………………………………………………………….. 181

11.8.8. Команда badblocks……………………………………………………………………………………………………. 182

11.9. Команда rsync…………………………………………………………………………………………………………………. 182

Глава 12. Автоматизация рутинных задач с помощью оболочки bash….. 184

12.1. Настройка bash……………………………………………………………………………………………………………….. 184

12.2. Автоматизация задач с помощью сценариев bash………………………………………………………. 185

12.3. Привет, мир!…………………………………………………………………………………………………………………….. 185

12.4. Использование переменных в собственных сценариях………………………………………………. 186

12.5. Передача параметров сценарию…………………………………………………………………………………… 187

12.6. Массивы и bash……………………………………………………………………………………………………………….. 188

12.7. Циклы……………………………………………………………………………………………………………………………….. 188

12.8. Условные операторы……………………………………………………………………………………………………… 189

12.9. Функции…………………………………………………………………………………………………………………………… 191

12.10. Примеры сценариев………………………………………………………………………………………………………. 191

12.10.1. Сценарий мониторинга журнала………………………………………………………………………….. 191

12.10.2. Переименование файлов………………………………………………………………………………………… 192

12.10.3. Преобразование систем счисления……………………………………………………………………….. 192

12.10.4. Проверка прав пользователя…………………………………………………………………………………. 193

12.10.5. Генератор имени временного файла…………………………………………………………………….. 193

12.10.6. Проверка свободного дискового пространства с уведомлением
по электронной почте…………………………………………………………………………………………………………… 194

Глава 13. Примеры полезных решений………………………………………………… 195

13.1. Поиск дубликатов файлов……………………………………………………………………………………………… 195

13.2. Сценарий scanner……………………………………………………………………………………………………………. 196

13.3. Изменение прав доступа к файлам и каталогам………………………………………………………….. 197

13.4. Аварийный перезапуск сервисов…………………………………………………………………………………… 197

13.4.1. Проверка работоспособности веб-сервера…………………………………………………………….. 197

13.4.2. Проверка работоспособности MySQL……………………………………………………………………. 198

13.4.3. Если «падают» процессы…………………………………………………………………………………………. 198

13.5. Поиск битых ссылок с помощью AWK………………………………………………………………………….. 199

13.6. Считаем количество файлов в папке и подпапках………………………………………………………. 200

13.7. Резервное копирование базы данных……………………………………………………………………………. 200

Предметный указатель…………………………………………………………………………. 202

Опубликовано

Новинка: “Администрирование Astra Linux”

Администрирование Astra Linux

Рассмотрена установка Astra Linux, настройка после установки, процесс загрузки системы, в том числе система инициализации systemd, основы командной строки, настройка сети, беспроводного и проводного соединения с Интернетом, установка ПО, настройка хранилища, работа с файловой системой, настройка  Samba (интеграция с Windows-сетью), Apache (веб-сервер), SSH, VNC (графический удаленный доступ) и других необходимых сетевых служб. Сделан акцент на специфические особенности Astra Linux, а именно, мандатный контроль целостности, мандатное управление доступом, системный киоск, служба каталогов ALD и учет сменных накопителей. Книга написана с учетом запросов системных администраторов, которым поставлена задача перейти с Microsoft Windows на популярный отечественный дистрибутив Astra Linux. При этом специально для читателей, никогда ранее не использовавших Linux, рассмотрены основы работы с Linux.

Для системных администраторов

Осваиваем отечественный дистрибутив Astra Linux

Отечественный дистрибутив Astra Linux, широко внедряется в последнее время с целью замены Microsoft Windows.

Книга ориентирована на системного администратора, который впервые сталкивается с Astra Linux. Она позволит начать работу с Astra Linux даже тем администраторам, которые никогда ранее вообще не работали ни с одним другим дистрибутивом Linux.

В книге рассмотрены установка Astra Linux, настройка после установки, процесс загрузки системы, в том числе система инициализации systemd, основы командной строки, настройка сети, беспроводного и проводного соединения с Интернетом, настройка хранилища, работа с файловой системой, а также настройка самых необходимых сетевых служб – Samba, Apache (веб-сервер), SSH. Сделан акцент на специфические особенности Astra Linux, а именно, мандатный контроль целостности, мандатное управление доступом, системный киоск, служба каталогов ALD и учет сменных накопителей.

  • Переход с Windows на Linux
  • Установка системы
  • Начальные навыки администрирования
  • Настройка и защита сети
  • Установка программ
  • Настройка Samba, Apache, SSH, VNC и других служб
  • Мандатный контроль целостности, мандатное управление доступом
  • Системный киоск, учет сменных накопителей
  • Служба каталогов Astra Linux Directory

Книгу “Администрирование Astra Linux” можно купить со скидкой в интернет-магазине издательства “БХВ“.

Евгений Андреев, инженер-программист и системный администратор. Имеет более чем двадцатилетний опыт работы с операционной системой Linux в самых различных вариантах – от встраиваемых систем до серверов

Опубликовано

Новинка: “Современное системное администрирование: управление надежными и устойчивыми системами”

Современное системное администрирование

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

Для системных администраторов, инженеров службы поддержки и других ИТ-специалистов

Современные практики и технологии системного администрирования

С этой книгой Вы изучите:

  • Основные принципы работы систем и взаимодействия друг с другом отдельных компонентов
  • Практические методы повышения надежности и устойчивости систем и снижения нагрузки на системного администратора при использовании новых технологий
  • Приемы сборки систем, автоматизации работы и управления  системной инфраструктурой, снижения затрат на денежные и людские ресурсы при техническом обслуживании
  • Стратегии мониторинга, современные инструменты мониторинга и фреймворки, управление данными наблюдений
  • Масштабирование системы и повышение ее устойчивости,  планирование системы предупреждений и реагирования на инциденты

Как поддерживать надежную и устойчивую работу систем по мере развития технологий, появления новых инструментов и сервисов?

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

Книга посвящена современными практиками и технологиями системного администрирования. Приведены основные сведения о системах, архитектурах, вычислительных средах, хранилищах, сетях. Рассмотрены методы и наборы инструментов сисадмина, вопросы контроля версий, тестирования, документирования и представления информации. Описана сборка системы, разработка  сценариев,  управление инфраструктурой и обеспечение ее безопасности.

Рассмотрен мониторинг системы, программного обеспечения и работы сисадмина. Особое внимание уделено масштабированию системы, управлению мощностями и созданию надежной дежурной службы.

Дженнифер — ваша путеводная звезда в сфере технологий, она добавляет позитива и экс-пансивности традиционной работе. В этой книге она подробно раскрывает вопросы профес-сионального системного администрирования, от основ сетевых технологий до социотехниче-ских факторов, таких как пропускная способность и управление инцидентами. Независимо от того, начинаете ли вы свой путь или уже работаете десятилетия в данной сфере, здесь есть чему поучиться».
Эми Тобей, главный инженер компании Equinix

Об обложке

Птица на обложке книги «Современное системное администрирование» — это райский зимородок (Tanysiptera galatea). Существует девять видов зимородков, только два из которых обитают за пределами Папуа — Новой Гвинеи (в Австралии и Индонезии). Райский зимородок обитает в тропических лесах острова.

Книгу “Современное системное администрирование: управление надежными и устойчивыми системами” можно купить со скидкой в интернет-магазине издательства “БХВ“.

Вступительное слово………………………………………………………………………………. 13

Предисловие…………………………………………………………………………………………… 15

Для кого предназначена эта книга…………………………………………………………………………………………… 16

О том, чего в этой книге нет………………………………………………………………………………………………………. 16

Круг вопросов, который охватывает книга…………………………………………………………………………….. 17

Последнее, о чем хочется сказать…………………………………………………………………………………………….. 17

И еще одно предупреждение…………………………………………………………………………………………………….. 18

Условные обозначения, используемые в этой книге………………………………………………………………. 18

Благодарности…………………………………………………………………………………………………………………………… 19

Введение в современное системное администрирование………………………… 21

Составьте карту маршрута………………………………………………………………………………………………………. 21

Поменяйте свое мышление………………………………………………………………………………………………………… 23

В чем заключается суть работы?………………………………………………………………………………….. 24

Виды системного администрирования…………………………………………………………………………. 25

Внедрение постоянного развития…………………………………………………………………………………………….. 25

Внедрение практических подходов…………………………………………………………………………………………. 25

Внедрение совместной работы…………………………………………………………………………………………………. 26

Курс на устойчивость……………………………………………………………………………………………………………….. 26

Заключение………………………………………………………………………………………………………………………………… 27

Часть I. Рассуждения о системах…………………………………………… 29

Глава 1. Закономерности и взаимосвязи………………………………………………… 31

Как соединять ингредиенты……………………………………………………………………………………………………… 32

Многоуровневая архитектура………………………………………………………………………………………. 32

Микросервисная архитектура………………………………………………………………………………………. 33

Управляемая событиями архитектура…………………………………………………………………………. 33

Как взаимодействуют компоненты………………………………………………………………………………………….. 34

Прикладной уровень………………………………………………………………………………………………………. 36

Транспортный уровень………………………………………………………………………………………………….. 36

Сетевой уровень……………………………………………………………………………………………………………… 37

Канальный уровень………………………………………………………………………………………………………… 38

Физический уровень……………………………………………………………………………………………………….. 39

Заключение………………………………………………………………………………………………………………………………… 39

Глава 2. Вычислительные среды……………………………………………………………. 40

Распространенные рабочие нагрузки……………………………………………………………………………………… 40

Выбор места размещения рабочих нагрузок………………………………………………………………………….. 41

Локальные вычислительные среды………………………………………………………………………………. 42

Облачные вычисления……………………………………………………………………………………………………. 43

Технологии облачных вычислений………………………………………………………………………………………….. 43

Бессерверные вычисления……………………………………………………………………………………………… 43

Unikernels…………………………………………………………………………………………………………………. 44

Функции…………………………………………………………………………………………………………………… 44

Службы приложений……………………………………………………………………………………………… 45

Контейнеры…………………………………………………………………………………………………………………….. 45

Виртуальные машины……………………………………………………………………………………………………. 46

Рекомендации по выбору вычислительных ресурсов…………………………………………………………….. 47

Заключение………………………………………………………………………………………………………………………………… 50

Глава 3. Хранилище………………………………………………………………………………. 51

Почему стоит заботиться о хранилище?…………………………………………………………………………………. 51

Основные характеристики………………………………………………………………………………………………………… 53

Разновидности систем хранения данных………………………………………………………………………………… 55

Блочная система хранения данных………………………………………………………………………………. 55

Файловая система хранения данных……………………………………………………………………………. 55

Объектная система хранения данных…………………………………………………………………………… 56

Хранилище баз данных………………………………………………………………………………………………….. 57

Соображения по выбору стратегии хранения данных…………………………………………………………… 59

Заранее обдумайте требования к емкости и задержке……………………………………………….. 61

Выбирайте разумную длительность хранения данных……………………………………………… 62

Уважайте озабоченность клиентов по поводу конфиденциальности……………………….. 63

Защитите свои данные…………………………………………………………………………………………………… 63

Будьте готовы к необходимости восстановления после сбоев…………………………………… 64

Заключение………………………………………………………………………………………………………………………………… 65

Глава 4. Сеть………………………………………………………………………………………….. 66

Посмотрим на сети внимательнее…………………………………………………………………………………………….. 66

Основные характеристики сетей………………………………………………………………………………………………. 67

Создание сети…………………………………………………………………………………………………………………………….. 68

Виртуализация…………………………………………………………………………………………………………………………… 69

Программно-определяемые сети………………………………………………………………………………………………. 70

Сети доставки контента…………………………………………………………………………………………………………….. 71

Рекомендации по вашей сетевой стратегии…………………………………………………………………………….. 73

Заключение………………………………………………………………………………………………………………………………… 74

Часть II. Методы……………………………………………………………………………… 75

Глава 5. Набор инструментов сисадмина……………………………………………….. 77

Что представляет собой ваш цифровой инструментарий?…………………………………………………….. 77

Компоненты инструментария…………………………………………………………………………………………………… 78

Выбор редактора……………………………………………………………………………………………………………. 79

Встроенный статический анализ кода…………………………………………………………………. 79

Автозавершение кода…………………………………………………………………………………………….. 80

Установление и утверждение правил, которые должны соблюдаться командой 80

Рабочий процесс, интегрированный с Git…………………………………………………………….. 80

Выбор языков программирования………………………………………………………………………………… 80

Фреймворки и библиотеки……………………………………………………………………………………………… 83

Другие полезные утилиты……………………………………………………………………………………………… 83

Заключение………………………………………………………………………………………………………………………………… 86

Глава 6. Контроль версий………………………………………………………………………. 87

Что такое контроль версий?……………………………………………………………………………………………………… 87

Преимущества контроля версий……………………………………………………………………………………………….. 89

Организация инфраструктурных проектов……………………………………………………………………………… 90

Заключение………………………………………………………………………………………………………………………………… 91

Глава 7. Тестирование……………………………………………………………………………. 93

Вы уже тестируете…………………………………………………………………………………………………………………….. 93

Общие виды тестирования………………………………………………………………………………………………………… 94

Линтинг……………………………………………………………………………………………………………………………. 94

Модульные тесты…………………………………………………………………………………………………………… 96

Интеграционные тесты…………………………………………………………………………………………………… 97

Сквозные тесты……………………………………………………………………………………………………………….. 97

Четкая стратегия тестирования………………………………………………………………………………………………… 98

Совершенствуем тесты, извлекая уроки из их падения………………………………………………………… 101

Дальнейшие шаги…………………………………………………………………………………………………………………….. 102

Заключение………………………………………………………………………………………………………………………………. 103

Глава 8. Безопасность инфраструктуры……………………………………………….. 104

Что такое безопасность инфраструктуры?……………………………………………………………………………. 104

Распределяйте обязанности по обеспечению безопасности……………………………………………….. 105

Оценивайте безопасность с точки зрения злоумышленника……………………………………………….. 106

Проектирование с учетом обеспечения безопасности…………………………………………………………. 109

Классификация обнаруженных проблем………………………………………………………………………………. 110

Заключение………………………………………………………………………………………………………………………………. 112

Глава 9. Документация………………………………………………………………………… 113

Узнайте свою аудиторию……………………………………………………………………………………………………….. 113

Варианты представления документации………………………………………………………………………………. 115

Методы организации информации………………………………………………………………………………………… 116

Организация тем…………………………………………………………………………………………………………… 116

Организация информации на сайте…………………………………………………………………………….. 117

Рекомендации по созданию качественной документации…………………………………………………… 118

Заключение………………………………………………………………………………………………………………………………. 119

Глава 10. Презентации…………………………………………………………………………. 120

Узнайте свою аудиторию……………………………………………………………………………………………………….. 120

Выберите канал общения……………………………………………………………………………………………………….. 122

Выберите подходящий тип истории………………………………………………………………………………………. 124

Сторителлинг на практике……………………………………………………………………………………………………… 125

Случай № 1. Одна диаграмма вместо тысячи слов…………………………………………………… 125

Случай № 2. Одна и та же история для разной аудитории………………………………………. 126

Информационная панель для команды………………………………………………………………. 128

Информационная панель менеджера…………………………………………………………………. 129

Информационная панель клиента………………………………………………………………………. 130

Основные выводы…………………………………………………………………………………………………………. 131

Варианты графического представления информации…………………………………………………………. 131

Визуальные подсказки…………………………………………………………………………………………………. 131

Типы диаграмм……………………………………………………………………………………………………………… 132

Таблицы данных………………………………………………………………………………………………….. 132

Столбчатые диаграммы………………………………………………………………………………………. 134

Линейные диаграммы (графики)…………………………………………………………………………. 134

Диаграмма с областями………………………………………………………………………………………. 135

Тепловые карты……………………………………………………………………………………………………. 135

Flame-графики………………………………………………………………………………………………………. 135

Древовидные карты……………………………………………………………………………………………… 135

Рекомендуемые методы визуализации…………………………………………………………………………………… 136

Заключение………………………………………………………………………………………………………………………………. 137

Часть III. Сборка системы…………………………………………………………. 139

Глава 11. Разработка сценариев инфраструктуры………………………………… 141

Зачем создавать сценарии инфраструктуры?………………………………………………………………………. 141

Три подхода к моделированию инфраструктуры………………………………………………………………… 143

Код для создания образов машин……………………………………………………………………………….. 145

Код для предоставления инфраструктуры………………………………………………………………… 146

Код для настройки инфраструктуры………………………………………………………………………….. 148

Начало работы………………………………………………………………………………………………………………………… 149

Заключение………………………………………………………………………………………………………………………………. 150

Глава 12. Управление инфраструктурой………………………………………………. 151

Инфраструктура как код…………………………………………………………………………………………………………. 151

Инфраструктура как данные………………………………………………………………………………………………….. 156

Приступаем к управлению инфраструктурой………………………………………………………………………. 157

Линтинг………………………………………………………………………………………………………………………….. 160

Написание модульных тестов…………………………………………………………………………………….. 160

Написание интеграционных тестов……………………………………………………………………………. 161

Написание сквозных тестов………………………………………………………………………………………… 161

Заключение………………………………………………………………………………………………………………………………. 162

Глава 13. Обеспечение безопасности инфраструктуры…………………………. 163

Оценка векторов атак………………………………………………………………………………………………………………. 163

Управление идентификацией и доступом……………………………………………………………………………… 165

Как следует управлять доступом к системе?…………………………………………………………….. 165

Кто должен иметь доступ к вашей системе?………………………………………………………………. 167

Управление секретными данными…………………………………………………………………………………………. 168

Менеджеры паролей и программное обеспечение для управления секретными данными        169

Защита секретов и наблюдение за их использованием…………………………………………….. 170

Обеспечение безопасности вычислительной среды…………………………………………………………….. 171

Обеспечение безопасности вашей сети…………………………………………………………………………………. 173

Рекомендации по безопасности для управления инфраструктурой…………………………………… 175

Заключение………………………………………………………………………………………………………………………………. 176

Часть IV. Наблюдение за системой………………………………………. 179

Глава 14. Теоретические аспекты мониторинга…………………………………… 181

Зачем нужен мониторинг?………………………………………………………………………………………………………. 181

Чем отличаются мониторинг и наблюдаемость?………………………………………………………………….. 183

Основные элементы мониторинга………………………………………………………………………………………….. 184

События…………………………………………………………………………………………………………………………. 184

Мониторы……………………………………………………………………………………………………………………… 184

Данные: метрики, журналы и трассировка………………………………………………………………… 185

Мониторинг первого уровня…………………………………………………………………………………………………… 185

Обнаружение события…………………………………………………………………………………………………. 186

Сбор данных…………………………………………………………………………………………………………………. 186

Сокращение объема данных……………………………………………………………………………………….. 186

Анализ данных……………………………………………………………………………………………………………… 187

Представление данных………………………………………………………………………………………………… 188

Мониторинг второго уровня…………………………………………………………………………………………………… 188

Заключение………………………………………………………………………………………………………………………………. 189

Глава 15. Мониторинг вычислительной инфраструктуры
и программного обеспечения на практике……………………………………………. 190

Определите желаемые результаты………………………………………………………………………………………… 190

За какими параметрами следует наблюдать?………………………………………………………………………. 192

Делайте то, что можете сейчас……………………………………………………………………………………. 192

Мониторы, которые имеют значение…………………………………………………………………………. 193

План проекта по мониторингу……………………………………………………………………………………………….. 194

Какие оповещения следует рассылать?………………………………………………………………………………… 197

Изучение платформ мониторинга………………………………………………………………………………………….. 198

Выбор инструмента или платформы для мониторинга……………………………………………………….. 200

Заключение………………………………………………………………………………………………………………………………. 202

Глава 16. Управление данными мониторинга………………………………………. 203

Что такое данные мониторинга?……………………………………………………………………………………………. 203

Метрики…………………………………………………………………………………………………………………………. 204

Журналы……………………………………………………………………………………………………………………….. 204

Структурированные журналы…………………………………………………………………………………….. 205

Трассировка………………………………………………………………………………………………………………….. 206

Распределенная трассировка………………………………………………………………………………………. 206

Выберите типы данных…………………………………………………………………………………………………………… 207

Сохранение данных журналов………………………………………………………………………………………………. 208

Анализ данных журналов……………………………………………………………………………………………………….. 208

Мониторинг данных в масштабе……………………………………………………………………………………………. 209

Заключение………………………………………………………………………………………………………………………………. 210

Глава 17. Мониторинг вашей работы…………………………………………………… 211

Зачем вести мониторинг своей работы?………………………………………………………………………………… 211

Управляйте своей работой по методу канбан………………………………………………………………………. 213

Выбор платформы…………………………………………………………………………………………………………………… 216

Поиск интересующей информации………………………………………………………………………………………… 217

Заключение………………………………………………………………………………………………………………………………. 219

Часть V. Масштабирование системы…………………………………… 221

Глава 18. Управление мощностями………………………………………………………. 223

Что такое мощности?………………………………………………………………………………………………………………. 223

Модель управления мощностями…………………………………………………………………………………………… 224

Закупка ресурсов………………………………………………………………………………………………………….. 225

Обоснование…………………………………………………………………………………………………………………. 226

Управление……………………………………………………………………………………………………………………. 227

Мониторинг…………………………………………………………………………………………………………………… 232

Схема планирования мощностей…………………………………………………………………………………………… 232

Требуется ли планирование мощностей при использовании облачных вычислений?…….. 234

Заключение………………………………………………………………………………………………………………………………. 235

Глава 19. Создание надежной дежурной службы………………………………….. 236

Что представляют собой дежурства………………………………………………………………………………………. 236

Человеческие факторы процессов при дежурстве………………………………………………………………… 237

Проверьте свою политику дежурств…………………………………………………………………………… 238

Подготовка к дежурству………………………………………………………………………………………………. 239

За неделю до дежурства………………………………………………………………………………………………. 241

Ночь накануне дежурства…………………………………………………………………………………………… 242

Ваша дежурная смена………………………………………………………………………………………………….. 243

Сдача смены…………………………………………………………………………………………………………………. 244

День после дежурства………………………………………………………………………………………………….. 245

Мониторинг процесса дежурства………………………………………………………………………………………….. 247

Заключение………………………………………………………………………………………………………………………………. 250

Глава 20. Управление инцидентами…………………………………………………….. 251

Что такое инцидент?………………………………………………………………………………………………………………… 251

Что такое управление инцидентами?…………………………………………………………………………………….. 252

Подготовка к инцидентам и план действий…………………………………………………………………………… 254

Настройка и документирование коммуникационных каналов………………………………… 254

Обучение эффективному общению……………………………………………………………………………… 254

Создание шаблонов……………………………………………………………………………………………………… 255

Ведение документации………………………………………………………………………………………………… 256

Документирование рисков…………………………………………………………………………………………… 256

Моделирование аварийных ситуаций……………………………………………………………………….. 256

Изучение имеющихся инструментов…………………………………………………………………………… 256

Четкое определение должностей и обязанностей……………………………………………………… 257

Представление о степени серьезности и протоколах эскалации…………………………….. 258

Реагирование на инциденты…………………………………………………………………………………………………… 259

Извлечение уроков из инцидента……………………………………………………………………………………………. 260

Как глубоко следует расследовать инцидент?………………………………………………………….. 260

Помощь в обнаружении……………………………………………………………………………………………….. 262

Эффективное документирование инцидентов……………………………………………………………. 262

Распространение информации……………………………………………………………………………………. 263

Дальнейшие шаги…………………………………………………………………………………………………………………….. 264

Заключение………………………………………………………………………………………………………………………………. 264

Глава 21. Руководство устойчивыми командами…………………………………. 266

Коллективное руководство…………………………………………………………………………………………………….. 266

Внедрение командного подхода…………………………………………………………………………………………….. 267

Создание устойчивых команд дежурных специалистов………………………………………….. 268

Обновление процесса дежурства………………………………………………………………………………… 269

Мониторинг работы команды………………………………………………………………………………………………… 271

Зачем нужен мониторинг команды?…………………………………………………………………………… 271

За какими параметрами следует наблюдать?…………………………………………………………… 272

Каковы задачи команды?……………………………………………………………………………………. 274

Как команда определяет для себя задачу?………………………………………………………… 274

Как команда определяет для себя проект?………………………………………………………… 275

Что представляет собой каталог услуг, которые предлагает ваша команда?.. 275

Изучите работу…………………………………………………………………………………………………….. 275

Измерение влияния на команду…………………………………………………………………………………… 276

Поддержка инфраструктуры команды с помощью документации……………………………………… 277

Поддерживайте культуру обучения………………………………………………………………………………………. 278

Адаптация к вызовам………………………………………………………………………………………………………………. 279

Заключение………………………………………………………………………………………………………………………………. 281

Заключение………………………………………………………………………………………….. 283

Приложение А. Протоколы на практике………………………………………………. 285

Протокол HTTP………………………………………………………………………………………………………………………… 285

QUIC………………………………………………………………………………………………………………………………. 288

Система доменных имен………………………………………………………………………………………………. 289

Приложение Б. Определение причин сбоя тестов…………………………………. 293

Сбой теста, вариант № 1: проблемы, связанные с инфраструктурой…………………………………. 293

Сбой теста, вариант № 2: ошибочная логика теста……………………………………………………………… 294

Сбой теста, вариант № 3: изменение предположений………………………………………………………….. 295

Сбой теста, вариант № 4: ненадежные тесты……………………………………………………………………….. 295

Сбой теста, вариант № 5: дефекты кода………………………………………………………………………………… 297

Предметный указатель…………………………………………………………………………. 299

Об авторе……………………………………………………………………………………………… 303

Об обложке…………………………………………………………………………………………… 304

Дженнифер Дэвис

Дженнифер Дэвис — опытный инженер по эксплуатации, докладчик на международных конференциях и автор ряда книг по DevOps. Она работала с различными компаниями, от стартапов до крупных предприятий, повышая надежность систем и обеспечивая их устойчивую работу.