Linux Ready | DevOps
11.3K subscribers
1.05K photos
75 videos
558 links
Авторский канал по разработке на Linux.
Ресурсы, обучения, задачи, шпаргалки.
Ежедневно информация пополняется!

Cотрудничество: @energy_c
Download Telegram
👩‍💻 Создаём скрипт для ежедневной ротации логов и автоматической очистки старых — порядок без ручной работы!

Логи быстро накапливаются и могут заполнять диск — особенно на серверах с интенсивной записью.

Напишем простой и надёжный bash-скрипт, который будет ротировать текущие логи в архив с датой и удалять старые записи по возрасту.

В этом посте:
• Пишем logrotate.sh — создаём папки для текущих и архивных логов;

• Переносим .log в архив с добавлением даты в имени;

• Удаляем архивы старше N дней с помощью find -mtime.


Это полезно для серверов, где не хочется поднимать сложные системы логирования.

🚪 Linux Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥8❤7👎2
Автоматизация с cron — задачи по расписанию прямо в Linux!

Cron позволяет запускать скрипты и команды без ручного вмешательства: бэкапы, мониторинг, чистка логов. Всё работает в фоне, по заданному расписанию.

Создадим простой скрипт — он будет писать метку времени в лог (пример /usr/local/bin/backup.sh):
sudo tee /usr/local/bin/backup.sh > /dev/null <<'EOF'
#!/bin/bash
LOG="/var/log/cron_backup.log"
mkdir -p "$(dirname "$LOG")"
echo "$(date -u +"%Y-%m-%dT%H:%M:%SZ") - backup run" >> "$LOG"
# сюда можно добавить реальные действия, например: rsync, tar и т.п.
EOF


Делаем скрипт исполняемым и прогоняем вручную для проверки:
sudo chmod +x /usr/local/bin/backup.sh
sudo /usr/local/bin/backup.sh
ls -l /usr/local/bin/backup.sh
tail -n 5 /var/log/cron_backup.log


Добавим задачу в crontab текущего пользователя (запускается каждый день в 02:00):
( crontab -l 2>/dev/null; echo "0 2 * * * /usr/local/bin/backup.sh" ) | crontab -


Если нужно задать окружение и логирование прямо в crontab — положи эти строки (пример /etc/cron.d/myjobs или в crontab пользователя):
# пример для /etc/cron.d/myjobs (требует root)
sudo tee /etc/cron.d/myjobs > /dev/null <<'EOF'
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
0 2 * * * root /usr/local/bin/backup.sh >> /var/log/cron_backup.log 2>&1
EOF
sudo chmod 644 /etc/cron.d/myjobs


Проверяем выполнение — смотрим системный журнал cron и наш лог:
journalctl -u cron --since "1 hour ago" -n 50 || journalctl -u crond --since "1 hour ago" -n 50
tail -n 50 /var/log/cron_backup.log
=


Теперь любые задачи можно запускать автоматически — без ручного вмешательства, строго по расписанию.

🚪 Linux Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍7🔥4
Сегодняшний квиз будет про невидимые ловушки в Linux!

Мы часто пользуемся ls, grep, rm, но в повседневной работе редко задумываемся, что они могут быть вовсе не теми, за кого себя выдают.

Алиасы (alias) в ~/.bashrc иногда превращают стандартные утилиты в нечто неожиданное.

Представь, что на машине есть вот такие настройки:
alias ls='ls --color=auto'
alias rm='rm -i'
alias grep='grep --color=auto'


Теперь пользователь запускает скрипт:
#!/bin/bash
files=$(ls *.txt)
for f in $files; do
rm $f
done


А чуть позже добавляет в ~/.bashrc ещё один алиас:
alias ls='ls -lh'


И запускает скрипт снова.

И так, вопрос: что произойдёт при втором запуске этого скрипта?


🚪 Linux Ready | #консоль
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍6🔥4
👩‍💻 Поднимаем NFS-сервер и шарим директории между машинами!

NFS позволяет нескольким системам работать с одной директорией так, будто она локальная. Это удобно для обмена файлами в локальной сети, тестовых окружениях или на домашнем сервере.

В этом посте:
• Устанавливаем пакеты nfs-kernel-server и настраиваем экспорт директорий.

• Добавляем права и указываем клиентов, которым разрешён доступ.

• Подключаем шары на клиентской машине через mount.

• Проверяем доступность и работу с файлами.


Это простой способ организовать общее файловое хранилище без сложных систем.

🚪 Linux Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23❤5👍5
Ограничиваем ресурсы пользователей через ulimit — быстрый контроль памяти, CPU и числа процессов!

Это помогает защитить систему от перегрузки и «падений» из-за неаккуратных процессов.

Включим ограничения прямо в ~/.bashrc пользователя, чтобы они применялись автоматически при каждом входе:
# Ограничение памяти на процесс (256 МБ)
ulimit -v 262144

# Ограничение CPU-времени (60 секунд)
ulimit -t 60

# Ограничение количества процессов (50)
ulimit -u 50


Применяем изменения (сразу для текущей сессии):
source ~/.bashrc


Проверим установленные лимиты командой:
ulimit -a


Теперь каждый новый процесс пользователя будет запускаться с заданными ограничениями.

🔥 Такой подход можно встроить в окружение разработчика или тестовую машину, чтобы предотвратить перегрузку.

🚪 Linux Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤4👍3
👩‍💻 Переменные окружения и export — настраиваем $PATH, $HOME, $USER и другие!

В этом посте — 7 команд, которые помогут управлять окружением: задавать и изменять переменные, экспортировать их в дочерние процессы и настраивать удобную рабочую среду. Это пригодится при настройке системных путей, профилей пользователей и автоматизации работы в Linux.

🚪 Linux Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥9❤5🤝3
👩‍💻 Совет дня по линухе!

В Linux можно сделать файл или директорию неудаляемыми, установив флаг неизменяемости (immutable) с помощью команды chattr:
$ sudo chattr +i -V /home/traw/keys.txt


Опция -V — подробный вывод (verbose).

Чтобы сделать директорию неудаляемой, добавьте рекурсивную опцию -R:
$ sudo chattr +i -VR /home/traw/backups


Чтобы снова разрешить удаление файла, используйте флаг -i. Для директорий — -i с опцией -R:
$ sudo chattr -i -R /home/traw/backups


🚪 Linux Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤5🔥4