Server
Server⚑
Команди в терміналі для Linux⚑
- Зупинка системи
shutdown -h now
- зупинити системуreboot
- перезавантаження
- Файли і директорії
cd ..
- перейти в директорію рівнем вищеcd ../..
- перейти в директорію двома рівнями вищеcd
- перейти в домашню директоріюcd -
- перейти в попередню по історії директоріюpwd
- поточна директоріяls
- вміст поточної директоріїls -l
- показати вміст з правамиls -a
- показати приховані файли і директоріїtree
- дерево файлів і директорій, починаючи з кореняtree -LhaC 3
- показати структуру директорії на 2 рівні в глибинуmkdir
- створити директоріюmkdir -p /tmp/dir1/dir2/
- створити дерево директорійrm -f file1
- видалити файл з іменем "file1"rmdir dir1
- видалити директорію з іменем dir1rm -rf dir1
- видалити директорію з іменем dir1 і рекурсивно її вмістmv dir1 new_dir
- перейменувати або перемістити файл або директоріюcp file1 file2
- скопіювати file1 в file2ln -s file1 lnk
- створити символьне посиланняdf -h
- обєм розділуdu -sh dir1
- обєм директорії dir1du -ha
- показати розмір на диску директорій і їх вміст
- Адміністрування, права
whoami
- юзер який залогіненийsudo
- якщо ідентифікатор не вказаний, то виконання від імені rootsudo su
- надає доступ до root, поки термінал не закритий. Коли потрібно вводити багато команд від імені rootsudo!!
- виконання останньої команди від rootls -lh
- перегляд прав на файли і директорії в поточній директоріїchmod ugo+rwx directory1
- додати права на директорію directory1ugo
- User Group Otherrwx
- Read Write eXecute
chmod 777 directory1
- всім повні праваchmod go-rwx directory1
- відібрати у групи і всіх решти права на directory1chown user1 file1
- назначити власником файла file1 користувача user1
- Пошук файлів
find / -name, file1
- знайти файли і директорії з іменем file1. Пошук з кореня (/)grep
- пошук рядка у файлі чи виводі команди
- Перегляд вмісту файлів
cat file1
- вивести вміст файлу file1 в терміналtac file1
- cat в звороньому порядкуhead -2 file1
- вивести перші 2 рядки файлу file1tail -2 file1
- вивести 2 останні рядки файлу file1tail -f /var/log/messages
- виводить вміст файлу /var/log/messages на стандартний пристрій виводу по мірі появи в ньому текстуgrep Aug /var/log/messages
- із файлу /var/log/messages відображати і вивести на стандартний пристрій виведенн рядки які містятьAug
- Моніторинг і відладка
ps aux | head -n 20
- вивести поточні активні процесиtop
- відобразити запущені процесиpkill
- завершити процес по назвіkill -TERM 98989
- коректно завершити процес з PID 98989
Які інструменти та команди Linux є для моніторингу системи та процесів?⚑
top
- команда для відображення списку процесів, запущених на системі, та їх використання ресурсів (CPU, пам'ять, дисковий простір).htop
- альтернатива команді top з більш зручним інтерфейсом та додатковими функціями, такими як можливість сортування процесів за різними параметрами.ps
- команда для відображення списку процесів, запущених на системі, та їх атрибутів, таких як ідентифікатор процесу (PID), користувач, що запустив процес, тощо.free
- команда для відображення інформації про вільну та використану пам'ять на системі.iotop
- команда для відображення списку процесів, які використовують дискові ресурси, та їх використання.netstat
- команда для відображення списку мережевих з'єднань на системі, їх статусу та використання ресурсів.iftop
- команда для відображення списку мережевих з'єднань на системі та їх використання за протоколами.nmon
- утиліта для моніторингу системи, яка відображає інформацію про процесор, пам'ять, дисковий простір, мережу та інші ресурси в режимі реального часу.sar
- утиліта для моніторингу системи, яка збирає статистику використання ресурсів на системі та зберігає її у файлі для подальшого аналізу.vmstat
- команда для відображення статистики використання пам'яті, процесора та вводу-виводу на системі.
Що таке cron?⚑
Summary
Cron - це стандартний інструмент в Unix-подібних операційних системах, який дозволяє запускати завдання за певним розкладом. Це широко використовується для автоматизації рутинних завдань, таких як резервне копіювання файлів, оновлення баз даних тощо.
Cron працює на основі конфігураційного файлу, в якому визначаються завдання та їх розклад. Кожне завдання визначається як команда, яку потрібно виконати, і розклад, коли її потрібно виконати.
Робота з cron - В термінал ввести команду crontab -e
для редагування конфігураційного файлу cron. - Додати нове завдання в конфігураційний файл. Кожне завдання має бути записане на окремій рядку і мати наступний формат * * * * * command
, де *
означає будь-яке значення, а command
- це команда, яку потрібно виконати. Значення в перших п'яти стовпцях визначають розклад виконання завдання: - Хвилини (0-59) - Години (0-23) - Дні місяця (1-31) - Місяці (1-12) - Дні тижня (0-7, де 0 і 7 - це неділя) - Наприклад, щоб запустити завдання щодня о 3 годині ночі, використовується наступний рядок - 0 3 * * * command
- Зберегти зміни в конфігураційному файлі та закрити його.
Після цього завдання буде виконуватися автоматично відповідно до розкладу, який вказали в конфігураційному файлі.
Для перегляду списку завдань, які вже налаштовані в конфігурації cron, використовується команда crontab -l
. Для видалення всіх завдань з конфігурації cron використовується команда crontab -r
.
Не варто запускати завдання від імені root, якщо це не потрібно. Потрібно вказати явно користувача, від імені якого потрібно виконати команду. Також необхідно переконатися, що завдання не будуть займати занадто багато ресурсів системи і не будуть призводити до помилок або збоїв у роботі сервера.
Що таке змінні середовища (Environment variables)?⚑
Змінні середовища (Environment variables) - це змінні, які зберігаються в операційній системі і використовуються програмами для доступу до різних системних ресурсів і налаштувань.
Щоб отримати значення змінної середовища використовують команду echo
. Отримати значення змінної середовища HOME
Щоб встановити нове значення змінної середовища використовують команду export
.
Команда env
відображає всі змінні середовища та їхні значення.
Що таке SSH ?⚑
SSH (Secure Shell) - це протокол для безпечної віддаленої роботи з комп'ютерами через інтернет. Він використовує криптографічні методи для забезпечення безпеки з'єднання та захисту від атак.
Для віддаленого доступу до сервера за допомогою SSH можна використовувати ключі. Ключі SSH - це пари ключів, які використовуються для автентифікації користувача. Одна частина ключа (приватний ключ) зберігається на клієнтській машині, а інша частина ключа (відкритий ключ) зберігається на сервері. Коли користувач намагається підключитися до сервера, клієнт надсилає свій відкритий ключ на сервер, який потім перевіряє його за допомогою відповідного приватного ключа. Якщо ключі збігаються, користувач отримує доступ до сервера.
Порядок дій для віддаленого доступу до сервера використовувати ключі SSH - Створити пару ключів SSH на клієнтській машині за допомогою команди ssh-keygen
. Буде запропоновано вказати розташування для зберігання ключів та задати пароль для приватного ключа (за бажанням). - Скопіювати відкритий ключ з клієнтської машини на сервер за допомогою команди ssh-copy-id.
- Підключитись до сервера за допомогою ключів SSH. Для цього виконати команду ssh з вказанням імені користувача та IP-адреси сервера.
- Після введення цієї команди ввести пароль для приватного ключа (якщо він був заданий). Після успішної автентифікації надається доступ до сервера.
Використання ключів SSH для віддаленого доступу до сервера більш безпечне, ніж використання паролів, оскільки ключі генеруються випадковим чином і можуть бути дуже довгими, що робить їх практично неможливими для підбору.