Системный администратор – Telegram
Системный администратор
2.53K subscribers
375 photos
497 videos
7 files
199 links
Канал для системных администраторов. Linux, Windows, Active Directory, GPO, PowerShell. Виртуализация Hyper-V, VMWare. Облака Azure, AWS.

По всем вопросам @evgenycarter
Download Telegram
Автоматическая архивация логов старше 7 дней

Когда у вас на сервере копятся старые логи, они занимают всё больше места. Этот простой Bash-скрипт поможет автоматически архивировать и удалять файлы старше 7 дней:


#!/usr/bin/env bash

# 📁 Директория с логами
LOG_DIR="/var/log/myapp"

# 📆 Архивируем файлы старше этого количества дней
DAYS=7

# 📦 Папка для хранения архивов
DEST_DIR="/backup/logs"

# Создаём папку для бэкапов, если её нет
mkdir -p "$DEST_DIR"

# Формируем имя архива по дате, например logs-2025-05-26.tar.gz
ARCHIVE="$DEST_DIR/logs-$(date +%F).tar.gz"

# 🚀 Архивируем все файлы старше $DAYS дней
find "$LOG_DIR" -type f -mtime +"$DAYS" -print0 \
| tar --null -czvf "$ARCHIVE" --files-from -

# 🧹 Удаляем оригинальные файлы, которые попали в архив
find "$LOG_DIR" -type f -mtime +"$DAYS" -delete

echo " Логи старше $DAYS дней заархивированы в $ARCHIVE и удалены из $LOG_DIR"


Как использовать

1. Сохраните скрипт, например, как /usr/local/bin/backup_logs.sh и сделайте его исполняемым:


chmod +x /usr/local/bin/backup_logs.sh

2. Настройте cron-задачу, чтобы запускать его ежедневно в полночь. Введите crontab -e и добавьте строку:


0 0 * * * /usr/local/bin/backup_logs.sh >> /var/log/backup_logs_cron.log 2>&1


🔧 Пояснения

* find … -mtime +7 находит файлы старше 7 дней.
* tar --null --files-from - позволяет корректно обрабатывать имена с пробелами.
* Архивы сохраняются в /backup/logs — измените путь под свои нужды.

👉 @i_linux
👍1
Media is too big
VIEW IN TELEGRAM
Установка Ubuntu 20.04 в RAID 1. Настройка и восстановление RAID массива

Настройка Software RAID при установке Ubuntu Server 20.04.
Комманды в видео:

cat /proc/mdstat | Просмотр состояния RAID
fdisk -l | Простомотр дисков и разделов

mdadm --add /dev/md1 /dev/sda2 | Добавление разделов (partition) в RAID
sfdisk -d /dev/sda | sfdisk /dev/sdb | Клонирование разделов с диска sda на sdb

grub-install /dev/sdb | Установка загрузчика на новый диск sdb

👉 @i_linux
👍1
Подборка часто используемых инструментов удаленного подключения

1. Xshell
Xshell - это очень мощное программное обеспечение для эмуляции защищенного терминала, которое поддерживает SSH1, SSH2 и протокол TELNET платформы Windows. Xshell можно использовать в интерфейсе Windows для доступа к удаленным серверам на различных системах, тем самым лучше достигая цели терминала удаленного управления.

https://www.xshell.com/en/xshell/

2. SecureCRT
SecureCRT - это мощное программное обеспечение для эмуляции защищенного терминала, которое может помочь пользователям более безопасно подключаться к удаленным серверам, а также может быть использовано для реализации функций удаленного управления сервером и передачи файлов. SecureCRT поддерживает протоколы SSH1, SSH2, Telnet, Rlogin, Serial и SSL/TLS, которые могут быть использованы для подключения к различным удаленным терминалам, что позволяет удовлетворить различные потребности пользователей.

https://www.vandyke.com

