Skip to content

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 - видалити директорію з іменем dir1
    • rm -rf dir1 - видалити директорію з іменем dir1 і рекурсивно її вміст
    • mv dir1 new_dir - перейменувати або перемістити файл або директорію
    • cp file1 file2 - скопіювати file1 в file2
    • ln -s file1 lnk - створити символьне посилання
    • df -h - обєм розділу
    • du -sh dir1- обєм директорії dir1
    • du -ha - показати розмір на диску директорій і їх вміст
  • Адміністрування, права
    • whoami - юзер який залогінений
    • sudo - якщо ідентифікатор не вказаний, то виконання від імені root
    • sudo su - надає доступ до root, поки термінал не закритий. Коли потрібно вводити багато команд від імені root
    • sudo!! - виконання останньої команди від root
    • ls -lh - перегляд прав на файли і директорії в поточній директорії
    • chmod ugo+rwx directory1 - додати права на директорію directory1
      • ugo - User Group Other
      • rwx - Read Write eXecute
    • chmod 777 directory1- всім повні права
    • chmod go-rwx directory1 - відібрати у групи і всіх решти права на directory1
    • chown user1 file1 - назначити власником файла file1 користувача user1
  • Пошук файлів
    • find / -name, file1 - знайти файли і директорії з іменем file1. Пошук з кореня (/)
    • grep - пошук рядка у файлі чи виводі команди
  • Перегляд вмісту файлів
    • cat file1 - вивести вміст файлу file1 в термінал
    • tac file1 - cat в звороньому порядку
    • head -2 file1 - вивести перші 2 рядки файлу file1
    • tail -2 file1 - вивести 2 останні рядки файлу file1
    • tail -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

echo $HOME

Щоб встановити нове значення змінної середовища використовують команду export.

export MY_VAR=my_value

Команда env відображає всі змінні середовища та їхні значення.

Що таке SSH ?

SSH (Secure Shell) - це протокол для безпечної віддаленої роботи з комп'ютерами через інтернет. Він використовує криптографічні методи для забезпечення безпеки з'єднання та захисту від атак.

Для віддаленого доступу до сервера за допомогою SSH можна використовувати ключі. Ключі SSH - це пари ключів, які використовуються для автентифікації користувача. Одна частина ключа (приватний ключ) зберігається на клієнтській машині, а інша частина ключа (відкритий ключ) зберігається на сервері. Коли користувач намагається підключитися до сервера, клієнт надсилає свій відкритий ключ на сервер, який потім перевіряє його за допомогою відповідного приватного ключа. Якщо ключі збігаються, користувач отримує доступ до сервера.

Порядок дій для віддаленого доступу до сервера використовувати ключі SSH - Створити пару ключів SSH на клієнтській машині за допомогою команди ssh-keygen. Буде запропоновано вказати розташування для зберігання ключів та задати пароль для приватного ключа (за бажанням). - Скопіювати відкритий ключ з клієнтської машини на сервер за допомогою команди ssh-copy-id.

ssh-copy-id user@192.168.0.1
  • Підключитись до сервера за допомогою ключів SSH. Для цього виконати команду ssh з вказанням імені користувача та IP-адреси сервера.
ssh user@192.168.0.1
  • Після введення цієї команди ввести пароль для приватного ключа (якщо він був заданий). Після успішної автентифікації надається доступ до сервера.

Використання ключів SSH для віддаленого доступу до сервера більш безпечне, ніж використання паролів, оскільки ключі генеруються випадковим чином і можуть бути дуже довгими, що робить їх практично неможливими для підбору.