Linux: Системный администратор
Відкрити в Telegram
Здесь вы найдете полезные советы, практические материалы и интересные инсайты по администрированию Linux. Погружаемся в мир команд, скриптов и серверов вместе! 🚀 Авторский канал действующего админа 👨🏼💻
Показати більше1 930
Підписники
+124 години
+37 днів
+1030 днів
Архів дописів
🚀 Как ускорить загрузку системы в Linux?
Ну и последний на сегодня пост! Разберёмся, как ускорить загрузку Linux-севера, ведь время старта системы — это важный показатель, особенно для критичных сервисов.
🔥 1. Анализируем задержки загрузки
Используем
systemd-analyze для проверки времени загрузки:
systemd-analyze
Вы увидите разбивку по этапам загрузки. Чтобы детализировать задержки:
systemd-analyze blame
Эта команда покажет, какие сервисы дольше всего стартуют.
🔥 2. Отключаем ненужные сервисы
Если нашли сервисы, которые загружаются долго и не нужны, их можно отключить:
systemctl disable сервис
systemctl mask сервис # Полное отключение
Например, если у вас сервер без графического интерфейса:
systemctl disable gdm
🔥 3. Оптимизируем файловую систему
Если у вас ext4, можно включить journal_async_commit для ускорения работы:
tune2fs -o journal_async_commit /dev/sdX
А ещё полезно отключить проверку диска при каждом `X`-м запуске:
tune2fs -c 0 /dev/sdX
🔥 4. Настраиваем параллельную загрузку сервисов
Редактируем grub:
nano /etc/default/grub
Добавляем в GRUB_CMDLINE_LINUX_DEFAULT:
quiet splash systemd.legacy_boot=false
После чего обновляем загрузчик:
update-grub
🔥 5. Используем preload
Устанавливаем preload, чтобы кешировать часто используемые библиотеки:
apt install preload -y # Для Debian/Ubuntu
yum install preload -y # Для RHEL/CentOS
Этот сервис будет следить за тем, какие файлы используются чаще всего, и загружать их в память заранее.
👉 А какие ещё способы ускорения загрузки вы используете? Делитесь в комментариях! 💬
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin📌 Топ команд
htop, о которых ты мог не знать!
Привет, админы! Сегодня я покажу вам, как выжать максимум из htop – мощного интерактивного монитора процессов. Многие пользуются им для просмотра нагрузки на систему, но знаете ли вы о его скрытых фишках? Давайте разбираться!
🔥 Полезные команды:
1️⃣ F2 (Setup) – Настройка интерфейса. Можно скрыть ненужные столбцы или поменять цветовую схему.
2️⃣ F3 (Search) – Быстрый поиск процесса по имени.
3️⃣ F4 (Filter) – Фильтрация процессов по имени или команде.
4️⃣ F5 (Tree View) – Отображение процессов в виде древовидной структуры. Очень удобно для отладки зависимостей!
5️⃣ F6 (Sort By) – Изменение сортировки (CPU, MEM, PID и т.д.).
6️⃣ F7/F8 – Изменение приоритета (nice) процессов на лету.
7️⃣ F9 (Kill) – Убийство процесса без выхода из htop.
💡 Дополнительные лайфхаки:
🔹 Shift + U – Снимает выделение всех процессов.
🔹 Shift + P / M / T – Быстро сортирует по CPU, памяти или времени выполнения.
🔹 H – Подсветка зависимых процессов (родитель-потомок).
🔹 I – Инвертирует сортировку, полезно при анализе.
А вы знали про эти фишки? Делитесь в комментариях, как используете htop в повседневной работе! 👇🚀
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin📌 Как восстановить удаленные файлы в Linux?
Привет, коллеги! Сегодня разберем одну из самых неприятных ситуаций – случайное удаление важных файлов. 😱
🔹 Первое правило – не паниковать! Главное – не записывать новые данные на диск, откуда был удален файл, иначе его будет сложнее восстановить.
🛠 Способы восстановления:
1️⃣ Корзина (Trash)
Если файл был удален через GUI (например, Nautilus или Dolphin), проверьте
~/.local/share/Trash/.
2️⃣ Команда lsof (если файл еще открыт процессом)
Иногда процесс продолжает использовать удаленный файл:
lsof | grep '(deleted)'
Можно скопировать содержимое из /proc/<PID>/fd/<FD> в новый файл.
3️⃣ Восстановление через extundelete (для ext4)
Если файл был удален с раздела ext4, используем extundelete:
sudo umount /dev/sdX1 # Размонтируем раздел
sudo extundelete /dev/sdX1 --restore-all
Файлы восстанавливаются в папку RECOVERED_FILES.
4️⃣ Photorec – восстановление данных с диска
Подходит для файловых систем ext4, NTFS, FAT и других:
sudo apt install testdisk # Устанавливаем пакет
sudo photorec
Выбираем диск и начинаем поиск удаленных файлов.
5️⃣ grep в raw-данных (если знаем содержимое)
Можно попробовать найти фрагменты файла прямо на диске:
grep -a -b "текст из файла" /dev/sdX
Где -a указывает, что это текст, а -b показывает смещение.
🔥 Лучший способ защиты – бэкапы! Используйте rsnapshot, borg, restic или хотя бы rsync для резервного копирования.
💬 А какие методы восстановления использовали вы? Делитесь опытом в комментариях! 👇
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin📌 Оптимизация автозапуска сервисов в Linux: избавляемся от лишнего
Привет, админы! Сегодня разберём важную тему — автозапуск сервисов в Linux. Бывает, что после установки системы или пакетов в автозапуске оказываются ненужные сервисы, которые грузят память и процессор. Давайте это исправим!
🔹 Проверяем список сервисов
systemctl list-unit-files --type=service | grep enabled
Эта команда покажет все сервисы, включённые в автозапуск.
🔹 Отключаем ненужные сервисы
Например, если вам не нужен Bluetooth, его можно отключить:
sudo systemctl disable bluetooth.service
А если сервис запущен, то сразу и останавливаем:
sudo systemctl stop bluetooth.service
🔹 Полностью маскируем сервис (если он не нужен совсем)
sudo systemctl mask bluetooth.service
Это запретит его запуск даже вручную.
🔹 Проверяем скорость загрузки системы
Чтобы понять, какие сервисы тормозят загрузку:
systemd-analyze blame
Самые долгие процессы будут вверху списка.
Зачастую можно отключить NetworkManager-wait-online.service, если сервер работает без GUI:
sudo systemctl disable NetworkManager-wait-online.service
👉 Оптимизация автозапуска не только ускоряет загрузку, но и снижает нагрузку на систему. Делаете ли вы ревизию сервисов на своих серверах? Пишите в комментах! 🚀
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin🚀 Оптимизация SSH: Как ускорить подключение к серверу?
Всем привет! Сегодня разберем, как ускорить подключение к серверу по SSH. Замечали, что иногда при подключении бывает задержка в несколько секунд? Это может раздражать, особенно если приходится часто подключаться к разным серверам. Давайте разберем причины и решения.
🔍 Основные причины задержки
1️⃣ Reverse DNS Lookup – сервер пытается выполнить обратное разрешение IP-адреса клиента.
2️⃣ GSSAPI-аутентификация – ненужная проверка, которая включена по умолчанию.
3️⃣ Плохая сеть или высокий RTT – если сеть нестабильна, время подключения может увеличиваться.
⚡ Ускоряем SSH
✅ Отключаем обратное разрешение IP
На сервере редактируем файл
/etc/ssh/sshd_config:
UseDNS no
Перезапускаем SSH:
systemctl restart sshd
✅ Отключаем GSSAPI-аутентификацию
На клиенте в ~/.ssh/config добавляем:
Host *
GSSAPIAuthentication no
Или редактируем /etc/ssh/ssh_config глобально.
✅ Используем ControlMaster (ускоряет повторные подключения)
В ~/.ssh/config добавляем:
Host *
ControlMaster auto
ControlPath ~/.ssh/master-%r@%h:%p
ControlPersist 10m
Теперь, если уже есть активное соединение, новое подключение будет мгновенным!
🔥 Итог
Эти три простых настройки могут заметно ускорить вашу работу с SSH. Попробуйте и напишите в комментариях, помогло ли вам!
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin📜 Bash-скрипт для очистки логов: автоматизируем рутину
Логи – полезная вещь, но если их не чистить, диск быстро заполняется. Вот простой Bash-скрипт, который удаляет старые логи, оставляя только свежие:
#!/bin/bash
LOG_DIR="/var/log"
DAYS=7
find $LOG_DIR -type f -name "*.log" -mtime +$DAYS -exec rm -f {} \;
echo "Очистка логов старше $DAYS дней завершена."
📌 Как использовать?
1️⃣ Сохраните скрипт как clear_logs.sh.
2️⃣ Дайте права на выполнение:
chmod +x clear_logs.sh
3️⃣ Добавьте в cron, чтобы запускался раз в день:
crontab -e
И добавьте строку:
0 2 * * * /path/to/clear_logs.sh
Теперь логи будут чиститься автоматически каждую ночь в 2:00.
А как вы боретесь с мусором в /var/log? 🤔 Делитесь своими решениями в комментариях!
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin⚡ Как удалить огромную папку в Linux за секунды?
Удаление больших папок в Linux может занять очень много времени. Особенно, если делать это через
rm -rf.
💡 Альтернативные способы удаления:
✅ Удаляем быстрее с rsync:
rsync -a --delete empty_dir/ target_dir/
Заменяем target_dir на пустую папку и мгновенно очищаем ее.
✅ Используем find и xargs:
find /bigdir -type f -delete
find /bigdir -depth -type d -delete
Сначала удаляем файлы, потом папки – так быстрее.
✅ Удаляем через inode:
Если папка – это отдельный монтированный диск, можно просто отмонтировать и форматнуть:
umount /bigdir
mkfs.ext4 /dev/sdX
Какой способ используете вы?
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin🛠 Как проверить загрузку процессора в Linux?
Производительность сервера – это первое, что проверяют при проблемах. Если сервер тормозит, первым делом смотрим на CPU.
📌 Вот несколько полезных команд:
🔹
top – показывает загрузку CPU в реальном времени.
🔹 htop – более удобная версия top с цветным интерфейсом.
🔹 mpstat -P ALL 1 – детальный анализ нагрузки по ядрам.
🔹 sar -u 1 10 – сбор данных о загрузке процессора в динамике.
🔹 iostat -c 1 – еще один способ посмотреть загрузку CPU.
🔎 На что смотреть?
📌 Высокий %user – процессы активно используют CPU.
📌 Высокий %iowait – узкое место в дисковой системе.
📌 %steal – возможно, вам не хватает процессорных ресурсов на виртуальной машине.
А какая ваша любимая команда для мониторинга CPU? Делитесь в комментариях!
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin2️⃣ Почему
kill -9 не всегда хорошая идея?
Один из самых частых способов убить процесс в Linux – это команда:
kill -9 PID
Но почему её не стоит использовать бездумно?
🔸 -9 (SIGKILL) моментально завершает процесс без шанса на очистку ресурсов. Это может привести к:
- Потере несохранённых данных
- Оставлению зомби-процессов
- Проблемам с зависимыми процессами
Лучше использовать более "мягкие" сигналы:
1️⃣ kill PID (SIGTERM) – вежливо просит процесс завершиться.
2️⃣ kill -15 PID – то же самое, но явно.
3️⃣ kill -1 PID (SIGHUP) – для перезапуска демонов.
4️⃣ kill -2 PID (SIGINT) – аналог Ctrl+C.
Используйте kill -9 только в крайнем случае, когда процесс завис и не отвечает на другие сигналы.
Какой у вас самый жёсткий случай с kill -9? Делитесь в комментариях! 💀
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin1️⃣ Как проверить скорость интернета в Linux через терминал?
Если вам нужно быстро замерить скорость интернета на сервере или рабочей машине без браузера, используйте один из этих инструментов:
1️⃣ Speedtest CLI
Установите и запустите:
sudo apt install speedtest-cli # для Ubuntu/Debian
sudo yum install speedtest-cli # для CentOS/RHEL
speedtest
2️⃣ Fast CLI (от Netflix)
Удобный альтернативный инструмент:
curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python3
или
fast
3️⃣ nload – мониторинг в реальном времени
sudo apt install nload
nload
Теперь у вас есть несколько способов быстро проверить скорость соединения. Какой инструмент используете вы? 🌐
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin🛠 Как проверить нагрузку на сервер?
Если сервер начал тормозить, первым делом проверяем, что его грузит. Вот полезные команды для диагностики:
🔹 top / htop – показывает загрузку процессора, памяти, активные процессы.
🔹 free -m – проверяет, сколько оперативной памяти занято и сколько доступно.
🔹 df -h – смотрит свободное место на диске.
🔹 iostat -x 1 – помогает определить проблемы с дисковым вводом-выводом.
🔹 netstat -tulnp / ss -tulnp – проверяет открытые порты и сетевые подключения.
Если сервер под нагрузкой, но процессы неизвестны, попробуйте
ps aux --sort=-%cpu или ps aux --sort=-%mem, чтобы найти самых "прожорливых".
А какими инструментами диагностики чаще всего пользуетесь вы?
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odminКак быстро узнать, какие процессы грузят систему?
Если сервер вдруг начал тормозить, первым делом проверяем загрузку CPU и памяти. Вот мои любимые команды:
🔹 top — классика, показывает активные процессы в реальном времени.
🔹 htop — улучшенная версия top с удобным интерфейсом.
🔹 ps aux --sort=-%cpu | head — топ 10 процессов по загрузке CPU.
🔹 ps aux --sort=-%mem | head — топ 10 процессов по потреблению памяти.
А если хотите найти, какая конкретно команда грузит диск:
iotop -o
или
iostat -dx 1
Какие инструменты используете вы, когда сервер внезапно начинает «тупить»? 🚀
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odminКак проверить, что процесс слушает нужный порт? 🔎
Бывало такое, что сервис не отвечает, и непонятно, слушает ли он вообще нужный порт? Давайте разберёмся, как это проверить.
📡 Способы проверки:
1️⃣ ss (современный вариант `netstat`):
ss -tulnp
- -t — TCP;
- -u — UDP;
- -l — только слушающие сокеты;
- -n — не резолвить имена;
- -p — показать процессы.
2️⃣ lsof (список открытых файлов, включая порты):
lsof -i :80
Покажет, какой процесс слушает 80-й порт.
3️⃣ netstat (старый, но работает):
netstat -tulnp
4️⃣ Сокетный тест с `nc`:
nc -zv 127.0.0.1 80
Если порт открыт, увидим сообщение succeeded.
💡 Пример реального кейса: Apache не запускается, потому что другой процесс уже занял порт 80. Как быстро его прибить?
fuser -k 80/tcp
или
kill $(lsof -t -i :80)
Какой метод используете вы? Делитесь в комментариях! 💬
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odminКак найти и удалить старые файлы в Linux? 🗑️
Привет, админы! Сегодня разберёмся, как быстро находить и удалять старые файлы в Linux. Это полезно для очистки логов, временных файлов и других ненужных данных.
🔍 Поиск файлов старше 30 дней:
find /path/to/directory -type f -mtime +30
- -type f — ищем только файлы;
- -mtime +30 — файлы старше 30 дней.
🗑️ Удаление этих файлов:
find /path/to/directory -type f -mtime +30 -delete
⚠ Осторожно! Удаление без подтверждения.
✅ Безопасный вариант с подтверждением:
find /path/to/directory -type f -mtime +30 -exec rm -i {} \;
Будет запрашиваться подтверждение перед удалением.
🔥 Автоматизация через cron:
Добавляем в crontab -e:
0 3 * * * find /var/log -type f -mtime +30 -delete
Очистка логов каждую ночь в 03:00.
Как вы решаете проблему старых файлов? Делитесь своими решениями в комментариях! 👇
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odminКак работает HTTPS?
Безопасный протокол передачи гипертекста
(HTTPS) - это расширение протокола передачи гипертекста (HTTP). HTTPS передает зашифрованные данные с использованием транспортного уровня безопасности (TLS). Если данные будут перехвачены в Интернете, все, что получит угонщик, - это двоичный код.
Как шифруются и дешифруются данные?
Шаг 1 - Клиент (браузер) и сервер устанавливают TCP-соединение.
Шаг 2 - Клиент отправляет серверу " client hello". Сообщение содержит набор необходимых алгоритмов шифрования (наборов шифров) и последнюю версию TLS, которую он может поддерживать. Сервер отвечает " server hello", чтобы браузер знал, может ли он поддерживать алгоритмы и версию TLS.
Затем сервер отправляет SSL-сертификат клиенту. Сертификат содержит открытый ключ, имя хоста, дату истечения срока действия и т. д. Клиент проверяет сертификат.
Шаг 3. После проверки SSL-сертификата клиент генерирует ключ сессии и шифрует его с помощью открытого ключа. Сервер получает зашифрованный ключ сеанса и расшифровывает его с помощью закрытого ключа.
Шаг 4 - Теперь, когда клиент и сервер владеют одним и тем же сеансовым ключом (симметричное шифрование), зашифрованные данные передаются по защищенному двунаправленному каналу.
Почему HTTPS переключается на симметричное шифрование при передаче данных? Есть две основные причины:
1. Безопасность: Асимметричное шифрование работает только в одну сторону. Это означает, что если сервер попытается отправить зашифрованные данные обратно клиенту, любой сможет расшифровать их с помощью открытого ключа.
2. Ресурсы сервера: Асимметричное шифрование добавляет довольно много математических накладных расходов. Оно не подходит для передачи данных в длительных сессиях.
#Шпаргалка@linux_odmin
👉 @linux_odmin
Nginx-Lua-Anti-DDoS
Этот репозиторий предоставляет Lua-скрипт для защиты серверов на базе Nginx от DDoS-атак. Он использует возможности OpenResty и модуля ngx_lua для фильтрации трафика, ограничения запросов и обнаружения подозрительных IP.
🔹 Основные функции:
- Проверка и блокировка подозрительных клиентов.
- Ограничение количества запросов (rate limiting).
- Обнаружение автоматизированных атак и ботов.
- Интеграция с Cloudflare, iptables и другими системами.
🔹 Требования:
- Nginx с поддержкой Lua (через OpenResty или сборку с модулем `ngx_http_lua_module`).
- Возможность редактирования конфигурации сервера.
https://github.com/C0nw0nk/Nginx-Lua-Anti-DDoS
#Linux@linux_odmin #Security@linux_odmin
👉 @linux_odmin
Шпаргалка по PostgreSQL
-- ***********************************
-- Редактирование таблиц, расширенные возможности SELECT, функции
-- ***********************************
-- Добавление поля в таблицу
ALTER TABLE table_name ADD COLUMN new_field
BOOLEAN NOT NULL DEFAULT TRUE;
-- добавление поля с автоинкрементом и primary key в таблицу
ALTER TABLE test1 ADD COLUMN id SERIAL PRIMARY KEY;
-- Удаление поля из таблицы
ALTER TABLE table_name DROP COLUMN new_field;
-- переименовать поле
ALTER TABLE table_name RENAME old_field TO new_field;
-- сменить тип данных
ALTER TABLE table_name ALTER COLUMN any_field SET
DATA TYPE VARCHAR(255);
-- изменить значение по умолчанию
ALTER TABLE table_name ALTER COLUMN any_field SET
DEFAULT 'new value';
-- добавить/удалить constraint NOT NULL
ALTER TABLE table_name ALTER COLUMN any_field
SET|DROP NOT NULL;
-- переименовать таблицу
ALTER TABLE table_name RENAME TO new_table_name;
-- Расширенные возможности SELECT
SELECT * FROM table WHERE field1 LIKE 'value'; -- field1 = 'value'
SELECT * FROM table WHERE field1 LIKE 'val%'; -- field1 начинается с 'val'
SELECT * FROM table WHERE field1 LIKE '%lue'; -- field1 заканчивается на 'lue'
SELECT * FROM table WHERE field1 LIKE '%e%'; -- field1 содержит 'e'
-- несколько условий
SELECT * FROM table WHERE field1 = 'value' AND field2 > 'value2';
SELECT * FROM table WHERE field1 = 'value' OR field2 > 'value2';
-- вывод уникальных записей
SELECT DISTINCT field1 FROM table;
-- группирование записей
SELECT field1, COUNT(field1) FROM table GROUP BY field1;
-- сгруппирует записи таблицы table по полю field и выведет уникальные значения field и количество повторений
SELECT field1, COUNT(field1) FROM table GROUP BY field1
HAVING COUNT(field) > 3;
-- сгруппирует записи таблицы table по полю field и выведет уникальные значения field и количество повторений, где количество повторений больше 3
#Шпаргалка@linux_odmin
👉 @linux_odminШпаргалка по PostgreSQL
Перенес в my-mans
-- подключиться к postgres (утилита psql)
psql -U postgres
-- команды помощи
help
\h -- помощь по командам SQL
\? -- помощь по командам psql
-- выход из консоли postgres
\q
-- создать базу
CREATE DATABASE my_database;
-- подключиться к базе
\connect my_database;
-- создать таблицу my_table с полями field1 (тип целочисленный, обязательное для заполнения), field2 (тип строка 255 символов)
CREATE TABLE my_table (field1 INT NOT NULL, field2 VARCHAR(255));
-- вывести все таблицы
\d
-- удалить таблицу my_table
DROP TABLE my_table;
-- внести в таблицу запись
INSERT INTO my_table(field1, field2) VALUES(1,'Any text value');
-- вывести записи
SELECT * FROM my_table; -- все записи
SELECT * FROM my_table WHERE field1 = 1; -- все, где field1 = 1
SELECT * FROM my_table WHERE field1 != 1; -- и т д
SELECT * FROM my_table WHERE field1 > 1;
SELECT * FROM my_table LIMIT 100; -- первые 100 записей;
SELECT * FROM my_table LIMIT 100 OFFSET 200; -- запись с 201 по 300;
-- сортировка при выводе
SELECT * FROM my_table ORDER BY field1 ASC; -- вывести отсортировав в возрастающем порядке
SELECT * FROM my_table ORDER BY field1 DESC; -- вывести отсортировав в убывающем порядке
-- изменить запись таблицы (поле field2 строки, где field1 = 1);
UPDATE my_table SET field2 = 'Other text value' WHERE field1 = 1;
-- удаление данных
DELETE FROM my_table; -- удалить все записи;
DELETE FROM my_table WHERE field1 = 1; -- удалить запись где field1 = 1;
-- ***********************************
-- нормализация (разбиение таблиц на несколько)
-- ***********************************
-- Constraints - ограничения типов данных
CREATE TABLE my_table (
field1 INT NOT NULL, -- запись обязательна
field2 VARCHAR(255) NOT NULL UNIQUE, -- запись должна быть уникальной
field3 BOOLEAN NOT NULL DEFAULT TRUE -- значение по умолчанию - true
...
);
-- Первичный и внешние ключи
-- при создании записи таблицы с отсутствующим внешним ключом выведется запись об ошибке. будут выводится ошибки и в иных случаях, когда будут нарушаться связи.
CREATE TABLE IF NOT EXISTS my_table ( -- ключ IF NOT EXISTS проверяет, существует ли таблица.
field1 SERIAL INT PRIMARY KEY, -- при добавлении PRIMARY KEY поле автоматически наследует ограничения NOT NULL и UNIQUE, и создается индекс. SERIAL тип данных являющийся автоматически увеличивающимся счетчиком (аналог ключа AUTOINCREMENT в Sqlite)
field2 VARCHAR(255) NOT NULL UNIQUE,
field3 INT NOT NULL,
FOREIGN KEY(field3) REFERENCES other_table(field_name) -- поле ссылается на внешнюю таблицу other_table на поле field_name, которое обязательно должно быть с PRIMARY KEY
);
-- вывод данных из нескольких таблиц со связанными полями
SELECT * FROM table_1 LEFT JOIN table_2 ON (table_2.field = table_1.field);
-- алиасы, нужны для удобства. Также, при выводе наименование таблиц или полей выводится алиасом, при его наличии.
SELECT * FROM table_1 as tab1 LEFT JOIN table_2 as tab2 ON (tab1.field = tab2.field);
#Шпаргалка@linux_odmin
👉 @linux_odminШпаргалка по скриптам Bash
Основы написания скриптов на Bash
Условные операторы
Циклы Bash
Арифметические операторы
Арифметические условные операторы
Операторы сравнения строк
#Шпаргалка@linux_odmin
👉 @linux_odmin