3. WinSCP
WinSCP - это графический клиент SFTP с открытым исходным кодом, который использует SSH в среде Windows. Он также поддерживает протокол SCP. Его основная функция - безопасное копирование и передача файлов между локальным и удаленным компьютерами.

https://winscp.net/

4. PuTTY
Putty - это легкий клиент SSH и Telnet, который может помочь пользователям подключиться к удаленным серверам, а также поддерживает протокол шифрования аутентификации SSH-2, что может сделать доступ пользователей к сети более безопасным. Putty также поддерживает протокол SSH на платформе Windows, что позволяет пользователям лучше контролировать удаленные серверы.

https://putty.org/

5. MobaXterm
MobaXterm предоставляет комплексные возможности, почти все важные удаленные сетевые инструменты (такие как SSH, X11, RDP, VNC, FTP, MOSH и т.д.), а также команды Unix на рабочем столе Windows (bash, ls, cat, sed, grep, awk, rsync и т.д.), и автоматически открывает режим sftp после входа в систему.

https://mobaxterm.mobatek.net/

6. Tabby
Tabby - это современный инструмент терминального подключения, с открытым исходным кодом и кроссплатформенный, поддерживающий системы Windows, MacOS и Linux. Tabby имеет более 20k+ Star на Github, что говорит о том, что это очень популярный терминальный инструмент!

https://tabby.sh/

👉 @i_linux
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Ничего необычного, просто обезьяна настраивает Микротик 😀

👉 @i_linux
😁5
Команда findmnt

Это простая утилита командной строки, используемая для отображения списка подключенных файловых систем или поиска файловой системы в /etc/fstab, /etc/mtab или /proc/self/ mountinfo.

Для отображения списка подключенных файловых систем, выполните в командной строке следующую команду.
По умолчанию команда findmnt отображает файловые системы в древовидном формате.
# findmnt

Чтобы отобразить информацию в виде обычного списка, используйте параметр -l, как показано ниже
# findmnt -l

Можно выбрать отображение файловых систем только определенного типа, используя параметр командной строки -t, за которым следует тип файловой системы, такой как XFS или EXT4.
# findmnt --fstab -t xfs или # findmnt --fstab -t ext4

Поиск файловой системы, используя точку монтирования.

Например, следующая команда отображает все файловые системы /etc/fstab, где каталогом точки монтирования является /mnt/external/disk2.
# findmnt --fstab /mnt/external/disk2 #this prints bind mounts where /mnt/external/disk2 is a source
или # findmnt --fstab --target /mnt/external/disk2

Выводим все файловые системы /etc/fstab и преобразовываем теги LABEL = и UUID = в реальные имена устройств, добавьте ключ – –evaluate
# findmnt --fstab --evaluate

Отобразить только точку монтирования, в которой смонтирована файловая система с меткой «/ boot» или «/», используйте следующую команду.
# findmnt -n --raw --evaluate --output=target LABEL=/boot или # findmnt -n --raw --evaluate --output=target LABEL=/

Findmnt также позволяет отслеживать действия по монтированию, размонтированию, перемонтированию и перемещению каталога, например, в /mnt/test.
# findmnt --poll --mountpoint /mnt/test

Если вы хотите больше информации в выводе, используйте ключ –verbose.
# findmnt --real --verbose

👉 @i_linux
👍31
Bash

Переменные в строке bash
echo os-$(uname) # os-Linux

Команды
break - выход из цикла for, while или until
continue - выполнение следующей итерации цикла for, while или until
echo - вывод аргументов, разделенных пробелами, на стандартное устройство вывода
exit - выход из оболочки
export - отмечает аргументы как переменные для передачи в дочерние процессы в среде
hash - запоминает полные имена путей команд, указанных в качестве аргументов, чтобы не искать их при следующем обращении
kill - посылает сигнал завершения процессу
pwd - выводит текущий рабочий каталог
read - читает строку из ввода оболочки и использует ее для присвоения значений указанным переменным.
return - заставляет функцию оболочки выйти с указанным значением
shift - перемещает позиционные параметры налево
test - вычисляет условное выражение
times - выводит имя пользователя и системное время, использованное оболочкой и ее потомками
trap - указывает команды, которые должны выполняться при получении оболочкой сигнала
unset - вызывает уничтожение переменных оболочки
wait - ждет выхода из дочернего процесса и сообщает выходное состояние.

