Как редактировать файл конфигурации Linux
Все, что нужно для редактирования конфигурационного файла Linux, — это найти его и открыть в текстовом редакторе.
Подавляющее большинство конфигов хранят свои данные в виде обычного текста, и изменение их содержимого и сохранение файла — это все, что требуется администратору для обновления настроек.
Для этой работы подойдет множество различных текстовых редакторов, и обычно все зависит от личных предпочтений.
Обычно файлы конфигурации защищены от обычных учетных записей пользователей, поэтому не забудьте повысить свои привилегии, прежде чем пытаться их редактировать (команда
Предупреждение: изменение конфигурационных файлов, может привести к поломке всей программы.
Все, что нужно для редактирования конфигурационного файла Linux, — это найти его и открыть в текстовом редакторе.
Подавляющее большинство конфигов хранят свои данные в виде обычного текста, и изменение их содержимого и сохранение файла — это все, что требуется администратору для обновления настроек.
Для этой работы подойдет множество различных текстовых редакторов, и обычно все зависит от личных предпочтений.
Обычно файлы конфигурации защищены от обычных учетных записей пользователей, поэтому не забудьте повысить свои привилегии, прежде чем пытаться их редактировать (команда
sudo или su).Предупреждение: изменение конфигурационных файлов, может привести к поломке всей программы.
Спец. атрибуты файлов
•
•
•
•
•
•
•
•
•
chattr +a some_file позволить открывать файл на запись только в режиме добавления•
chattr +c some_file позволяет ядру автоматически сжимать/разжимать содержимое файла.•
chattr +d some_file указывает утилите dump игнорировать данный файл во время выполнения backup’а•
chattr +i some_file делает файл недоступным для любых изменений: редактирование, удаление, перемещение, создание линков на него.•
chattr +s some_file позволяет сделать удаление файла безопасным, т.е. выставленный атрибут s говорит о том, что при удалении файла, место, занимаемое файлом на диске заполняется нулями, что предотвращает возможность восстановления данных.•
chattr +S some_file указывает, что, при сохранении изменений, будет произведена синхронизация, как при выполнении команды sync•
chattr +u some_file данный атрибут указывает, что при удалении файла содержимое его будет сохранено и при необходимости пользователь сможет его восстановить•
lsattr показать атрибуты файловСоздаем файл с текущей датой и временем
Создайте файл, имя которого будет содержать текущую дату и время, в формате
Пример:
Команда
Создайте файл, имя которого будет содержать текущую дату и время, в формате
YYYY-MM-DD_HH-MM.txt.Пример:
touch "$(date +'%Y-%m-%d_%H-%M').txt"Команда
date формирует строку с текущей датой и временем в нужном формате, а touch создает новый файл с этим именем.Утилита
Она является частью пакета sysstat и предоставляет информацию о различных метриках системы, таких как загрузка процессора, использование памяти, активность дисков и сетевые операции.
Sar может собирать статистику в режиме онлайн или фоновом режиме (сохраняя данные в специальных файлах для последующего анализа). Она также может генерировать краткий или подробный отчет в зависимости от требований пользователя.
Для установки sar в Ubuntu:
Основные параметры sar включают:
Примеры использования:
1. Получить общую статистику процессора каждые 5 секунд:
И это лишь небольшой пример возможностей sar. Утилита предоставляет довольно гибкий функционал, который может быть адаптирован под наиболее часто используемые сценарии мониторинга для того, чтобы вы могли анализировать статистику системы и оптимизировать ее производительность.
sar (System Activity Reporter) в Linux является ключевым инструментом системного администрирования для мониторинга и сбора статистических данных о производительности всей системы. Она является частью пакета sysstat и предоставляет информацию о различных метриках системы, таких как загрузка процессора, использование памяти, активность дисков и сетевые операции.
Sar может собирать статистику в режиме онлайн или фоновом режиме (сохраняя данные в специальных файлах для последующего анализа). Она также может генерировать краткий или подробный отчет в зависимости от требований пользователя.
Для установки sar в Ubuntu:
sudo apt-get install sysstatОсновные параметры sar включают:
-u - использование процессора-r - использование памяти-d - активность дисков-n - сетевая активность-s YYYYMMDD - начальная дата для сбора данных-e HH:MM:SS - конечное время для сбора данных-o filename - выходной файл для сохранения собранных данных-f filename - файл, содержащий записанные данные, для анализаПримеры использования:
1. Получить общую статистику процессора каждые 5 секунд:
sar -u 5
2. Отображение статистики использования памяти каждые 3 секунды: sar -r 3
3. Сохранение статистики сетевой активности в файл datafile каждые 2 секунды на протяжении 30 секунд:sar -n DEV -o datafile 2 15И это лишь небольшой пример возможностей sar. Утилита предоставляет довольно гибкий функционал, который может быть адаптирован под наиболее часто используемые сценарии мониторинга для того, чтобы вы могли анализировать статистику системы и оптимизировать ее производительность.
Для быстрого просмотра потока данных или фрагмента файла, используйте команды
Например, команда:
Количество отображаемых строк можно изменить, применив параметр
Чтобы вывести строки, начиная со строки под номером
head и tail. Например, команда:
head /etc/passwd отобразит первые десять строк файла с паролем, а команда: tail /etc/passwd покажет заключительные десять строк. Количество отображаемых строк можно изменить, применив параметр
-n, в котором число n равно количеству строк, которые необходимо увидеть.Например: head -5 /etc/passwd Чтобы вывести строки, начиная со строки под номером
n, используйте команду: tail +nАтомарные снимки файловой системы
Большинство админов делают бэкапы баз данных, останавливая сервис или используя сложные скрипты. Но в Linux есть системный вызов
Это гарантирует консистентность данных на уровне блоков без остановки приложений. Поддерживается ext4, XFS, Btrfs. Используется внутри Docker и облачных провайдеров для создания снимков дисков «на лету».
Большинство админов делают бэкапы баз данных, останавливая сервис или используя сложные скрипты. Но в Linux есть системный вызов
fsfreeze, который ставит файловую систему на паузу для записи (все новые записи блокируются, чтения работают).# Заморозить ФС (например, перед созданием LVM-снапшота)
fsfreeze -f /mnt/data
# Создать снапшот (мгновенно, так как запись остановлена)
lvcreate -s -n snap_data /dev/vg/data
# Разморозить
fsfreeze -u /mnt/data
Это гарантирует консистентность данных на уровне блоков без остановки приложений. Поддерживается ext4, XFS, Btrfs. Используется внутри Docker и облачных провайдеров для создания снимков дисков «на лету».
Вам не нужен Docker, чтобы ограничить процесс по CPU или памяти. В современных Linux (с cgroup v2) это делается через
Запустить команду с ограничением в 50% одного ядра и 512МБ памяти:
Или ограничить уже работающий процесс (зная его PID):
Позволяет изолировать «прожорливый» скрипт или процесс так, чтобы он не положил весь сервер, без настройки контейнеров.
systemd-run или прямую запись в cgroupfs.Запустить команду с ограничением в 50% одного ядра и 512МБ памяти:
systemd-run --scope -p CPUQuota=50% -p MemoryMax=512M ./heavy_script.shИли ограничить уже работающий процесс (зная его PID):
# Найти slice процесса
systemctl status <pid>
# Изменить лимиты динамически
systemctl set-property system.slice CPUQuota=20%Позволяет изолировать «прожорливый» скрипт или процесс так, чтобы он не положил весь сервер, без настройки контейнеров.
Модификаторы переменных
Bash умеет манипулировать строками внутри переменных без вызова внешних утилит вроде sed, awk или cut. Это работает быстрее, так как не создает новых процессов.
Удалить расширение файла:
Заменить подстроку:
Значение по умолчанию:
Bash умеет манипулировать строками внутри переменных без вызова внешних утилит вроде sed, awk или cut. Это работает быстрее, так как не создает новых процессов.
Удалить расширение файла:
FILE="archive.tar.gz"
echo "${FILE%.*}" # Выведет: archive.tar (удаляет кратчайшее совпадение с конца)
echo "${FILE%%.*}" # Выведет: archive (удаляет longest совпадение с конца)
Заменить подстроку:
URL="http://example.com"
echo "${URL/http/https}" # Выведет: https://example.com
Значение по умолчанию:
echo "${VAR:-default_value}" # Если VAR пуст или не установлена, вернет "default_value"Начиная с Bash 4.0, поддерживаются хеш-таблицы (словари). Это позволяет хранить данные в формате ключ-значение прямо в памяти скрипта.
Зачем: Избавляет от необходимости парсить CSV/JSON внешними утилитами для простых задач.
Пример:
Зачем: Избавляет от необходимости парсить CSV/JSON внешними утилитами для простых задач.
Пример:
declare -A users
users[ivan]="1001"
users[maria]="1002"
# Доступ по ключу
echo "UID Ивана: ${users[ivan]}"
# Перебор всех ключей
for key in "${!users[@]}"; do
echo "User: $key, UID: ${users[$key]}"
done
Довольно интересен с практической точки зрения каталог
В файле state находится состояние питание. Изменив должным образом содержимое этого файла, можно изменить состояние питания.
Например, вот как можно перевести систему в состояние "Suspend to RAM", когда питание процессора отключается, но питание на память подается, благодаря чему ее содержимое не уничтожается:
При желании можно отправить систему в состояние "Suspend to Disk", когда содержимое памяти будет записано на жесткий диск, после чего питание будет отключено:
/sys/power. В файле state находится состояние питание. Изменив должным образом содержимое этого файла, можно изменить состояние питания.
Например, вот как можно перевести систему в состояние "Suspend to RAM", когда питание процессора отключается, но питание на память подается, благодаря чему ее содержимое не уничтожается:
sudo echo -n mem > /sys/power/state При желании можно отправить систему в состояние "Suspend to Disk", когда содержимое памяти будет записано на жесткий диск, после чего питание будет отключено:
sudo echo -n disk > /sys/power/stateTraffic Control. Команда tc
Это набор инструментов для управления сетевым трафиком внутри Linux.
Распространенным примером использования
Чтобы создать задержку 100мс с помощью
Теперь вы можете это проверить, пиганув например на
Чтобы убрать задержку, которую вы только что установили, выполните:
Это набор инструментов для управления сетевым трафиком внутри Linux.
То, что вы можете сделать с помощью tc, одновременно впечатляет и вызывает отвращение. Это не для слабонервных, и настройка различных манипуляций с трафиком отнюдь не проста, но научитесь понимать это, и вы сможете использовать всю мощь управления трафиком в Linux.
Распространенным примером использования
tc является применение некоторой задержки пакетов к сетевому соединению. Чтобы создать задержку 100мс с помощью
tc:sudo tc qdisc add dev eth0 root netem delay 100msТеперь вы можете это проверить, пиганув например на
8.8.8.8Чтобы убрать задержку, которую вы только что установили, выполните:
sudo tc qdisc del dev eth0 rootСоздаем пользовательский отчет
Скрипт создает отчет о текущих пользователях в системе и сохраняет его в файл
Скрипт создает отчет о текущих пользователях в системе и сохраняет его в файл
user_report.txt. (Отчет содержит имя пользователя, его UID и время последнего входа).#!/bin/bash
output_file="user_report.txt"
echo "User Report" > "$output_file"
echo "===================" >> "$output_file"
cut -d: -f1,3,6 /etc/passwd | while IFS=: read user uid home; do
last_login=$(last -n 1 "$user" | head -n 1 | awk '{print \$4, \$5, \$6, \$7}')
echo "$user (UID: $uid) - Last login: $last_login" >> "$output_file"
done
cut -d: -f1,3,6 /etc/passwd — извлекает имя пользователя, UID и домашнюю директорию из файла /etc/passwd.last -n 1 "$user" — получает информацию о последнем входе пользователя.