Логи быстро накапливаются и могут заполнять диск — особенно на серверах с интенсивной записью.
Напишем простой и надёжный bash-скрипт, который будет ротировать текущие логи в архив с датой и удалять старые записи по возрасту.
В этом посте:
• Пишемlogrotate.sh— создаём папки для текущих и архивных логов;
• Переносим .log в архив с добавлением даты в имени;
• Удаляем архивы старше N дней с помощью find -mtime.
Это полезно для серверов, где не хочется поднимать сложные системы логирования.
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 позволяет запускать скрипты и команды без ручного вмешательства: бэкапы, мониторинг, чистка логов. Всё работает в фоне, по заданному расписанию.
Создадим простой скрипт — он будет писать метку времени в лог (пример
Делаем скрипт исполняемым и прогоняем вручную для проверки:
Добавим задачу в crontab текущего пользователя (запускается каждый день в 02:00):
Если нужно задать окружение и логирование прямо в crontab — положи эти строки (пример /etc/cron.d/myjobs или в crontab пользователя):
Проверяем выполнение — смотрим системный журнал cron и наш лог:
Теперь любые задачи можно запускать автоматически — без ручного вмешательства, строго по расписанию.
🚪 Linux Ready | #практика
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
=
Теперь любые задачи можно запускать автоматически — без ручного вмешательства, строго по расписанию.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍7🔥4
Сегодняшний квиз будет про невидимые ловушки в Linux!
Мы часто пользуемся
Алиасы (alias) в
Представь, что на машине есть вот такие настройки:
Теперь пользователь запускает скрипт:
А чуть позже добавляет в
И запускает скрипт снова.
🚪 Linux Ready | #консоль
Мы часто пользуемся
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'
И запускает скрипт снова.
И так, вопрос: что произойдёт при втором запуске этого скрипта?
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍6🔥4
Пишем в комментарии свои предположения! Варианты ответа:
Anonymous Poll
15%
Скрипт удалит все .txt файлы как обычно.
21%
rm -i будет спрашивать подтверждение для каждого файла.
41%
ls -lh выведет список файлов в многострочном виде, и скрипт попробует удалить несуществующие имена.
18%
Алиасы в скриптах не действуют, и всё выполнится корректно.
22%
Ничего не изменится, так как алиасы игнорируются в командных подстановках $(…)
👍10🔥5❤4
NFS позволяет нескольким системам работать с одной директорией так, будто она локальная. Это удобно для обмена файлами в локальной сети, тестовых окружениях или на домашнем сервере.
В этом посте:
• Устанавливаем пакеты nfs-kernel-server и настраиваем экспорт директорий.
• Добавляем права и указываем клиентов, которым разрешён доступ.
• Подключаем шары на клиентской машине через mount.
• Проверяем доступность и работу с файлами.
Это простой способ организовать общее файловое хранилище без сложных систем.
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 и числа процессов!
Это помогает защитить систему от перегрузки и «падений» из-за неаккуратных процессов.
Включим ограничения прямо в
Применяем изменения (сразу для текущей сессии):
Проверим установленные лимиты командой:
Теперь каждый новый процесс пользователя будет запускаться с заданными ограничениями.
🔥 Такой подход можно встроить в окружение разработчика или тестовую машину, чтобы предотвратить перегрузку.
🚪 Linux Ready | #практика
Это помогает защитить систему от перегрузки и «падений» из-за неаккуратных процессов.
Включим ограничения прямо в
~/.bashrc пользователя, чтобы они применялись автоматически при каждом входе:# Ограничение памяти на процесс (256 МБ)
ulimit -v 262144
# Ограничение CPU-времени (60 секунд)
ulimit -t 60
# Ограничение количества процессов (50)
ulimit -u 50
Применяем изменения (сразу для текущей сессии):
source ~/.bashrc
Проверим установленные лимиты командой:
ulimit -a
Теперь каждый новый процесс пользователя будет запускаться с заданными ограничениями.
🔥 Такой подход можно встроить в окружение разработчика или тестовую машину, чтобы предотвратить перегрузку.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤4👍3
$PATH, $HOME, $USER и другие!В этом посте — 7 команд, которые помогут управлять окружением: задавать и изменять переменные, экспортировать их в дочерние процессы и настраивать удобную рабочую среду. Это пригодится при настройке системных путей, профилей пользователей и автоматизации работы в Linux.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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤5🔥4