Пять GitHub проектов, которые помогут вам стать лучшим инженером DevOps
1. How they SRE
Подборка общедоступных ресурсов о том, как технологические и технически подкованные организации по всему миру практикуют Site Reliability Engineering (SRE).
https://github.com/upgundecha/howtheysre
2. Awesome Scalability
Паттерны масштабируемых, надежных и производительных крупномасштабных систем
https://github.com/binhnguyennus/awesome-scalability
3. DevOps Exercises
Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP, DNS, Elastic, Network, Virtualization. Вопросы для интервью по DevOps
https://github.com/bregman-arie/devops-exercises
4. Test your sysadmin skills
Сборник тестовых вопросов и ответов по Linux Sysadmin. Проверьте свои знания и навыки в различных областях с помощью этих вопросов и ответов.
https://github.com/trimstray/test-your-sysadmin-skills
5. Awesome Site Reliability Engineering
Составленный список ресурсов по надежности сайта и производственному инжинирингу.
https://github.com/dastergon/awesome-sre
👉 @i_linux
1. How they SRE
Подборка общедоступных ресурсов о том, как технологические и технически подкованные организации по всему миру практикуют Site Reliability Engineering (SRE).
https://github.com/upgundecha/howtheysre
2. Awesome Scalability
Паттерны масштабируемых, надежных и производительных крупномасштабных систем
https://github.com/binhnguyennus/awesome-scalability
3. DevOps Exercises
Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP, DNS, Elastic, Network, Virtualization. Вопросы для интервью по DevOps
https://github.com/bregman-arie/devops-exercises
4. Test your sysadmin skills
Сборник тестовых вопросов и ответов по Linux Sysadmin. Проверьте свои знания и навыки в различных областях с помощью этих вопросов и ответов.
https://github.com/trimstray/test-your-sysadmin-skills
5. Awesome Site Reliability Engineering
Составленный список ресурсов по надежности сайта и производственному инжинирингу.
https://github.com/dastergon/awesome-sre
👉 @i_linux
👍1
Media is too big
VIEW IN TELEGRAM
RAID массивы. Уровни 0 1 5 6 10. Что такое RAID и как он работает
00:00 Вступление
00:46 RAID 0
02:42 RAID 1
04:40 RAID 5
07:59 RAID 6
09:25 RAID 10
11:32 Сравнение уровней RAID
👉 @i_linux
00:00 Вступление
00:46 RAID 0
02:42 RAID 1
04:40 RAID 5
07:59 RAID 6
09:25 RAID 10
11:32 Сравнение уровней RAID
👉 @i_linux
👍4
✨ Автоматическая архивация логов старше 7 дней ✨
Когда у вас на сервере копятся старые логи, они занимают всё больше места. Этот простой Bash-скрипт поможет автоматически архивировать и удалять файлы старше 7 дней:
Как использовать
1. Сохраните скрипт, например, как
2. Настройте cron-задачу, чтобы запускать его ежедневно в полночь. Введите
🔧 Пояснения
*
*
* Архивы сохраняются в
👉 @i_linux
Когда у вас на сервере копятся старые логи, они занимают всё больше места. Этот простой 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.
Комманды в видео:
👉 @i_linux
Настройка Software RAID при установке Ubuntu Server 20.04.
Комманды в видео:
cat /proc/mdstat | Просмотр состояния RAIDfdisk -l | Простомотр дисков и разделовmdadm --add /dev/md1 /dev/sda2 | Добавление разделов (partition) в RAIDsfdisk -d /dev/sda | sfdisk /dev/sdb | Клонирование разделов с диска sda на sdbgrub-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
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
Команда findmnt
Это простая утилита командной строки, используемая для отображения списка подключенных файловых систем или поиска файловой системы в /etc/fstab, /etc/mtab или /proc/self/ mountinfo.
Для отображения списка подключенных файловых систем, выполните в командной строке следующую команду.
По умолчанию команда findmnt отображает файловые системы в древовидном формате.
Чтобы отобразить информацию в виде обычного списка, используйте параметр -l, как показано ниже
Можно выбрать отображение файловых систем только определенного типа, используя параметр командной строки -t, за которым следует тип файловой системы, такой как XFS или EXT4.
Поиск файловой системы, используя точку монтирования.
Например, следующая команда отображает все файловые системы /etc/fstab, где каталогом точки монтирования является /mnt/external/disk2.
или
Выводим все файловые системы /etc/fstab и преобразовываем теги LABEL = и UUID = в реальные имена устройств, добавьте ключ – –evaluate
Отобразить только точку монтирования, в которой смонтирована файловая система с меткой «/ boot» или «/», используйте следующую команду.
Findmnt также позволяет отслеживать действия по монтированию, размонтированию, перемонтированию и перемещению каталога, например, в /mnt/test.
Если вы хотите больше информации в выводе, используйте ключ –verbose.
👉 @i_linux
Это простая утилита командной строки, используемая для отображения списка подключенных файловых систем или поиска файловой системы в /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
👍3❤1
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
Переменные в строке 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
👍3❤1
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
Решение для аварийного восстановления и миграции систем на новое железо под управлением 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
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Кремниевые Титаны. Часть 2
#11: Sinclair Research
#12: 3Dfx [Часть 1]
#13: 3Dfx [Часть 2]
#14: Почему не получилось с 3DO
#15: Коротко про AMD
#16: Creative Sound Blaster
#17: Легенда ASUS
#18: Microsoft
#19: Foxconn
#20: Matrox
Часть 1 https://news.1rj.ru/str/i_linux/563
источник
👉 @i_linux
#11: Sinclair Research
#12: 3Dfx [Часть 1]
#13: 3Dfx [Часть 2]
#14: Почему не получилось с 3DO
#15: Коротко про AMD
#16: Creative Sound Blaster
#17: Легенда ASUS
#18: Microsoft
#19: Foxconn
#20: Matrox
Часть 1 https://news.1rj.ru/str/i_linux/563
источник
👉 @i_linux
👍3❤1
Зайд Менк, 17-летний студент из Зимбабве, потратил более 3 месяцев на создание масштабной модели Манхэттена из переработанных компьютерных деталей.
👉 @i_linux
👉 @i_linux
🔥4👍3