DRIVE_TO_MOUNT
— путь к локальному диску, который нужно смонтировать (например, /dev/sda1
).PATH_WHERE_MOUNT
— абсолютный путь к точке монтирования.MOUNT_TYPE
— тип файловой системы, который будет использоваться в опции -t
команды mount.crontab
.Please open Telegram to view this post
VIEW IN TELEGRAM
👍8✍3🔥3
— Пентесты Wi-Fi, камер, сайтов
— OSINT и социальная инженерия
— Техники анонимности и обход слежки
— Сливы и разборы реальных утечек
— Инструменты: Metasploit, Nmap, Kali Linux
https://t.me/+jBip_a1-JM9jNjFi
Please open Telegram to view this post
VIEW IN TELEGRAM
✍1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5✍3🔥3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9✍3🔥3
🚀 Почему пользователи платят $30 за простой конвертер картинок? Давайте разберемся.
Кирилл из комьюнити создал простой продукт всего за один месяц, внедрив метод, которой уже принес результат.
Как он это сделал:
1️⃣ Анализ спроса: через поисковые запросы он увидел, что много людей ищут конвертацию «HEIC to JPG».
2️⃣ Фокус на главном: удалил всё лишнее, оставив только функцию конвертации в один клик.
3️⃣ Скорость внедрения: за 30 дней сделал запуск без перфекционизма.
Посты про конвертер (ч.1, ч.2)
Что из этого получилось:
— Доход $500 в месяц с тенденцией роста.
— Более $10K заработано на конвертере.
— $0 на рекламу, всего $40 в месяц на сервер.
Выводы:
— Люди платят за удобство, даже если есть бесплатные аналоги.
— Продукт функционирует автоматически с минимальной поддержкой.
— Быстрая и экономичная проверка идеи может быть успешной.
Результаты из комьюнити билдеров:
— Более 400 запусков по этой методике.
— Некоторые продукты уже набрали от 50К до 100К+ пользователей.
Присоединяйтесь к @its_capitan — следите за процессом разработки, продвижения и узнайте, сколько можно заработать на таких микро-продуктах.
Реклама: ИП Зуев Игорь Владимирович, ИНН: 360408359441, Erid: 2VtzqwBXght
Кирилл из комьюнити создал простой продукт всего за один месяц, внедрив метод, которой уже принес результат.
Как он это сделал:
1️⃣ Анализ спроса: через поисковые запросы он увидел, что много людей ищут конвертацию «HEIC to JPG».
2️⃣ Фокус на главном: удалил всё лишнее, оставив только функцию конвертации в один клик.
3️⃣ Скорость внедрения: за 30 дней сделал запуск без перфекционизма.
Посты про конвертер (ч.1, ч.2)
Что из этого получилось:
— Доход $500 в месяц с тенденцией роста.
— Более $10K заработано на конвертере.
— $0 на рекламу, всего $40 в месяц на сервер.
Выводы:
— Люди платят за удобство, даже если есть бесплатные аналоги.
— Продукт функционирует автоматически с минимальной поддержкой.
— Быстрая и экономичная проверка идеи может быть успешной.
Результаты из комьюнити билдеров:
— Более 400 запусков по этой методике.
— Некоторые продукты уже набрали от 50К до 100К+ пользователей.
Присоединяйтесь к @its_capitan — следите за процессом разработки, продвижения и узнайте, сколько можно заработать на таких микро-продуктах.
Реклама: ИП Зуев Игорь Владимирович, ИНН: 360408359441, Erid: 2VtzqwBXght
👍4
Например, при вводе
rm -rf /
программа покажет предупреждение и потребует подтвердить удаление.Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2
❕ Приглашаем на урок по работе с чувствительными данными в Kubernetes-кластере!
⏺ Открытый урок «K8S + Vault — как получать секреты?»
Бесплатно 17 июня в 20:00 МСК.
Поймете, как организовать безопасное и масштабируемое взаимодействие между Kubernetes и HashiCorp Vault. Разберём подход dynamic secrets и инструмент External Secrets Operator для интеграции секретов из Vault в кластер.
На уроке вы узнаете:
- как Kubernetes работает с секретами по умолчанию и его ограничения;
- способы интеграции Kubernetes и Vault;
- что такое External Secrets Operator и почему его выбирают для production-сред;
- пошаговую схему подключения Vault к K8s.
➡️ Регистрация на вебинар
Урок в рамках старта курса «Инфраструктурная платформа на основе Kubernetes», ты можешь воспользоваться 🎁 бонусным промокодом Kuber_06 при покупке курса.
#реклама
О рекламодателе
⏺ Открытый урок «K8S + Vault — как получать секреты?»
Бесплатно 17 июня в 20:00 МСК.
Поймете, как организовать безопасное и масштабируемое взаимодействие между Kubernetes и HashiCorp Vault. Разберём подход dynamic secrets и инструмент External Secrets Operator для интеграции секретов из Vault в кластер.
На уроке вы узнаете:
- как Kubernetes работает с секретами по умолчанию и его ограничения;
- способы интеграции Kubernetes и Vault;
- что такое External Secrets Operator и почему его выбирают для production-сред;
- пошаговую схему подключения Vault к K8s.
➡️ Регистрация на вебинар
Урок в рамках старта курса «Инфраструктурная платформа на основе Kubernetes», ты можешь воспользоваться 🎁 бонусным промокодом Kuber_06 при покупке курса.
#реклама
О рекламодателе
✍1
getopts
— это встроенный в любой POSIX-совместимый Linux/Unix-shell мини-парсер аргументов. Один shebang — и у вас CLI-утилита без единой внешней зависимости. В статье рассмотрим, как выжать из getopts
максимум, где он спотыкается и когда пора переехать на getopt
или Argbash.--long-option
. Но и это решаемо.#!/usr/bin/env sh
set -euo pipefail
IFS='
'
usage() {
cat <<EOF
Usage: ${0##*/} [-a] [-b ARG] file...
-a : включить дополнительный режим
-b ARG : передать аргумент
EOF
exit 2
}
# двоеточие в начале → тихий режим ошибок
while getopts ":ab:" opt; do
case "$opt" in
a) flag_a=true ;;
b) param_b=$OPTARG ;;
:) echo "Опция -$OPTARG требует аргумента" >&2; usage ;;
\?) echo "Неизвестная опция -$OPTARG" >&2; usage ;;
esac
done
shift "$((OPTIND-1))" # убираем уже разобранные параметры
optstring
переводит парсер в «silent mode» — ошибки по argv
приходится ловить самостоятельно, зато можно отдать лайтовый help
, а не cryptic usage
из недр шелла. Про необходимость shift "$((OPTIND-1))"
задокументировано даже в posix man-pages — так убираем из $@
опции и получаем чистый список позиционных аргументов.getopts
умеет распаковывать слипшиеся флаги: -abc
интерпретируется как -a -b -c
. Если после символа ожидается аргумент, разбор прекращается ровно там:# optstring="a:b"
$ my.sh -ac # OK: -a, -c как позиционка
$ my.sh -abx # -a, -b x
$ my.sh -ab # ошибка: -b ждёт аргумент
Edge-case
— отрицательные числа (-5)
внезапно принимаются за флаг. Начинайте список ожидаемых опций с --
, тогда getopts
прекратит работу при виде первого не-флага, и минусы в числах останутся нетронутыми.Частый прием: сначала через
case "$1"
ловим варианты --help
, --version
, --long=value
, а затем отдаём остаток в getopts
— так не ломаем POSIX-совместимость и не тащим GNU getopt.while [ $# -gt 0 ]; do
case "$1" in
--help) usage ;;
--output=*) opt_o=${1#*=}; shift ;;
--) shift; break ;; # двойное тире — конец опций
-*) break ;; # короткие опции разберет getopts
*) break ;;
esac
done
# теперь классический getopts
while getopts ":o:f:" opt; do
...
done
shift "$((OPTIND-1))"
--verbose/-v
, или вообще YAML-конфиг после --config=path.yml
.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍4✍3😐1
Освой сети и командную строку с лучшими обучающими каналами
🤩 Network Admin - обучающий канал по сетевым технологиям
🤩 Network Admin | Guides - канал, где рассказывают полезную информацию про Windows/Linux
📱 BashTex - обучение работе с командной строкой
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1😐1
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9✍3👍3
.env
.cron
.find
(обычно она предустановлена в большинстве Linux-дистрибутивов)Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥5✍4
Hacking & InfoSec Base — канал действующего белого хакера. Подробные уроки по безопасности, эксплуатации уязвимостей, социальной инженерии.
CyberGuard — полезные утилиты, софт и литература по информационной безопасности и Хакингу.
linux administration — всё, что необходимо знать о Linux и его дистрибутивах.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
logrotate
, но это не так. Да, ротация логов как раз и была придумана и даже демон для нее, что бы старые логи не накапливались, а проходили ротацию и тем самым не засоряли систему. Но не все так радужно и существует куча служб и прочих задач, которые скапливают логи и никак за их количеством не следят. Более того, даже если настроить ротацию таким логам, то ничего не выйдет.find
с вот такими опциями:find /var/log/* -type f -mtime +182 -exec rm {} \;
/var/log/*
– место для поиска и все папки и подпапки-type f
– в поиск должны попасть только файлы, папки удалять не стоит, да же если они старые, хотя все опционально-mtime +182
– искать файлы будем модифицированные старше 182 дней назад-exec rm {}
– ну а эта опция удалит все что подпадет под поиск, для теста можно ее удалить и посмотреть что будет удалено.nano rm_old.sh
:#!/bin/sh
#Задаем переменные
Day=182
log_path="/var/log/"
#Найти и удалить файлы
find $log_path* -type f -mtime +$Day -exec rm {} \;
echo 'файлы журнала старше 30 дней удалены из $log_path'
chmod +x rm_old.sh
crontab -e
и вписываем следующее:0 10 * * * /path_to_script/rm_old.sh >/dev/null 2>&1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥6✍3😐1
Устали от «хайповых» курсов?
RECURA — канал с реально работающими инструментами и знаниями:
📚Подборки курсов, сборники, шпаргалки, лайфхаки
💻 Python и Go для автоматизации и DevOps
🐧 Linux + Bash: решения для реальных проектов
🐳 Docker, Kubernetes и CI/CD — практические гайды
🛠 Утилиты, заменяющие кучу софта
🔐 OSINT и этичный хакинг: практика и разборы
Присоединяйся и получай то, что действительно нужно!
RECURA — канал с реально работающими инструментами и знаниями:
📚Подборки курсов, сборники, шпаргалки, лайфхаки
💻 Python и Go для автоматизации и DevOps
🐧 Linux + Bash: решения для реальных проектов
🐳 Docker, Kubernetes и CI/CD — практические гайды
🛠 Утилиты, заменяющие кучу софта
🔐 OSINT и этичный хакинг: практика и разборы
Присоединяйся и получай то, что действительно нужно!
✍3👍3🔥1
bash permission denied
. Эта ошибка выводится, даже если вы использовали sudo
.sudo
есть, значит права суперпользователя получены и все должно работать но тут все не так просто. В этой статье мы рассмотрим почему возникает ошибка bash permission denied
и как ее обойти.sudo echo "nameserver 8.8.8.8" >> /etc/resolv.conf
/etc/resolv.conf
получаете ошибку bash: /etc/resolv.conf permission denied
bash linux
. Так происходит потому что вы запускаете с правами суперпользователя утилиту echo
и она честно выводит вашу строку в стандартный вывод bash с правами суперпользователя. Но bash запущен от обычного пользователя, и когда интерпретатор bash пытается записать полученную строчку в системный файл, естественно, что вы получите ошибку.tee
, которая записывает стандартный вывод в файл или запустить саму оболочку от имени суперпользователя. echo 'текст' | sudo tee -a /путь/к/файлу
echo 'nameserver 8.8.8.8' | sudo tee -a /etc/resolv.conf
sudo sh -c 'echo текст >> /путь/к/файлу'
sudo bash -c 'echo текст >> /путь/к/файлу'
sudo bash -c 'echo nameserver 8.8.8.8 >> /etc/resolv.conf
~/.bashrc
:sudoe() {
[[ "$#" -ne 2 ]] && echo "Usage: sudoe <text> <file>" && return 1
echo "$1" | sudo tee --append "$2" > /dev/null
}
sudoe 'текст' >> /путь/к/файлу
sudoe "nameserver 8.8.8.8" > /etc/resolv.conf
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥6✍3
Как DevOps-инженеру сэкономить часы работы и избежать ошибок с помощью AI-инструментов
▶️ воркшоп о учебного центра Слёрм с Виктором Чаплыгиным, Senior Engineer в международном GameDev холдинге.
Что будет на воркшопе:
Теория: кратко о том, как работают LLM в контексте разработки и эксплуатации. Обзор Cursor IDE — AI-интегрированная IDE с поддержкой кода и терминала.
Практика:
🔹 Настройка Cursor IDE — подготовка среды для продуктивной работы с AI;
🔹 Создание и отладка IaC (Kubernetes YAML, Ansible) с помощью AI-ассистентов: выявление и исправление ошибок;
🔹 Генерация понятной и структурированной документации к проектам с помощью AI;
🔹 Разбор реальных кейсов и работа с командной строкой: исправление, пояснение, улучшение команд и манифестов.
А ещё — личный опыт и лучшие практики применения GPT-ассистентов для повседневных DevOps-задач, от написания инфраструктуры до исправления ошибок и генерации документации.
Когда: 5 июля 2025 года 📆
Узнать подробности и занять место на воркшопе — через бота 📌
▶️ воркшоп о учебного центра Слёрм с Виктором Чаплыгиным, Senior Engineer в международном GameDev холдинге.
Что будет на воркшопе:
Теория: кратко о том, как работают LLM в контексте разработки и эксплуатации. Обзор Cursor IDE — AI-интегрированная IDE с поддержкой кода и терминала.
Практика:
🔹 Настройка Cursor IDE — подготовка среды для продуктивной работы с AI;
🔹 Создание и отладка IaC (Kubernetes YAML, Ansible) с помощью AI-ассистентов: выявление и исправление ошибок;
🔹 Генерация понятной и структурированной документации к проектам с помощью AI;
🔹 Разбор реальных кейсов и работа с командной строкой: исправление, пояснение, улучшение команд и манифестов.
А ещё — личный опыт и лучшие практики применения GPT-ассистентов для повседневных DevOps-задач, от написания инфраструктуры до исправления ошибок и генерации документации.
Когда: 5 июля 2025 года 📆
Узнать подробности и занять место на воркшопе — через бота 📌
🔥2
#! /bin/bash
# Сброс всех переменных, которые может использовать система
# Очистка экрана терминала
clear
unset tecreset os architecture kernelrelease internalip externalip nameserver loadaverage
while getopts iv name
do
case $name in
i)iopt=1;;
v)vopt=1;;
*)echo "Invalid arg";;
esac
done
if [[ ! -z $iopt ]]
then
{
wd=$(pwd)
basename "$(test -L "$0" && readlink "$0" || echo "$0")" > /tmp/scriptname
scriptname=$(echo -e -n $wd/ && cat /tmp/scriptname)
su -c "cp $scriptname /usr/bin/monitor" root && echo "Congratulations! Script Installed, now run monitor Command" || echo "Installation failed"
}
fi
if [[ ! -z $vopt ]]
then
{
echo -e
}
fi
if [[ $# -eq 0 ]]
then
{
# Определение переменной tecreset
tecreset=$(tput sgr0)
# Проверка подключения к Интернету
ping -c 1 google.com &> /dev/null && echo -e '\E[32m'"Internet: $tecreset Connected" || echo -e '\E[32m'"Internet: $tecreset Disconnected"
# Определение типа ОС
os=$(uname -o)
echo -e '\E[32m'"Operating System Type :" $tecreset $os
# Определение версии и названия выпуска ОС
cat /etc/os-release | grep 'NAME\|VERSION' | grep -v 'VERSION_ID' | grep -v 'PRETTY_NAME' > /tmp/osrelease
echo -n -e '\E[32m'"OS Name :" $tecreset && cat /tmp/osrelease | grep -v "VERSION" | cut -f2 -d\"
echo -n -e '\E[32m'"OS Version :" $tecreset && cat /tmp/osrelease | grep -v "NAME" | cut -f2 -d\"
# Проверка архитектуры
architecture=$(uname -m)
echo -e '\E[32m'"Architecture :" $tecreset $architecture
# Проверка выпуска ядра
kernelrelease=$(uname -r)
echo -e '\E[32m'"Kernel Release :" $tecreset $kernelrelease
# Определение имени хоста
echo -e '\E[32m'"Hostname :" $tecreset $HOSTNAME
# Определение внутреннего IP
internalip=$(hostname -I)
echo -e '\E[32m'"Internal IP :" $tecreset $internalip
# Определение публичного IP
externalip=$(curl -s ipecho.net/plain;echo)
echo -e '\E[32m'"External IP : $tecreset "$externalip
# Проверка DNS
nameservers=$(cat /etc/resolv.conf | sed '1 d' | awk '{print $2}')
echo -e '\E[32m'"Name Servers :" $tecreset $nameservers
# Проверка вошедших в систему пользователей
who>/tmp/who
echo -e '\E[32m'"Logged In users :" $tecreset && cat /tmp/who
# Мониторинг использования ОЗУ и SWAP
free -h | grep -v + > /tmp/ramcache
echo -e '\E[32m'"Ram Usages :" $tecreset
cat /tmp/ramcache | grep -v "Swap"
echo -e '\E[32m'"Swap Usages :" $tecreset
cat /tmp/ramcache | grep -v "Mem"
# Мониторинг использование диска
df -h| grep 'Filesystem\|/dev/sda*' > /tmp/diskusage
echo -e '\E[32m'"Disk Usages :" $tecreset
cat /tmp/diskusage
# Проверка средней нагрузки
loadaverage=$(top -n 1 -b | grep "load average:" | awk '{print $10 $11 $12}')
echo -e '\E[32m'"Load Average :" $tecreset $loadaverage
# Определение длительности сеанса работы ОС
tecuptime=$(uptime | awk '{print $3,$4}' | cut -f1 -d,)
echo -e '\E[32m'"System Uptime Days/(HH:MM) :" $tecreset $tecuptime
# Сброс значений переменных
unset tecreset os architecture kernelrelease internalip externalip nameserver loadaverage
# Удаление временных файлов
rm /tmp/osrelease /tmp/who /tmp/ramcache /tmp/diskusage
}
fi
shift $(($OPTIND -1))
chmod 755 monitor.sh
./monitor.sh -i
root
. После завершения установки скрипта, для его запуска требуется просто выполнить команду monitor
./path/to/script/monitor.sh
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥8✍3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥3✍2😐1