Зарезервированные переменные
$DIRSTACK - содержимое вершины стека каталогов
$EDITOR - текстовый редактор по умолчанию
$EUID - Эффективный UID. Если вы использовали программу su для выполнения команд от другого пользователя, то эта переменная содержит UID этого пользователя, в то время как...
$UID - ...содержит реальный идентификатор, который устанавливается только при логине.
$FUNCNAME - имя текущей функции в скрипте.
$GROUPS - массив групп к которым принадлежит текущий пользователь
$HOME - домашний каталог пользователя
$HOSTNAME - ваш hostname
$HOSTTYPE - архитектура машины.
$LC_CTYPE - внутренняя переменная, котороя определяет кодировку символов
$OLDPWD - прежний рабочий каталог
$OSTYPE - тип ОС
$PATH - путь поиска программ
$PPID - идентификатор родительского процесса
$SECONDS - время работы скрипта(в сек.)
$# - общее количество параметров переданных скрипту
$* - все аргументы переданыне скрипту(выводятся в строку)
$@ - тоже самое, что и предыдущий, но параметры выводятся в столбик
$! - PID последнего запущенного в фоне процесса
$$ - PID самого скрипта

Переменные и параметры скрипта
Приведу как пример небольшой пример, который мы разберем:

#!/bin/bash

# указываем где у нас хранится bash-интерпретатор
parametr1=$1 # присваиваем переменной parametr1 значение первого параметра скрипта
noscript_name=$0 #п рисваиваем переменной noscript_name значение имени скрипта

echo "Вы запустили скрипт с именем $noscript_name и параметром $parametr1" # команда echo выводит определенную строку, обращение к переменным осуществляется через $имя_переменной.

echo 'Вы запустили скрипт с именем $noscript_name и параметром $parametr1' # здесь мы видим другие кавычки, разница в том, что в одинарных кавычках не происходит подстановки переменных.

exit 0 #Выход с кодом 0 (удачное завершение работы скрипта)


Результат выполнения скрипта:
ite@ite-desktop:~$ ./test.sh qwerty
Вы запустили скрипт с именем ./test.sh и параметром qwerty
Вы запустили скрипт с именем $noscript_name и параметром $parametr1

👉 @i_linux
👍31
This media is not supported in your browser
VIEW IN TELEGRAM
Relax-and-Recover

Решение для аварийного восстановления и миграции систем на новое железо под управлением Linux (ср. mksysb,
ignite)

Relax-and-Recover создает загрузочный образ. Этот образ может переразметить систему. После этого запускается восстановление из резервной копии. Возможно восстановление на другое оборудование. Поэтому Relax-and-Recover можно использовать и как инструмент миграции.

В настоящее время Relax-and-Recover поддерживает различные загрузочные носители (включая ISO, PXE, ленту OBDR, USB или eSATA), разнообразные сетевые протоколы (включая sftp, ftp, http, nfs, cifs), а также множество стратегий резервного копирования (включая IBM TSM, CommVault, Micro Focus Data Protector, Symantec NetBackup, Bareos, Bacula, rsync, Borg).

Решение Relax-and-Recover было разработано для простой настройки, не требует обслуживания и готово прийти на помощь в случае бедствия. Его характер "установил и забыл" устраняет любые оправдания для отсутствия решения по аварийному восстановлению.

http://relax-and-recover.org/

https://github.com/rear/rear

👉 @i_linux
👍3
Зайд Менк, 17-летний студент из Зимбабве, потратил более 3 месяцев на создание масштабной модели Манхэттена из переработанных компьютерных деталей.

👉 @i_linux
🔥4👍3