🤔 Как запросить ввод Yes/No/Cancel в shell скрипте?
Хочешь сделать свои скрипты более интерактивными? Узнай, как легко запросить ввод от пользователя в Linux с помощью команд read и select.
Основная информация:
1. Использование команды read:
Команда read позволяет запрашивать ввод от пользователя. Вот пример, как это сделать:
Этот скрипт будет повторять запрос, пока пользователь не введет "yes" или "no".
2. Использование команды select:
select упрощает выбор, автоматически отображая доступные варианты:
Здесь пользователь выбирает номер, соответствующий его выбору.
3. Локализация ввода:
Для поддержки разных языков можно использовать locale:
Используя команды read и select, ты можешь сделать свои скрипты более интерактивными и удобными для пользователей. Попробуй сам и убедись в их эффективности!
🌳 Ветка: https://stackoverflow.com/questions/226703/how-do-i-prompt-for-yes-no-cancel-input-in-a-linux-shell-script
📩 Завтра: Топ команды для DevOps: Что спрашивают на собеседованиях
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Секреты массового управления пользователями и группами в Linux
🧠 - Не трать время на логи! Вот как найти все медленные запросы за 1 минуту
🧠 - Как ускорить MySQL? Простые советы, чтобы твой сервер летал, как на стероидах
#stackoverflow @LinuxSkill #Linux #ShellScripting #UserInput #SysAdmin #DevOps
Хочешь сделать свои скрипты более интерактивными? Узнай, как легко запросить ввод от пользователя в Linux с помощью команд read и select.
Основная информация:
1. Использование команды read:
Команда read позволяет запрашивать ввод от пользователя. Вот пример, как это сделать:
while true; do
read -p "Do you wish to install this program? " yn
case $yn in
[Yy]* ) make install; break;;
[Nn]* ) exit;;
* ) echo "Please answer yes or no.";;
esac
done
Этот скрипт будет повторять запрос, пока пользователь не введет "yes" или "no".
2. Использование команды select:
select упрощает выбор, автоматически отображая доступные варианты:
echo "Do you wish to install this program?"
select yn in "Yes" "No"; do
case $yn in
Yes ) make install; break;;
No ) exit;;
esac
done
Здесь пользователь выбирает номер, соответствующий его выбору.
3. Локализация ввода:
Для поддержки разных языков можно использовать locale:
set -- $(locale LC_MESSAGES)
yesexpr="$1"; noexpr="$2"; yesword="$3"; noword="$4"
while true; do
read -p "Install (${yesword} / ${noword})? " yn
if [[ "$yn" =~ $yesexpr ]]; then make install; exit; fi
if [[ "$yn" =~ $noexpr ]]; then exit; fi
echo "Answer ${yesword} / ${noword}."
done
Используя команды read и select, ты можешь сделать свои скрипты более интерактивными и удобными для пользователей. Попробуй сам и убедись в их эффективности!
🌳 Ветка: https://stackoverflow.com/questions/226703/how-do-i-prompt-for-yes-no-cancel-input-in-a-linux-shell-script
📩 Завтра: Топ команды для DevOps: Что спрашивают на собеседованиях
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Секреты массового управления пользователями и группами в Linux
🧠 - Не трать время на логи! Вот как найти все медленные запросы за 1 минуту
🧠 - Как ускорить MySQL? Простые советы, чтобы твой сервер летал, как на стероидах
#stackoverflow @LinuxSkill #Linux #ShellScripting #UserInput #SysAdmin #DevOps
Stack Overflow
How do I prompt for Yes/No/Cancel input in a Linux shell script?
I want to pause input in a shell script, and prompt the user for choices.
The standard Yes, No, or Cancel type question.
How do I accomplish this in a typical bash prompt?
The standard Yes, No, or Cancel type question.
How do I accomplish this in a typical bash prompt?
👍16
🚀 Почему бенчмарки в bash дают разные результаты?
Привет, повелитель терминала! 🧙♂️
Запустил простой код:
А время выполнения прыгает от 0.9 до 2.2 секунд? Почему?
Ответ: CPU Frequency Scaling.
Процессор снижает частоту при простое и повышает под нагрузкой.
Из-за этого первое выполнение скрипта медленнее последующих.
Решение:
1. Зафиксировать максимальную частоту ядра:
2. Закрепить выполнение скрипта за одним ядром:
3. После теста вернуть режим энергосбережения:
Бонус: Делай "разогревочный" прогон перед реальными замерами и старайся минимизировать фоновую нагрузку.
🌐 Источник: https://unix.stackexchange.com/questions/777424/why-are-my-benchmark-times-not-repeatable-even-for-a-cpu-bound-task
📩 Завтра: Как узнать ВСЁ о железе и системе в Linux за 5 минут
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Мастер-класс по iptables: вставляем, заменяем и удаляем правила
🧠 - Настраиваем iptables с нуля: Полный гайд по фильтрации пакетов
🧠 - Раскрой тайны владения файлами с namei -o!
#stackoverflow @LinuxSkill #linux #bash #benchmark #performance
Привет, повелитель терминала! 🧙♂️
Запустил простой код:
bash -c 'x=0; time while ((x < 999999)); do ((++x)); done'
А время выполнения прыгает от 0.9 до 2.2 секунд? Почему?
Ответ: CPU Frequency Scaling.
Процессор снижает частоту при простое и повышает под нагрузкой.
Из-за этого первое выполнение скрипта медленнее последующих.
Решение:
1. Зафиксировать максимальную частоту ядра:
sudo cpupower -c 0 frequency-set -g performance
2. Закрепить выполнение скрипта за одним ядром:
taskset -c 0 ./your-benchmark
3. После теста вернуть режим энергосбережения:
sudo cpupower -c 0 frequency-set -g powersave
Бонус: Делай "разогревочный" прогон перед реальными замерами и старайся минимизировать фоновую нагрузку.
🌐 Источник: https://unix.stackexchange.com/questions/777424/why-are-my-benchmark-times-not-repeatable-even-for-a-cpu-bound-task
📩 Завтра: Как узнать ВСЁ о железе и системе в Linux за 5 минут
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Мастер-класс по iptables: вставляем, заменяем и удаляем правила
🧠 - Настраиваем iptables с нуля: Полный гайд по фильтрации пакетов
🧠 - Раскрой тайны владения файлами с namei -o!
#stackoverflow @LinuxSkill #linux #bash #benchmark #performance
Unix & Linux Stack Exchange
Why are my benchmark times not repeatable, even for a CPU-bound task?
I'm running some benchmarks on my Linux desktop/laptop computer, but I'm not getting reliable results. I'm running a CPU-intensive task that does negligible I/O and doesn't use much RAM. My compute...
👍17🔥1
🚨 Процесс с неизвестным именем грузит CPU на 25000%! Что происходит?
Привет, повелитель терминала! На одном из серверов Linux обнаружили странный процесс:
- Имя вроде
- Процесс запущен от
- CPU загружено на 25369% (!)
- Файл процесса уже удалён:
Это может быть майнер или вредоносная программа. Простое перезагружение не решает проблему: процесс появляется снова.
🔍 Что делать:
1. Проверить родителя процесса:
2. Узнать командную строку процесса:
3. Скопировать бинарник для анализа:
4. Безопасно изучить его содержимое:
5. Проверить открытые файлы:
6. Изучить логи на момент запуска процесса:
📌 Важно: при компрометации — лучше переустановить систему с чистого образа!
🌐 Источник: https://unix.stackexchange.com/questions/782519/high-cpu-usage-by-process-with-obfuscated-name-on-linux-server-potential-attac
📩 Завтра: Как узнать ВСЁ о железе и системе в Linux за 5 минут
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Неожиданные секреты Linux: 12 утилит, которые спасут твой сервер!
🧠 - Открой для себя 15 малоизвестных команд LINUX, которые изменят твою жизнь
🧠 - Как удалить экспортированную переменную окружения в Linux?
#stackoverflow @LinuxSkill #Linux #Security #Malware #CPU #Root
Привет, повелитель терминала! На одном из серверов Linux обнаружили странный процесс:
- Имя вроде
89cdb92b, потом меняется на другое (ac1e4262)- Процесс запущен от
root- CPU загружено на 25369% (!)
- Файл процесса уже удалён:
/proc/<PID>/exe → (deleted)Это может быть майнер или вредоносная программа. Простое перезагружение не решает проблему: процесс появляется снова.
🔍 Что делать:
1. Проверить родителя процесса:
pstree -sap <PID>
2. Узнать командную строку процесса:
ps -o args -p <PID>
3. Скопировать бинарник для анализа:
cp /proc/<PID>/exe /tmp/suspect_binary
4. Безопасно изучить его содержимое:
strings /tmp/suspect_binary
5. Проверить открытые файлы:
lsof -p <PID>
6. Изучить логи на момент запуска процесса:
journalctl -S 'YYYY-mm-dd HH:MM'
📌 Важно: при компрометации — лучше переустановить систему с чистого образа!
🌐 Источник: https://unix.stackexchange.com/questions/782519/high-cpu-usage-by-process-with-obfuscated-name-on-linux-server-potential-attac
📩 Завтра: Как узнать ВСЁ о железе и системе в Linux за 5 минут
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Неожиданные секреты Linux: 12 утилит, которые спасут твой сервер!
🧠 - Открой для себя 15 малоизвестных команд LINUX, которые изменят твою жизнь
🧠 - Как удалить экспортированную переменную окружения в Linux?
#stackoverflow @LinuxSkill #Linux #Security #Malware #CPU #Root
Unix & Linux Stack Exchange
High CPU usage by process with obfuscated name on Linux server – Potential attack?
We have been experiencing high load issues on our Linux server recently. Upon checking with the
top
command, we noticed an unknown process with a garbled command name (as shown in following images;
top
command, we noticed an unknown process with a garbled command name (as shown in following images;
👍22
🚨 Можешь ли ты использовать
👋 Привет, мастер терминала! Иногда нужно понять: можешь ли ты выполнять команды через
⚡ Базовая проверка:
-
- Команда мгновенно завершится с ошибкой, если пароль требуется.
🛡️ Проверка без влияния кэшированных сессий:
-
🔍 Защита от частных NOPASSWD правил:
- Проверяем реальное право на запуск любой команды без пароля.
🌐 Источник: https://unix.stackexchange.com/questions/777552/check-if-current-user-can-run-sudo-without-requiring-a-password
📩 Завтра: Что будет, если ввести неправильный пароль в sudo? (спойлер: тебя унизят)
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Производительность Nginx vs Apache: кто победит?
🧠 - Как измерить время выполнения программы в Linux?
🧠 - Осторожно: Как не стать жертвой сниффинга паролей на Linux!
#stackoverflow @LinuxSkill #linux #bash #sudo #shell #security
sudo без пароля? Проверь за 5 секунд!👋 Привет, мастер терминала! Иногда нужно понять: можешь ли ты выполнять команды через
sudo без запроса пароля? Особенно важно для скриптов и автоматизации.⚡ Базовая проверка:
sudo -n true 2>/dev/null || exit 1
-
-n запрещает запрос пароля.- Команда мгновенно завершится с ошибкой, если пароль требуется.
🛡️ Проверка без влияния кэшированных сессий:
sudo -k
sudo -n true 2>/dev/null || exit 1
-
sudo -k очищает кэш пароля.🔍 Защита от частных NOPASSWD правил:
rand=$(mktemp /tmp/true.XXXXX)
cp /usr/bin/true "$rand"
sudo -n "$rand" 2>/dev/null && echo "Есть доступ" || echo "Нет доступа"
rm "$rand"
- Проверяем реальное право на запуск любой команды без пароля.
🌐 Источник: https://unix.stackexchange.com/questions/777552/check-if-current-user-can-run-sudo-without-requiring-a-password
📩 Завтра: Что будет, если ввести неправильный пароль в sudo? (спойлер: тебя унизят)
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Производительность Nginx vs Apache: кто победит?
🧠 - Как измерить время выполнения программы в Linux?
🧠 - Осторожно: Как не стать жертвой сниффинга паролей на Linux!
#stackoverflow @LinuxSkill #linux #bash #sudo #shell #security
Unix & Linux Stack Exchange
Check if current user can run sudo without requiring a password
I want to check if the current user running a BASH shell script has access to passwordless sudo or not. If they don't, I'd rather have the script exit rather than prompting them for a password.
👍12
🚀 Как за 1 минуту определить, чем управляется сеть в Linux?
Привет, мастер серверов! 👋
Сегодня разберём, как быстро понять, что именно рулит сетью на вашем Linux-сервере — без лишней магии и догадок!
🔍 Пошаговый чек:
1. Проверка старой школы —
2. Есть ли NetworkManager?
3. Активен ли systemd-networkd?
4. Ищем Netplan (обычно для облаков):
5. Быстрая проверка активных сетевых демонов:
✅ Если активно
✅ Если активен
✅ Если активен
✅ Если есть
🌐 Источник: https://unix.stackexchange.com/questions/785544/how-to-know-if-the-network-is-configured-through-etc-network-interfaces-networ
📩 Завтра: Почему set -e в bash может сломать тебе всё!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - 10 самых частых ошибок в Linux и как быстро их исправить
🧠 - Reverse Shell на практике: подключаемся к скрытому серверу за 1 минуту!
🧠 - Урок 4 — Почему case круче вложенных if в Bash
#stackoverflow #Linux #Network #SysAdmin #Networking #Debian #NetworkManager #Systemd #Netplan
Привет, мастер серверов! 👋
Сегодня разберём, как быстро понять, что именно рулит сетью на вашем Linux-сервере — без лишней магии и догадок!
🔍 Пошаговый чек:
1. Проверка старой школы —
ifupdown:systemctl status networking.service
2. Есть ли NetworkManager?
systemctl status NetworkManager
3. Активен ли systemd-networkd?
systemctl status systemd-networkd
4. Ищем Netplan (обычно для облаков):
ls /etc/netplan/
5. Быстрая проверка активных сетевых демонов:
networkctl status
nmcli general status
netplan status
✅ Если активно
/etc/network/interfaces + networking.service — значит у вас классическая схема через ifupdown. ✅ Если активен
NetworkManager — скорее всего десктоп или ноутбук. ✅ Если активен
systemd-networkd — модульная минималистичная конфигурация. ✅ Если есть
/etc/netplan/ — используется промежуточный слой Netplan.🌐 Источник: https://unix.stackexchange.com/questions/785544/how-to-know-if-the-network-is-configured-through-etc-network-interfaces-networ
📩 Завтра: Почему set -e в bash может сломать тебе всё!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - 10 самых частых ошибок в Linux и как быстро их исправить
🧠 - Reverse Shell на практике: подключаемся к скрытому серверу за 1 минуту!
🧠 - Урок 4 — Почему case круче вложенных if в Bash
#stackoverflow #Linux #Network #SysAdmin #Networking #Debian #NetworkManager #Systemd #Netplan
Unix & Linux Stack Exchange
How to know if the network is configured through /etc/network/interfaces, NetworkManager, Systemd or Netplan?
I recently installed Debian 12.7 on a fresh storage, this is a headless server with no desktop environment.
I checked the NetworkConfiguration documentation of Debian and I saw this:
4 ways to con...
I checked the NetworkConfiguration documentation of Debian and I saw this:
4 ways to con...
👍9🔥9
🚨 Почему
Привет, покоритель терминала! 👨💻👩💻
Многие думают, что
Терминальные эмуляторы — сложные программы. Если файл содержит хитро сформированные escape-последовательности, это может:
- зависнуть весь терминал,
- испортить буфер обмена через OSC 52,
- вызвать баги в системе.
Терминалы вроде GNOME Terminal или xterm исправили многие уязвимости, но 100% защиты нет. Особенно, если файл пришёл из сомнительного источника.
✅ Как безопасно просматривать файлы:
- Используй
- Открывай файлы через
- Никогда не доверяй логам и текстам из внешних источников.
🔒 В безопасности даже самые простые команды требуют внимательности!
🌐 Источник: https://unix.stackexchange.com/questions/780938/is-it-still-unsafe-to-cat-an-arbitrary-file
📩 Завтра: Быстрое обнаружение проблем в сети через массовый пинг
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Урок 5 — Функции Bash за 49 минут: основы, примеры, фишки
🧠 - Можешь ли ты использовать sudo без пароля? Проверь за 5 секунд!
🧠 - Что будет, если ввести неправильный пароль в sudo?
#stackoverflow #linux #bash #security #terminal #linuxskill
cat всё ещё опасен в 2025 году?Привет, покоритель терминала! 👨💻👩💻
Многие думают, что
cat — это безопасная команда для просмотра файлов. Но даже сегодня простое cat file может быть рискованным!Терминальные эмуляторы — сложные программы. Если файл содержит хитро сформированные escape-последовательности, это может:
- зависнуть весь терминал,
- испортить буфер обмена через OSC 52,
- вызвать баги в системе.
Терминалы вроде GNOME Terminal или xterm исправили многие уязвимости, но 100% защиты нет. Особенно, если файл пришёл из сомнительного источника.
✅ Как безопасно просматривать файлы:
- Используй
cat -v file — выводит управляющие символы видимыми.- Открывай файлы через
less (безопаснее для длинного вывода).- Никогда не доверяй логам и текстам из внешних источников.
🔒 В безопасности даже самые простые команды требуют внимательности!
🌐 Источник: https://unix.stackexchange.com/questions/780938/is-it-still-unsafe-to-cat-an-arbitrary-file
📩 Завтра: Быстрое обнаружение проблем в сети через массовый пинг
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Урок 5 — Функции Bash за 49 минут: основы, примеры, фишки
🧠 - Можешь ли ты использовать sudo без пароля? Проверь за 5 секунд!
🧠 - Что будет, если ввести неправильный пароль в sudo?
#stackoverflow #linux #bash #security #terminal #linuxskill
Unix & Linux Stack Exchange
Is it still unsafe to cat an arbitrary file?
I read this post today and the answers claimed that certain escape sequences could be dangerous in some terminals, this post also has people saying that it can even be unsafe to simply view log fil...
👍14🔥2
💣 Как можно случайно сломать систему, установив ПО вручную?
Привет, линуксоид! 👋
Кажется, что скачать программу с сайта и установить её вручную — это быстро и удобно. Но в Linux это может стоить работоспособности всей системы.
Когда ты устанавливаешь программы через:
-
- компиляцию из исходников
- .deb файлы вне репозиториев
⚡ ты обходишь пакетный менеджер (apt, dnf), и:
- система не отслеживает установку
- обновления и удаление могут стать проблемой
- легко получить конфликт версий библиотек
✅ Как безопасно устанавливать ПО:
- Использовать
- Для .deb-файлов —
- Избегать скриптов
- Размещать ручные установки в
Помни: пакетный менеджер — это твой друг в Linux. 🛡
🌐 Источник: https://unix.stackexchange.com/questions/782971/is-it-safe-to-install-programs-other-than-with-a-distros-package-manager
📩 Завтра: Как etckeeper спасает сервер от криворуких админов!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Линус Торвальдс — Человек, который придумал Linux [TED]
🧠 - Карта развития Linux-специалиста
🧠 - Операционная система - общие сведения
#stackoverflow #linux #security #package_manager #apt #bash #linuxskill
Привет, линуксоид! 👋
Кажется, что скачать программу с сайта и установить её вручную — это быстро и удобно. Но в Linux это может стоить работоспособности всей системы.
Когда ты устанавливаешь программы через:
-
curl | sh- компиляцию из исходников
- .deb файлы вне репозиториев
⚡ ты обходишь пакетный менеджер (apt, dnf), и:
- система не отслеживает установку
- обновления и удаление могут стать проблемой
- легко получить конфликт версий библиотек
✅ Как безопасно устанавливать ПО:
- Использовать
apt или официальные репозитории.- Для .deb-файлов —
sudo apt install ./file.deb (а не dpkg -i).- Избегать скриптов
curl | sh без проверки кода.- Размещать ручные установки в
/usr/local/ или $HOME/.local.Помни: пакетный менеджер — это твой друг в Linux. 🛡
🌐 Источник: https://unix.stackexchange.com/questions/782971/is-it-safe-to-install-programs-other-than-with-a-distros-package-manager
📩 Завтра: Как etckeeper спасает сервер от криворуких админов!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Линус Торвальдс — Человек, который придумал Linux [TED]
🧠 - Карта развития Linux-специалиста
🧠 - Операционная система - общие сведения
#stackoverflow #linux #security #package_manager #apt #bash #linuxskill
Unix & Linux Stack Exchange
Is it safe to install programs other than with a distro's package manager?
When I moved from Windows to Linux, I have been mercifully blessed with package managers. Most of the time, the official repositories of my distro (currently Debian 12) will have the package I need...
👍18🔥3
⚡ Как скопировать только изменённые файлы с помощью rsync?
Салют! Сегодня разберём одну крутую задачку! Когда работаешь с большими каталогами, часто возникает задача: обновить только изменённые файлы, не трогая новые.
И тут идеально подходит rsync!
Вот как скопировать только те файлы, которые уже есть в целевой папке и имеют изменения:
Расшифруем:
-
-
-
-
💡 Если не хотите замедлять процесс вычислением контрольных сумм, можно убрать
🌐 Источник: https://unix.stackexchange.com/questions/792314/using-rsync-to-copy-only-files-that-have-changed-not-files-that-are-new
📩 Завтра: ТОП-скрипты для автоматизации Linux задач
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - История UNIX. Часть 1
🧠 - История UNIX. Часть 2
🧠 - Установка и настройка Linux-системы: Astra
#stackoverflow #linux #rsync #bash #файлы #linuxskill
Салют! Сегодня разберём одну крутую задачку! Когда работаешь с большими каталогами, часто возникает задача: обновить только изменённые файлы, не трогая новые.
И тут идеально подходит rsync!
Вот как скопировать только те файлы, которые уже есть в целевой папке и имеют изменения:
rsync --checksum --existing -av source/ dest/
Расшифруем:
-
--checksum — сравнивать файлы по содержимому, а не по дате или размеру.-
--existing — копировать только те файлы, которые уже есть в dest, новые не создавать.-
-a — режим архивации (права, симлинки и т.д.).-
-v — подробный вывод.💡 Если не хотите замедлять процесс вычислением контрольных сумм, можно убрать
--checksum, но тогда сравнение будет идти только по дате и размеру.🌐 Источник: https://unix.stackexchange.com/questions/792314/using-rsync-to-copy-only-files-that-have-changed-not-files-that-are-new
📩 Завтра: ТОП-скрипты для автоматизации Linux задач
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - История UNIX. Часть 1
🧠 - История UNIX. Часть 2
🧠 - Установка и настройка Linux-системы: Astra
#stackoverflow #linux #rsync #bash #файлы #linuxskill
Unix & Linux Stack Exchange
Using rsync to copy only files that have changed, not files that are new
I've got two directories, call them "source" and "dest", that have some files in common. There are also a number of files present in one but not the other. I'd like to copy fi...
👍9🔥1
🔥 Как убивать скрипты в Linux после минуты тишины
Привет, исследователь Linux! Когда скрипт "зависает" и перестаёт выводить данные, сервер может ждать бесконечно... Как автоматически завершить такой скрипт, если нет вывода в течение 1 минуты?
Вот решение:
Пример запуска:
⚡ Пояснение:
- Если скрипт не выводит ничего 60 секунд, он будет автоматически убит.
- После остановки можно запускать следующий скрипт.
- Стандартные потоки stdout и stderr объединены.
🌐 Источник: https://unix.stackexchange.com/questions/789260/how-to-automatically-terminate-shell-scripts-after-1-minute-of-no-output
📩 Завтра: 10 навыков командной строки, которые ускорят твою работу в Linux
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Установка и настройка Linux-системы: Mint
🧠 - Установка и настройка Linux-системы: Kali
🧠 - Linux команды: ls, rm, mkdir, pwd, cd, echo
#stackoverflow #Linux #bash #скрипты #DevOps #администрирование #автоматизация
Привет, исследователь Linux! Когда скрипт "зависает" и перестаёт выводить данные, сервер может ждать бесконечно... Как автоматически завершить такой скрипт, если нет вывода в течение 1 минуты?
Вот решение:
output_timeout() (
set -o pipefail
export TIMEOUT=$1; shift
sh -c 'echo "$$"; exec stdbuf -oL "$@" 2>&1' sh "$@" | perl -ne '
BEGIN {
$SIG{ALRM} = sub {
warn "No output within $ENV{TIMEOUT} seconds, killing PID $pid";
kill "TERM", $pid;
}
}
alarm $ENV{TIMEOUT};
if (!$pid) {$pid = $_} else {print}'
)
Пример запуска:
output_timeout 60 ./s1.sh
output_timeout 60 ./s2.sh
output_timeout 60 ./s3.sh
⚡ Пояснение:
- Если скрипт не выводит ничего 60 секунд, он будет автоматически убит.
- После остановки можно запускать следующий скрипт.
- Стандартные потоки stdout и stderr объединены.
🌐 Источник: https://unix.stackexchange.com/questions/789260/how-to-automatically-terminate-shell-scripts-after-1-minute-of-no-output
📩 Завтра: 10 навыков командной строки, которые ускорят твою работу в Linux
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Установка и настройка Linux-системы: Mint
🧠 - Установка и настройка Linux-системы: Kali
🧠 - Linux команды: ls, rm, mkdir, pwd, cd, echo
#stackoverflow #Linux #bash #скрипты #DevOps #администрирование #автоматизация
Unix & Linux Stack Exchange
How to automatically terminate shell scripts after 1 minute of no output
I need to run multiple shell scripts sequentially (s1.sh, s2.sh, s3.sh) with the following requirement:
If a script produces no output (stdout or stderr) for 1 minute, it should be terminated
After
If a script produces no output (stdout or stderr) for 1 minute, it should be terminated
After
👍12👎1
✅ Как за 1 минуту проверить соединение с десятками серверов
Привет, друзья! Сегодня разберём, как автоматизировать проверку подключения к множеству серверов без лишних заморочек с
Если вам нужно просто узнать — открыт порт на хосте или нет, без передачи данных — вот самые эффективные способы:
1. nmap
Быстрый скан нужных портов:
2. netcat (nc)
Минималистичный способ через
3. /dev/tcp в bash
Проверка средствами самого bash:
4. fping
Если важен только факт доступности по ICMP:
Все эти методы можно обернуть в скрипт и проверять десятки или сотни хостов автоматически! 🔥
🌐 Источник: https://unix.stackexchange.com/questions/788022/how-to-check-multiple-hosts-for-simple-connectivity
📩 Завтра: #Инфографика Pacman
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Linux команды: file, mv, cp, rmdir, ps, kill 9, find, sort, , clear
🧠 - Linux команды: mv, настройка Терминала
🧠 - Linux команды: cmp, df, apt get install, remove, update, upgrade, chmod
#stackoverflow #Linux #Bash #Скрипты #Сеть #DevOps #Порты #nmap #netcat
Привет, друзья! Сегодня разберём, как автоматизировать проверку подключения к множеству серверов без лишних заморочек с
telnet и ручным вводом команд.Если вам нужно просто узнать — открыт порт на хосте или нет, без передачи данных — вот самые эффективные способы:
1. nmap
Быстрый скан нужных портов:
nmap -sT -p 22 192.168.1.1-5
2. netcat (nc)
Минималистичный способ через
nc:timeout 3 nc -zv host1 22
timeout 3 nc -zv host2 22
3. /dev/tcp в bash
Проверка средствами самого bash:
if (exec 3<>/dev/tcp/host/port) 2>/dev/null; then
echo "Порт открыт"
else
echo "Порт закрыт"
fi
4. fping
Если важен только факт доступности по ICMP:
fping -a -r 0 -qs -g 192.168.1.0/24
Все эти методы можно обернуть в скрипт и проверять десятки или сотни хостов автоматически! 🔥
🌐 Источник: https://unix.stackexchange.com/questions/788022/how-to-check-multiple-hosts-for-simple-connectivity
📩 Завтра: #Инфографика Pacman
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Linux команды: file, mv, cp, rmdir, ps, kill 9, find, sort, , clear
🧠 - Linux команды: mv, настройка Терминала
🧠 - Linux команды: cmp, df, apt get install, remove, update, upgrade, chmod
#stackoverflow #Linux #Bash #Скрипты #Сеть #DevOps #Порты #nmap #netcat
Unix & Linux Stack Exchange
How to check multiple hosts for simple connectivity?
I need a tool that tells me if a connection to a host is open or not -- no data to send or receive, just see if the connection is successful.
Today I use telnet.
$ telnet myhost myport
Trying 192.1...
Today I use telnet.
$ telnet myhost myport
Trying 192.1...
👍8🔥3
🛡️ Защита системы: как разрешить запуск бинарника только службе systemd
Привет! Сегодня поговорим о том, как надёжно ограничить запуск подозрительных или потенциально небезопасных программ в Linux.
Если ты хочешь, чтобы приложение запускалось только через
🔹 SELinux
Создай отдельный SELinux-домен для бинарника. Только
Не забудь правильно промаркировать файл через
🔹 Изменение прав доступа
Можно убрать права на исполнение:
А запускать его через:
❗ Но с потерей некоторых
🔹 Контейнеризация через Podman
Запускай приложение в контейнере, ограничивая его окружение:
Или с генерацией сервис-файлов через
Так ты минимизируешь риски и защищаешь систему от случайного или несанкционированного запуска.
🌐 Источник: unix.stackexchange.com
________________
Дополнительный материал:
🧠 - GRUB: Командный мостик космического корабля вашего ПК
🧠 - Утренний будильник для вашего ПК: Включение по расписанию с UEFI
🧠 - GRUB Menu Reveal: Как пригласить скрытое меню на ужин
#stackoverflow #Linux #Systemd #SELinux #Безопасность #Fedora #Администрирование #Bash #DevOps
Привет! Сегодня поговорим о том, как надёжно ограничить запуск подозрительных или потенциально небезопасных программ в Linux.
Если ты хочешь, чтобы приложение запускалось только через
systemd, без возможности запуска вручную — вот несколько решений:🔹 SELinux
Создай отдельный SELinux-домен для бинарника. Только
init_t сможет инициировать его запуск:allow init_t myapp_t:process { transition };
type_transition init_t myapp_exec_t:process myapp_t;
Не забудь правильно промаркировать файл через
chcon!🔹 Изменение прав доступа
Можно убрать права на исполнение:
chmod 644 /path/to/binary
А запускать его через:
/lib64/ld-linux-x86-64.so.2 /path/to/binary
❗ Но с потерей некоторых
capabilities — учитывай это.🔹 Контейнеризация через Podman
Запускай приложение в контейнере, ограничивая его окружение:
podman run --rm -p 80:80 your_container_image
Или с генерацией сервис-файлов через
podman generate systemd.Так ты минимизируешь риски и защищаешь систему от случайного или несанкционированного запуска.
🌐 Источник: unix.stackexchange.com
________________
Дополнительный материал:
🧠 - GRUB: Командный мостик космического корабля вашего ПК
🧠 - Утренний будильник для вашего ПК: Включение по расписанию с UEFI
🧠 - GRUB Menu Reveal: Как пригласить скрытое меню на ужин
#stackoverflow #Linux #Systemd #SELinux #Безопасность #Fedora #Администрирование #Bash #DevOps
Unix & Linux Stack Exchange
Prevent application from being executed by any local user except systemd
I need to run the binary that I don't fully trust.
I've created a systemd unit for it where it's locked down as much as humanly possible, it works great.
Now it's still on my system (Fedora) and I ...
I've created a systemd unit for it where it's locked down as much as humanly possible, it works great.
Now it's still on my system (Fedora) and I ...
👍9👎1