Добро пожаловать в наш Telegram-канал о Bash и Linux!
Здесь вы найдете полезные советы, лайфхаки и мощные команды, которые помогут вам автоматизировать задачи, ускорить работу в терминале и глубже понять возможности Bash.
Подписывайтесь, задавайте вопросы и делитесь своим опытом! 🚀
#Bash #Linux #Скрипты #Автоматизация
Здесь вы найдете полезные советы, лайфхаки и мощные команды, которые помогут вам автоматизировать задачи, ускорить работу в терминале и глубже понять возможности Bash.
Подписывайтесь, задавайте вопросы и делитесь своим опытом! 🚀
#Bash #Linux #Скрипты #Автоматизация
🔍 Мониторинг загрузки процессора в реальном времени ⏳
Хотите быстро проверить загрузку процессора без установки сторонних утилит? Вот удобный Bash-скрипт, который показывает загрузку CPU в реальном времени! 🚀
📜 Скрипт:
📌 Как использовать?
1️⃣ Установите sysstat, если ещё не установлено:
2️⃣ Сохраните скрипт в файл cpu_monitor.sh.
3️⃣ Дайте ему права на выполнение:
4️⃣ Запустите:
💡 Скрипт каждую секунду обновляет нагрузку процессора, показывая процент использования. Отличный вариант для быстрого мониторинга без лишних инструментов! 🔥
👉@bash_srv
Хотите быстро проверить загрузку процессора без установки сторонних утилит? Вот удобный Bash-скрипт, который показывает загрузку CPU в реальном времени! 🚀
📜 Скрипт:
#!/bin/bash
while true; do
clear
echo "🖥 CPU Load Monitor"
echo "----------------------"
mpstat 1 1 | awk '/Average/ {print "Загрузка CPU: " 100 - $NF "%"}'
sleep 1
done
📌 Как использовать?
1️⃣ Установите sysstat, если ещё не установлено:
sudo apt install sysstat # Для Debian/Ubuntu
sudo yum install sysstat # Для CentOS/RHEL
2️⃣ Сохраните скрипт в файл cpu_monitor.sh.
3️⃣ Дайте ему права на выполнение:
chmod +x cpu_monitor.sh
4️⃣ Запустите:
./cpu_monitor.sh
💡 Скрипт каждую секунду обновляет нагрузку процессора, показывая процент использования. Отличный вариант для быстрого мониторинга без лишних инструментов! 🔥
👉@bash_srv
🔥 Оптимизация логов с помощью
Если у вас сервер генерирует тонны логов, важно правильно их управлять, чтобы они не раздували диск до отказа. 🛑 Используем
📌 Пример конфигурации
⚡ Как применить изменения?
Проверяем конфиг перед запуском:
Применяем вручную (если нужно):
Так логи не будут разрастаться, а сервер останется в порядке! 🚀
👉@bash_srv
logrotate
в Linux 🔥 Если у вас сервер генерирует тонны логов, важно правильно их управлять, чтобы они не раздували диск до отказа. 🛑 Используем
logrotate
– мощный инструмент для автоматического управления логами! 📌 Пример конфигурации
/etc/logrotate.d/custom_logs
:
/var/log/myapp/*.log {
daily # Ротация каждый день
rotate 7 # Хранить 7 старых логов
compress # Сжимать старые логи
delaycompress # Откладывать сжатие на один цикл ротации
missingok # Игнорировать ошибку, если лог отсутствует
notifempty # Не ротировать, если лог пуст
create 0640 root root # Создавать новые файлы с нужными правами
postrotate
systemctl reload myapp.service > /dev/null 2>&1 || true
endscript
}
⚡ Как применить изменения?
Проверяем конфиг перед запуском:
logrotate -d /etc/logrotate.d/custom_logs
Применяем вручную (если нужно):
logrotate -f /etc/logrotate.d/custom_logs
Так логи не будут разрастаться, а сервер останется в порядке! 🚀
👉@bash_srv
🔹 Автоматическое удаление старых файлов в директории 🔹
Если на сервере накопилось много временных файлов, их можно автоматически удалять по времени. Вот скрипт, который удаляет файлы старше 7 дней из указанной директории:
📌 Разбор кода:
🔹
🔹
🔹 Запускать можно по cron, например, раз в день:
(Выполнится в 3 часа ночи)
Используйте с умом, чтобы случайно не удалить важные файлы! 🚀
👉@bash_srv
Если на сервере накопилось много временных файлов, их можно автоматически удалять по времени. Вот скрипт, который удаляет файлы старше 7 дней из указанной директории:
#!/bin/bash
DIR="/var/log/tmp" # Укажите свою директорию
DAYS=7 # Количество дней
# Удаление файлов старше $DAYS дней
find "$DIR" -type f -mtime +$DAYS -exec rm -f {} \;
echo "Старые файлы в $DIR удалены!"
📌 Разбор кода:
🔹
find "$DIR" -type f -mtime +$DAYS
— ищет файлы старше $DAYS
дней. 🔹
-exec rm -f {} \;
— удаляет найденные файлы. 🔹 Запускать можно по cron, например, раз в день:
0 3 * * * /path/to/script.sh
(Выполнится в 3 часа ночи)
Используйте с умом, чтобы случайно не удалить важные файлы! 🚀
👉@bash_srv
🎯 Мониторинг загрузки процессора и уведомление в Telegram 🎯
Сервер начал тормозить, а вы не знаете почему? 🤔 Напишите скрипт, который мониторит загрузку CPU и при превышении порога отправляет уведомление в Telegram!
📌 Скрипт для мониторинга CPU и отправки уведомлений
🔹 Как использовать?
1️⃣ Сохраните скрипт в файл, например,
2️⃣ Дайте права на выполнение:
3️⃣ Добавьте в
Добавьте строку:
Теперь при высокой нагрузке процессора вы получите уведомление в Telegram и сможете быстро принять меры! 🚀
👉@bash_srv
Сервер начал тормозить, а вы не знаете почему? 🤔 Напишите скрипт, который мониторит загрузку CPU и при превышении порога отправляет уведомление в Telegram!
📌 Скрипт для мониторинга CPU и отправки уведомлений
#!/bin/bash
# Порог загрузки CPU в процентах
THRESHOLD=80
# Токен бота и ID чата в Telegram
TELEGRAM_BOT_TOKEN="your_bot_token"
CHAT_ID="your_chat_id"
# Получаем среднюю загрузку CPU за 1 минуту
CPU_LOAD=$(awk '{print $1}' /proc/loadavg | awk '{print int($1)}')
# Проверяем, превышен ли порог
if [ "$CPU_LOAD" -ge "$THRESHOLD" ]; then
MESSAGE="⚠️ Внимание! Высокая загрузка CPU: ${CPU_LOAD}%"
curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
-d chat_id="$CHAT_ID" \
-d text="$MESSAGE"
fi
🔹 Как использовать?
1️⃣ Сохраните скрипт в файл, например,
cpu_monitor.sh
. 2️⃣ Дайте права на выполнение:
chmod +x cpu_monitor.sh
3️⃣ Добавьте в
cron
для проверки каждые 5 минут:
crontab -e
Добавьте строку:
*/5 * * * * /path/to/cpu_monitor.sh
Теперь при высокой нагрузке процессора вы получите уведомление в Telegram и сможете быстро принять меры! 🚀
👉@bash_srv
🛠 Мониторинг использования диска с автоматическим уведомлением 🛠
Если у вас есть сервер, важно следить за свободным местом на диске, чтобы избежать неожиданного отказа. Нижн скрипт, который проверяет использование диска и отправляет уведомление, если свободное место падает ниже заданного порога.
📜 Скрипт:
🛠 Как использовать:
1️⃣ Сохраните скрипт, например, в файл
2️⃣ Сделайте его исполняемым:
3️⃣ Добавьте в cron для автоматического выполнения, например, каждые 10 минут:
Теперь сервер будет сам следить за местом на диске и предупреждать вас! 🚀
👉@bash_srv
Если у вас есть сервер, важно следить за свободным местом на диске, чтобы избежать неожиданного отказа. Нижн скрипт, который проверяет использование диска и отправляет уведомление, если свободное место падает ниже заданного порога.
📜 Скрипт:
#!/bin/bash
THRESHOLD=20 # Установите порог (в процентах)
EMAIL="admin@example.com" # Замените на свой email
# Получаем процент использования корневого раздела
USAGE=$(df -h / | awk 'NR==2 {print $5}' | sed 's/%//')
# Проверяем, превышает ли использование порог
if [ "$USAGE" -ge "$THRESHOLD" ]; then
echo "⚠ Внимание! Свободное место на диске заканчивается. Использование: ${USAGE}%" | mail -s "Диск почти заполнен" "$EMAIL"
fi
🛠 Как использовать:
1️⃣ Сохраните скрипт, например, в файл
disk_check.sh
. 2️⃣ Сделайте его исполняемым:
chmod +x disk_check.sh
3️⃣ Добавьте в cron для автоматического выполнения, например, каждые 10 минут:
*/10 * * * * /path/to/disk_check.sh
Теперь сервер будет сам следить за местом на диске и предупреждать вас! 🚀
👉@bash_srv
🔥 Bash-скрипт для мониторинга дискового пространства 🔥
Системные администраторы часто сталкиваются с проблемой нехватки места на диске. Этот скрипт поможет отслеживать свободное пространство и отправлять уведомления, если оно падает ниже заданного порога. 📉💾
🖥 Скрипт для мониторинга:
🔹 Как использовать:
1️⃣ Сохраните скрипт в файл, например
2️⃣ Дайте ему права на выполнение:
3️⃣ Добавьте в crontab для автоматического запуска:
Добавьте строку, чтобы скрипт запускался каждый час:
Теперь вы всегда будете в курсе, если место на сервере заканчивается! 🚀
👉@bash_srv
Системные администраторы часто сталкиваются с проблемой нехватки места на диске. Этот скрипт поможет отслеживать свободное пространство и отправлять уведомления, если оно падает ниже заданного порога. 📉💾
🖥 Скрипт для мониторинга:
#!/bin/bash
THRESHOLD=20 # Порог в % (измените по необходимости)
EMAIL="admin@example.com" # Укажите свой email
df -h | awk 'NR>1 {print $5 " " $6}' | while read output; do
usep=$(echo $output | awk '{print $1}' | sed 's/%//')
partition=$(echo $output | awk '{print $2}')
if [ "$usep" -ge "$THRESHOLD" ]; then
echo "Внимание! Диск $partition заполнен на $usep%!" | mail -s "Предупреждение: мало места на $partition" $EMAIL
fi
done
🔹 Как использовать:
1️⃣ Сохраните скрипт в файл, например
disk_monitor.sh
2️⃣ Дайте ему права на выполнение:
chmod +x disk_monitor.sh
3️⃣ Добавьте в crontab для автоматического запуска:
crontab -e
Добавьте строку, чтобы скрипт запускался каждый час:
0 * * * * /path/to/disk_monitor.sh
Теперь вы всегда будете в курсе, если место на сервере заканчивается! 🚀
👉@bash_srv
📌 Очистка кэша памяти в Linux 🧹
Если сервер начинает тормозить из-за большого количества кешированной памяти, можно её сбросить без перезагрузки. Вот простой скрипт:
🔹 Как использовать?
Сохраните скрипт, например, как
И запустите:
Можно добавить его в
🚀 Используй, если сервер начинает работать медленнее после долгой работы!
👉@bash_srv
Если сервер начинает тормозить из-за большого количества кешированной памяти, можно её сбросить без перезагрузки. Вот простой скрипт:
#!/bin/bash
# Освобождаем PageCache, dentries и inodes
sync; echo 3 > /proc/sys/vm/drop_caches
# Очищаем swap (необязательно)
swapoff -a && swapon -a
echo "Кэш памяти очищен!"
🔹 Как использовать?
Сохраните скрипт, например, как
clear_cache.sh
, сделайте его исполняемым:
chmod +x clear_cache.sh
И запустите:
sudo ./clear_cache.sh
Можно добавить его в
cron
, чтобы очищать кэш автоматически, например, раз в день:
0 4 * * * /path/to/clear_cache.sh
🚀 Используй, если сервер начинает работать медленнее после долгой работы!
👉@bash_srv
📌 Автоматическое удаление старых логов в Linux
При администрировании серверов со временем накапливается много лог-файлов, которые занимают место. Этот простой скрипт автоматически удаляет файлы старше 30 дней в указанной директории.
🔹 Как использовать?
1️⃣ Сохраните скрипт в файл, например,
2️⃣ Дайте ему права на выполнение:
3️⃣ Добавьте в cron для автоматического выполнения раз в день:
Добавьте строку:
Это запустит скрипт каждый день в 3 утра.
🎯 Теперь ваши логи не будут засорять дисковое пространство!
👉@bash_srv
При администрировании серверов со временем накапливается много лог-файлов, которые занимают место. Этот простой скрипт автоматически удаляет файлы старше 30 дней в указанной директории.
#!/bin/bash
LOG_DIR="/var/log/myapp" # Укажите путь к логам
DAYS=30 # Количество дней, после которых логи удаляются
find "$LOG_DIR" -type f -mtime +$DAYS -exec rm -f {} \;
echo "Удаление логов старше $DAYS дней завершено."
🔹 Как использовать?
1️⃣ Сохраните скрипт в файл, например,
clean_logs.sh
2️⃣ Дайте ему права на выполнение:
chmod +x clean_logs.sh
3️⃣ Добавьте в cron для автоматического выполнения раз в день:
crontab -e
Добавьте строку:
0 3 * * * /path/to/clean_logs.sh
Это запустит скрипт каждый день в 3 утра.
🎯 Теперь ваши логи не будут засорять дисковое пространство!
👉@bash_srv
📌 Сортировка данных в консоли
🔹Основные команды сортировки
1️⃣ sort – основная утилита для сортировки строк в файле или потоке вывода.
🔹Сортирует строки в алфавитном порядке.
2️⃣ sort -r – сортировка в обратном порядке.
3️⃣ sort -n – сортировка чисел.
🔹Работает корректно с числами, учитывает их величину.
4️⃣ sort -h – сортировка с учётом суффиксов (K, M, G).
🔹Полезно для файловых размеров: 10K, 2M, 5G.
5️⃣ sort -k – сортировка по колонке.
🔹Здесь сортировка идёт по 2-й колонке (числовая).
6️⃣ sort | uniq – удаление дубликатов после сортировки.
🔹Показывает только уникальные строки.
🔥 Полезный трюк: сортировка процессов по использованию памяти
🔹 Выводит топ-10 процессов по потреблению памяти.
Используйте эти команды для эффективной работы в консоли! 🚀
👉@bash_srv
🔹Основные команды сортировки
1️⃣ sort – основная утилита для сортировки строк в файле или потоке вывода.
sort файл.txt
🔹Сортирует строки в алфавитном порядке.
2️⃣ sort -r – сортировка в обратном порядке.
sort -r файл.txt
3️⃣ sort -n – сортировка чисел.
sort -n числа.txt
🔹Работает корректно с числами, учитывает их величину.
4️⃣ sort -h – сортировка с учётом суффиксов (K, M, G).
sort -h размер.txt
🔹Полезно для файловых размеров: 10K, 2M, 5G.
5️⃣ sort -k – сортировка по колонке.
sort -k2,2 -n данные.txt
🔹Здесь сортировка идёт по 2-й колонке (числовая).
6️⃣ sort | uniq – удаление дубликатов после сортировки.
sort файл.txt | uniq
🔹Показывает только уникальные строки.
🔥 Полезный трюк: сортировка процессов по использованию памяти
ps aux --sort=-%mem | head -10
🔹 Выводит топ-10 процессов по потреблению памяти.
Используйте эти команды для эффективной работы в консоли! 🚀
👉@bash_srv
📌 Типовые операции в Bash: Ввод-вывод и перенаправление 🎯
В Bash-скриптах важно уметь работать с вводом-выводом и перенаправлением потоков. Давайте разберём основные конструкции.
📥 Ввод
Читаем данные от пользователя:
Читаем несколько переменных:
Читаем из файла построчно:
📤 Вывод
Вывод в стандартный поток (stdout):
Вывод без новой строки:
Форматированный вывод:
🔄 Перенаправление
✅ Вывод в файл (перезапись)
✅ Вывод в файл (добавление)
✅ Перенаправление ошибок
✅ Перенаправление вывода и ошибок
или
✅ Передача данных через конвейер (pipeline)
✅ Использование
🎯 Эти операции помогут вам лучше управлять вводом-выводом в скриптах! 🚀
👉 @bash_srv
В Bash-скриптах важно уметь работать с вводом-выводом и перенаправлением потоков. Давайте разберём основные конструкции.
📥 Ввод
Читаем данные от пользователя:
read -p "Введите имя: " name
echo "Привет, $name!"
Читаем несколько переменных:
read -p "Введите имя и возраст: " name age
echo "$name, вам $age лет."
Читаем из файла построчно:
while read line; do
echo "Строка: $line"
done < файл.txt
📤 Вывод
Вывод в стандартный поток (stdout):
echo "Это сообщение отобразится в консоли"
Вывод без новой строки:
echo -n "Введите пароль: "
Форматированный вывод:
printf "Имя: %s\nВозраст: %d\n" "Алиса" 25
🔄 Перенаправление
✅ Вывод в файл (перезапись)
echo "Привет, мир!" > output.txt
✅ Вывод в файл (добавление)
echo "Новая строка" >> output.txt
✅ Перенаправление ошибок
команда 2> error.log
✅ Перенаправление вывода и ошибок
команда > output.log 2>&1
или
команда &> output.log
✅ Передача данных через конвейер (pipeline)
ls -l | grep ".sh"
✅ Использование
/dev/null
(отбрасывание вывода)
команда > /dev/null 2>&1
🎯 Эти операции помогут вам лучше управлять вводом-выводом в скриптах! 🚀
👉 @bash_srv
📌 Работа с FTP 🌐📂
Работа с FTP в Bash-скриптах упрощает автоматизированную передачу файлов. Разберём основные команды!
🔹 1. Загрузка файла на FTP
📌 Как это работает?
🔹
🔹
🔹
🔹
🔹 2. Загрузка всех файлов из папки
📌 Команда
🔹 3. Скачивание файла с FTP
📌 Команда
🔹 4. Удаление файлов на FTP
📌 Удаляет файл
🚀 Автоматизируйте работу с FTP, добавляя скрипты в cron!
👉@bash_srv
Работа с FTP в Bash-скриптах упрощает автоматизированную передачу файлов. Разберём основные команды!
🔹 1. Загрузка файла на FTP
#!/bin/bash
HOST="ftp.example.com"
USER="your_username"
PASS="your_password"
FILE="localfile.txt"
ftp -inv $HOST <<EOF
user $USER $PASS
put $FILE
bye
EOF
📌 Как это работает?
🔹
ftp -inv $HOST
— Открываем FTP-соединение (без интерактивного режима) 🔹
user $USER $PASS
— Логинимся 🔹
put $FILE
— Загружаем файл 🔹
bye
— Завершаем сеанс 🔹 2. Загрузка всех файлов из папки
#!/bin/bash
HOST="ftp.example.com"
USER="your_username"
PASS="your_password"
LOCAL_DIR="/path/to/local/files"
ftp -inv $HOST <<EOF
user $USER $PASS
lcd $LOCAL_DIR
mput *
bye
EOF
📌 Команда
mput *
загружает все файлы из указанной локальной директории. 🔹 3. Скачивание файла с FTP
#!/bin/bash
HOST="ftp.example.com"
USER="your_username"
PASS="your_password"
FILE="remotefile.txt"
ftp -inv $HOST <<EOF
user $USER $PASS
get $FILE
bye
EOF
📌 Команда
get
загружает файл с FTP на локальную машину. 🔹 4. Удаление файлов на FTP
ftp -inv $HOST <<EOF
user $USER $PASS
delete oldfile.txt
bye
EOF
📌 Удаляет файл
oldfile.txt
на сервере. 🚀 Автоматизируйте работу с FTP, добавляя скрипты в cron!
👉@bash_srv
🔐 Шифруем файлы в Linux с GPG!
Данный Bash-скрипт 🔒 шифрует файл и предлагает удалить оригинал после успешного шифрования.
📌 Как работает скрипт:
✅ Проверяет, существует ли файл
✅ Шифрует его с помощью
✅ Просит подтверждение перед удалением оригинала
✅ Выводит понятные сообщения
📜 Код скрипта:
🚀 Как использовать?
1️⃣ Запустите скрипт в той же папке, где находится файл
2️⃣ Введите имя файла
3️⃣ Укажите пароль для шифрования
4️⃣ Выберите, удалять ли оригинал
💡 Дешифровать файл можно командой:
🔥 Теперь ваши файлы под защитой! 🔐
👉@bash_srv
Данный Bash-скрипт 🔒 шифрует файл и предлагает удалить оригинал после успешного шифрования.
📌 Как работает скрипт:
✅ Проверяет, существует ли файл
✅ Шифрует его с помощью
gpg -c
✅ Просит подтверждение перед удалением оригинала
✅ Выводит понятные сообщения
📜 Код скрипта:
#!/usr/bin/env bash
echo "🔐 GPG File Encryption Script"
echo "📂 Make sure this script is in the same directory as the file you want to encrypt."
read -rp "Enter the exact file name (with extension): " file
# Проверяем, существует ли файл
if [[ ! -f "$file" ]]; then
echo "❌ Error: File '$file' not found!"
exit 1
fi
# Шифруем файл
gpg -c "$file"
# Проверяем, успешно ли создан зашифрованный файл
if [[ -f "$file.gpg" ]]; then
echo "✅ File successfully encrypted: $file.gpg"
read -rp "Do you want to delete the original file? (y/N): " confirm
if [[ "$confirm" =~ ^[Yy]$ ]]; then
rm -f "$file"
echo "🗑 Original file removed."
else
echo "🔄 Original file kept."
fi
else
echo "❌ Encryption failed!"
fi
🚀 Как использовать?
1️⃣ Запустите скрипт в той же папке, где находится файл
2️⃣ Введите имя файла
3️⃣ Укажите пароль для шифрования
4️⃣ Выберите, удалять ли оригинал
💡 Дешифровать файл можно командой:
gpg -d файл.gpg > файл
🔥 Теперь ваши файлы под защитой! 🔐
👉@bash_srv
Как увидеть команды, которые выполняются внутри bash скрипта
В Bash есть несколько способов увидеть команды, которые выполняются внутри скрипта. Это может быть полезно для отладки и понимания логики выполнения.
1️⃣ Включение режима отладки с
Добавьте в начало скрипта строку:
Это включает режим трассировки, и Bash будет выводить команды перед их выполнением.
Чтобы отключить трассировку, используйте:
Пример:
2️⃣ Запуск скрипта с параметром
Можно включить отладку при запуске скрипта:
Это аналогично
3️⃣ Использование
Можно изменить переменную
Теперь трассировка будет включать метки времени.
4️⃣ Логирование вывода в файл
Если хотите записать трассировку в файл:
Так весь вывод (и команды, и их результат) запишется в
Эти методы помогут вам анализировать выполнение скриптов и находить ошибки! 🚀
👉@bash_srv
В Bash есть несколько способов увидеть команды, которые выполняются внутри скрипта. Это может быть полезно для отладки и понимания логики выполнения.
1️⃣ Включение режима отладки с
set
Добавьте в начало скрипта строку:
set -x
Это включает режим трассировки, и Bash будет выводить команды перед их выполнением.
Чтобы отключить трассировку, используйте:
set +x
Пример:
#!/bin/bash
set -x # Включаем отладку
echo "Начало скрипта"
ls /etc
pwd
set +x # Отключаем отладку
echo "Конец скрипта"
2️⃣ Запуск скрипта с параметром
-x
Можно включить отладку при запуске скрипта:
bash -x script.sh
Это аналогично
set -x
, но без необходимости изменять сам скрипт.3️⃣ Использование
PS4
Можно изменить переменную
PS4
, чтобы видеть, например, время выполнения команд:
export PS4='+ $(date "+%T") '
set -x
Теперь трассировка будет включать метки времени.
4️⃣ Логирование вывода в файл
Если хотите записать трассировку в файл:
bash -x script.sh &> debug.log
Так весь вывод (и команды, и их результат) запишется в
debug.log
.Эти методы помогут вам анализировать выполнение скриптов и находить ошибки! 🚀
👉@bash_srv
⚡ Автоочистка памяти RAM в Linux 🧹
Если сервер начинает тормозить из-за перегруженной оперативной памяти, можно использовать скрипт для её очистки.
🛠️ Скрипт:
📌 Как использовать:
1. Сохраните скрипт в файл, например
2. Дайте права на выполнение:
3. Запустите от root:
🕒 Автоматизация через
Можно настроить автоматический запуск, например, раз в час:
Добавьте строку:
Теперь сервер будет поддерживать оперативную память в чистоте без вашего участия! 🚀
👉@bash_srv
Если сервер начинает тормозить из-за перегруженной оперативной памяти, можно использовать скрипт для её очистки.
🛠️ Скрипт:
#!/bin/bash
echo "Освобождение памяти..."
sync && echo 3 > /proc/sys/vm/drop_caches
echo "Готово! Свободная память увеличена."
📌 Как использовать:
1. Сохраните скрипт в файл, например
clear_ram.sh
2. Дайте права на выполнение:
chmod +x clear_ram.sh
3. Запустите от root:
sudo ./clear_ram.sh
🕒 Автоматизация через
cron
Можно настроить автоматический запуск, например, раз в час:
sudo crontab -e
Добавьте строку:
0 * * * * /path/to/clear_ram.sh
Теперь сервер будет поддерживать оперативную память в чистоте без вашего участия! 🚀
👉@bash_srv
📌 Калькулятор в консоли Bash
В Bash можно выполнять простые математические вычисления с помощью встроенной конструкции
🔹 Основные операции
🔹 Примеры использования
📍 Простые вычисления
Просто вводим выражение в
💡 Вывод:
Умножение:
💡 Вывод:
Деление (целочисленное!):
💡 Вывод:
Остаток от деления:
💡 Вывод:
📍 Сохранение результата в переменную
💡 Вывод:
📍 Использование с переменными
💡 Вывод:
📍 Возведение в степень
💡 Вывод:
🔹 Учитываем важные моменты
✅ Целочисленное деление
В
💡 Вывод:
✅ Отрицательные числа
Нужно ставить пробел перед минусом:
💡 Вывод:
🔹 Комплексные выражения
Можно вычислять сложные выражения с приоритетом операций:
💡 Вывод:
🔹 Инкремент и декремент
Можно увеличивать или уменьшать переменные:
🔹 Альтернативный способ:
Можно использовать команду
💡 Вывод:
Но тут важно ставить пробелы между числами и операциями.
🏁 Итог
Использование
Попробуйте сами! 🚀
👉 @bash_srv
В Bash можно выполнять простые математические вычисления с помощью встроенной конструкции
$(( ))
. Это позволяет быстро выполнять арифметические операции прямо в терминале. Давайте разберёмся подробнее.🔹 Основные операции
+
Сложение, -
Вычитание, *
Умножение, /
Деление (целочисленное), %
Остаток от деления, **
Возведение в степень 🔹 Примеры использования
📍 Простые вычисления
Просто вводим выражение в
echo
:
echo $((2 + 3))
💡 Вывод:
5
Умножение:
echo $((6 * 7))
💡 Вывод:
42
Деление (целочисленное!):
echo $((10 / 3))
💡 Вывод:
3
(без дробной части)Остаток от деления:
echo $((10 % 3))
💡 Вывод:
1
📍 Сохранение результата в переменную
result=$((15 - 7))
echo "Результат: $result"
💡 Вывод:
Результат: 8
📍 Использование с переменными
a=5
b=10
sum=$((a + b))
echo "Сумма: $sum"
💡 Вывод:
Сумма: 15
📍 Возведение в степень
echo $((2 ** 3))
💡 Вывод:
8
🔹 Учитываем важные моменты
✅ Целочисленное деление
В
bash
при делении берётся только целая часть. Для получения дробного результата используйте bc
:
echo "10 / 3" | bc -l
💡 Вывод:
3.3333333333
✅ Отрицательные числа
Нужно ставить пробел перед минусом:
echo $((-5 + 3))
💡 Вывод:
-2
🔹 Комплексные выражения
Можно вычислять сложные выражения с приоритетом операций:
echo $(((10 + 5) * 2 - 3))
💡 Вывод:
27
🔹 Инкремент и декремент
Можно увеличивать или уменьшать переменные:
x=5
((x++)) # Увеличить на 1
echo $x # 6
((x--)) # Уменьшить на 1
echo $x # 5
🔹 Альтернативный способ:
expr
Можно использовать команду
expr
:
expr 5 + 3
💡 Вывод:
8
Но тут важно ставить пробелы между числами и операциями.
🏁 Итог
Использование
$(( ))
— это удобный и быстрый способ выполнять математические операции прямо в терминале. Если нужны дробные числа или более сложные вычисления, можно использовать bc
.Попробуйте сами! 🚀
👉 @bash_srv
🔥 Nohup — создаём "бессмертные" процессы в Linux
Когда запускаешь команду в терминале, она обычно завершается при его закрытии. Но если нужно, чтобы процесс жил дальше, даже после выхода из сеанса, на помощь приходит nohup!
💡 Как это работает?
Просто добавляем
Теперь процесс не будет зависеть от терминала и продолжит работу даже после выхода.
📌 Пример: Запускаем браузер Firefox, который не закроется при выходе из терминала:
📂 Куда попадает вывод?
По умолчанию весь вывод команды записывается в файл
🚀 Используйте nohup, чтобы запускать долгие процессы без привязки к терминалу!
👉 @bash_srv
Когда запускаешь команду в терминале, она обычно завершается при его закрытии. Но если нужно, чтобы процесс жил дальше, даже после выхода из сеанса, на помощь приходит nohup!
💡 Как это работает?
Просто добавляем
nohup
перед командой и &
в конце:
nohup your_command &
Теперь процесс не будет зависеть от терминала и продолжит работу даже после выхода.
📌 Пример: Запускаем браузер Firefox, который не закроется при выходе из терминала:
nohup firefox https://freecodecamp.org &
📂 Куда попадает вывод?
По умолчанию весь вывод команды записывается в файл
nohup.out
в текущей директории. Если нужно изменить путь, можно сделать так:
nohup myscript.sh > mylog.log 2>&1 &
🚀 Используйте nohup, чтобы запускать долгие процессы без привязки к терминалу!
👉 @bash_srv
🔍 Проверки файлов в Bash
Работая с файлами и директориями в Bash, часто необходимо проверять их существование, права доступа и другие атрибуты. Для этого используются встроенные проверки:
📂 Проверка существования и типа файла:
-
-
-
🔑 Проверка прав доступа:
-
-
-
📏 Проверка размера и времени модификации:
-
-
-
👤 Проверка владельца и группы:
-
-
📝 Пример использования:
Эти проверки помогут вам создавать надежные скрипты для автоматизации задач в Linux! 🚀
👉 @bash_srv
Работая с файлами и директориями в Bash, часто необходимо проверять их существование, права доступа и другие атрибуты. Для этого используются встроенные проверки:
📂 Проверка существования и типа файла:
-
-d file
— файл существует и является директорией -
-e file
— файл существует (не важно, что это) -
-f file
— файл существует и является обычным файлом 🔑 Проверка прав доступа:
-
-r file
— файл существует и доступен для чтения -
-w file
— файл существует и доступен для записи -
-x file
— файл существует и является исполняемым 📏 Проверка размера и времени модификации:
-
-s file
— файл существует и не пуст -
file1 -nt file2
— file1
новее file2
-
file1 -ot file2
— file1
старше file2
👤 Проверка владельца и группы:
-
-O file
— файл существует и принадлежит текущему пользователю -
-G file
— файл существует и принадлежит группе текущего пользователя 📝 Пример использования:
mydir="/path/to/directory"
if [ -d "$mydir" ]; then
echo "Директория $mydir существует"
cd "$mydir"
ls
else
echo "Директория $mydir не существует"
fi
Эти проверки помогут вам создавать надежные скрипты для автоматизации задач в Linux! 🚀
👉 @bash_srv
📌 Сравнение строк в Bash
В Bash можно сравнивать строки разными способами.
🔹 Операторы сравнения строк
| Оператор| Описание
|-----------|---------------------------------|
|
|
|
|
|
|
🔹 Примеры использования
1️⃣ Проверка равенства строк:
2️⃣ Проверка, что строка непустая:
3️⃣ Проверка, что строка пустая:
4️⃣ Сравнение строк по алфавиту (ASCII-кодам):
5️⃣ Сравнение строк с
6️⃣ Игнорируем регистр при сравнении:
🔹
👉@bash_srv
В Bash можно сравнивать строки разными способами.
🔹 Операторы сравнения строк
| Оператор| Описание
|-----------|---------------------------------|
|
==
| Строки равны |
!=
| Строки не равны |
<
| Меньше по ASCII (нужен [[
) |
>
| Больше по ASCII (нужен [[
) |
-z
| Строка пустая |
-n
| Строка не пустая 🔹 Примеры использования
1️⃣ Проверка равенства строк:
str1="hello"
str2="world"
if [[ "$str1" == "$str2" ]]; then
echo "Строки равны"
else
echo "Строки разные"
fi
2️⃣ Проверка, что строка непустая:
if [[ -n "$str1" ]]; then
echo "Переменная str1 содержит: $str1"
fi
3️⃣ Проверка, что строка пустая:
if [[ -z "$str1" ]]; then
echo "Переменная str1 пустая"
fi
4️⃣ Сравнение строк по алфавиту (ASCII-кодам):
if [[ "apple" < "banana" ]]; then
echo "apple идёт раньше banana"
fi
5️⃣ Сравнение строк с
case
:
case "$str1" in
"hello") echo "Привет!";;
"bye") echo "Пока!";;
*) echo "Неизвестная команда";;
esac
6️⃣ Игнорируем регистр при сравнении:
str1="Hello"
str2="hello"
if [[ "${str1,,}" == "${str2,,}" ]]; then
echo "Строки равны (без учёта регистра)"
fi
🔹
${str,,}
— приводит строку к нижнему регистру (работает в Bash 4+). 👉@bash_srv
🔍 Обработка содержимого файла в Bash
Часто при работе с файлами в Bash применяют вложенные циклы. Внешний цикл перебирает строки файла, а внутренний — обрабатывает каждую строку по отдельности.
Этот метод особенно полезен для работы с CSV-файлами или другими текстовыми файлами с разделителями. Для правильной обработки данных можно использовать переменную окружения IFS (Internal Field Separator), задавая нужный символ-разделитель.
📌 Пример кода:
📌 Что делает этот скрипт?
- Читает файл /etc/passwd построчно
- Для каждой строки разбивает данные по ":" (разделителю в файле)
- Выводит каждое поле строки отдельно
⚠️ Важно!
При обработке больших файлов такой способ может быть неэффективным из-за использования подстановки команд
Такой вариант работает быстрее и не создает проблем с пробелами в строках! 🚀
👉 @bash_srv
Часто при работе с файлами в Bash применяют вложенные циклы. Внешний цикл перебирает строки файла, а внутренний — обрабатывает каждую строку по отдельности.
Этот метод особенно полезен для работы с CSV-файлами или другими текстовыми файлами с разделителями. Для правильной обработки данных можно использовать переменную окружения IFS (Internal Field Separator), задавая нужный символ-разделитель.
📌 Пример кода:
IFS=$'\n' # Устанавливаем разделитель строк
for entry in $(cat /etc/passwd) # Читаем файл построчно
do
echo "Значения в строке: $entry"
IFS=: # Меняем разделитель для обработки полей
for value in $entry # Разбираем строку по полям
do
echo " -> $value"
done
done
📌 Что делает этот скрипт?
- Читает файл /etc/passwd построчно
- Для каждой строки разбивает данные по ":" (разделителю в файле)
- Выводит каждое поле строки отдельно
⚠️ Важно!
При обработке больших файлов такой способ может быть неэффективным из-за использования подстановки команд
$(cat file)
. Лучше применять while read
, например:
while IFS=: read -r user pass uid gid info home shell
do
echo "Пользователь: $user, UID: $uid, Домашняя папка: $home"
done < /etc/passwd
Такой вариант работает быстрее и не создает проблем с пробелами в строках! 🚀
👉 @bash_srv