🔍 Как найти различия между двумя деревьями каталогов в Linux?
Ты когда-нибудь задумывался, как быстро сравнить содержимое двух директорий и выявить различия? Сегодня мы расскажем, как это сделать с помощью команды
Чтобы сравнить два дерева каталогов и найти различия в содержимом файлов, используй команду
-
-
Если ты хочешь увидеть различия для файлов, которые могут отсутствовать в одной из директорий, добавь флаг
Используя эти команды, ты сможешь легко и быстро выявить различия между двумя директориями, что особенно полезно при управлении версиями и контроле изменений. Попробуй сам и убедись, насколько это удобно!
🌳 Ветка: https://stackoverflow.com/questions/4997693/given-two-directory-trees-how-can-i-find-out-which-files-differ-by-content
📩 Завтра: 18 команд которые должен знать каждый линуксоид!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Мастерство использования команды chown для смены владельца файлов и каталогов
🧠 - Станьте Мастером Календаря в Linux с Cal и NCal
🧠 - Станьте Мастером Управления Пользователями в Linux
#stackoverflow @LinuxSkill #Linux #Diff #DirectoryComparison #SysAdmin #DevOps
Ты когда-нибудь задумывался, как быстро сравнить содержимое двух директорий и выявить различия? Сегодня мы расскажем, как это сделать с помощью команды
diff
в Linux.Чтобы сравнить два дерева каталогов и найти различия в содержимом файлов, используй команду
diff
с флагами -qr
:diff -qr dir1/ dir2/
-
-q
или --brief
— выводит только информацию о различиях, без детального сравнения.-
-r
или --recursive
— рекурсивно обходит все подкаталоги.Если ты хочешь увидеть различия для файлов, которые могут отсутствовать в одной из директорий, добавь флаг
-N
:diff -qrN dir1/ dir2/
Используя эти команды, ты сможешь легко и быстро выявить различия между двумя директориями, что особенно полезно при управлении версиями и контроле изменений. Попробуй сам и убедись, насколько это удобно!
🌳 Ветка: https://stackoverflow.com/questions/4997693/given-two-directory-trees-how-can-i-find-out-which-files-differ-by-content
📩 Завтра: 18 команд которые должен знать каждый линуксоид!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Мастерство использования команды chown для смены владельца файлов и каталогов
🧠 - Станьте Мастером Календаря в Linux с Cal и NCal
🧠 - Станьте Мастером Управления Пользователями в Linux
#stackoverflow @LinuxSkill #Linux #Diff #DirectoryComparison #SysAdmin #DevOps
Stack Overflow
Given two directory trees, how can I find out which files differ by content?
If I want find the differences between two directory trees, I usually just execute:
diff -r dir1/ dir2/
This outputs exactly what the differences are between corresponding files. I'm interested i...
diff -r dir1/ dir2/
This outputs exactly what the differences are between corresponding files. I'm interested i...
👍22
⏱️ Как измерить время выполнения программы в Linux?
Хочешь узнать, сколько времени занимает выполнение твоих скриптов или команд в Linux? Сегодня мы расскажем, как использовать встроенную команду
Основная информация:
Команда
1. Использование команды
Просто добавь
Вывод будет примерно таким:
-
-
-
2. Измерение времени для нескольких команд:
Если нужно измерить время выполнения нескольких команд, используй группу команд:
Используя команду
🌳 Ветка: https://stackoverflow.com/questions/385408/get-program-execution-time-in-the-shell
📩 Завтра: Как не стать жертвой сниффинга паролей на Linux
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Открываем Мир b2-tools
🧠 - Открываем Все Тайны Команды Cat
🧠 - Разгадываем Загадки с Diff3
#stackoverflow @LinuxSkill #Linux #TimeCommand #Performance #SysAdmin #DevOps
Хочешь узнать, сколько времени занимает выполнение твоих скриптов или команд в Linux? Сегодня мы расскажем, как использовать встроенную команду
time
для этого.Основная информация:
Команда
time
позволяет измерить реальное время, затраченное на выполнение команды, а также время работы процессора. Вот как это сделать:1. Использование команды
time
:Просто добавь
time
перед командой, которую хочешь измерить. Например:time sleep 2
Вывод будет примерно таким:
real 0m2.009s
user 0m0.000s
sys 0m0.004s
-
real
— общее время выполнения.-
user
— время, затраченное на выполнение пользовательского кода.-
sys
— время, затраченное на выполнение системного кода.2. Измерение времени для нескольких команд:
Если нужно измерить время выполнения нескольких команд, используй группу команд:
time { command1; command2; }
Используя команду
time
, ты можешь легко измерять производительность своих скриптов и оптимизировать их. Попробуй сам и убедись, насколько это полезно!🌳 Ветка: https://stackoverflow.com/questions/385408/get-program-execution-time-in-the-shell
📩 Завтра: Как не стать жертвой сниффинга паролей на Linux
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Открываем Мир b2-tools
🧠 - Открываем Все Тайны Команды Cat
🧠 - Разгадываем Загадки с Diff3
#stackoverflow @LinuxSkill #Linux #TimeCommand #Performance #SysAdmin #DevOps
Stack Overflow
Get program execution time in the shell
I want to execute something in a linux shell under a few different conditions, and be able to output the execution time of each execution.
I know I could write a perl or python script that would d...
I know I could write a perl or python script that would d...
👍13
🛠️ Что означает $@ в shell скрипте?
Если ты когда-либо задавался вопросом, что такое
то
Когда внутри
каждый параметр будет передан в
Пример использования:
Если ты вызовешь:
то
Использование
🌳 Ветка: https://stackoverflow.com/questions/9994295/what-does-mean-in-a-shell-script
📩 Завтра: Защити свой сервер: Настройка безопасности SSH на Linux
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Текстовый редактор Nano — как работать с файлами на минималках и не страдать!
🧠 - Почувствуй себя цифровым рентгенологом — откроем файлы насквозь с Od!
🧠 - Давно занимался спортом? Нет? Ну вот, пора хотя бы пароли сменить!
#stackoverflow @LinuxSkill #Linux #ShellScripting #SysAdmin #DevOps
Если ты когда-либо задавался вопросом, что такое
$@
в shell скрипте, то сегодня мы разберем эту загадку и покажем, как использовать его для передачи параметров.$@
представляет собой все параметры, переданные скрипту. Например, если ты вызовешь скрипт так:./someScript.sh foo bar
то
$@
будет равно foo bar
.Когда внутри
someScript.sh
ты используешь:umbrella_corp_options "$@"
каждый параметр будет передан в
umbrella_corp_options
в двойных кавычках. Это позволяет передавать параметры с пробелами, как единое целое.Пример использования:
Если ты вызовешь:
./someScript.sh foo bar "boo far"
то
$@
в двойных кавычках будет содержать три аргумента: "foo"
, "bar"
и "boo far"
.Использование
$@
в shell скриптах позволяет легко и безопасно передавать параметры, включая те, которые содержат пробелы. Попробуй сам и убедись, насколько это удобно!🌳 Ветка: https://stackoverflow.com/questions/9994295/what-does-mean-in-a-shell-script
📩 Завтра: Защити свой сервер: Настройка безопасности SSH на Linux
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Текстовый редактор Nano — как работать с файлами на минималках и не страдать!
🧠 - Почувствуй себя цифровым рентгенологом — откроем файлы насквозь с Od!
🧠 - Давно занимался спортом? Нет? Ну вот, пора хотя бы пароли сменить!
#stackoverflow @LinuxSkill #Linux #ShellScripting #SysAdmin #DevOps
Stack Overflow
What does $@ mean in a shell script?
What does a dollar sign followed by an at-sign (@) mean in a shell script?
For example:
umbrella_corp_options $@
For example:
umbrella_corp_options $@
👍17🔥2
🧠 Нужно ли ставить кавычки вокруг переменных в shell-скриптах?
Привет, повелитель терминала! Если ты в скриптах пишешь
Давай разберёмся, когда и зачем переменные в shell-скриптах нужно оборачивать в кавычки.
### Общее правило:
> Оборачивай переменные в двойные кавычки, если не хочешь сюрпризов от пробелов, пустых значений и спецсимволов.
---
### Когда кавычки обязательны:
1. Значение может быть пустым:
2. Есть пробелы:
3. В переменной спецсимволы (
---
### Пример бага:
---
### Когда кавычки можно опустить:
-
- Внутри арифметических или логических выражений:
Вывод:
Используй кавычки по умолчанию. Это просто и защищает от десятков потенциальных багов.
🌳 Ветка: https://stackoverflow.com/questions/10067266/when-to-wrap-quotes-around-a-shell-variable
📩 Завтра: Секреты Bash: Как тестировать порты без curl и wget!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Откройте для себя мир Управления Службами в Linux с нашей серией статей
🧠 - Контейнер в контейнере? Да это как матрёшка для айтишников: открываешь, а там ещё больше проблем… но зато все свои!
🧠 - Секретная Команда nsenter! Управляй Контейнерами как Хакер
#stackoverflow @LinuxSkill #Linux #ShellScripting #Quotes #SysAdmin #DevOps
Привет, повелитель терминала! Если ты в скриптах пишешь
$var
без кавычек — скорее всего, ты (пока что) просто везучий. Давай разберёмся, когда и зачем переменные в shell-скриптах нужно оборачивать в кавычки.
### Общее правило:
> Оборачивай переменные в двойные кавычки, если не хочешь сюрпризов от пробелов, пустых значений и спецсимволов.
---
### Когда кавычки обязательны:
1. Значение может быть пустым:
[ "$var" = "value" ]
2. Есть пробелы:
xdg-open "$URL"
3. В переменной спецсимволы (
*
, &
, ?
): wget "$link"
---
### Пример бага:
file="My documents/report.pdf"
rm $file # ❌ Попытка удалить два файла: 'My' и 'documents/report.pdf'
rm "$file" # ✅ Удаляется нужный файл
---
### Когда кавычки можно опустить:
-
$?
, $#
, $0
— безопасны без кавычек.- Внутри арифметических или логических выражений:
if [ "$?" -eq 0 ]; then ...
Вывод:
Используй кавычки по умолчанию. Это просто и защищает от десятков потенциальных багов.
🌳 Ветка: https://stackoverflow.com/questions/10067266/when-to-wrap-quotes-around-a-shell-variable
📩 Завтра: Секреты Bash: Как тестировать порты без curl и wget!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Откройте для себя мир Управления Службами в Linux с нашей серией статей
🧠 - Контейнер в контейнере? Да это как матрёшка для айтишников: открываешь, а там ещё больше проблем… но зато все свои!
🧠 - Секретная Команда nsenter! Управляй Контейнерами как Хакер
#stackoverflow @LinuxSkill #Linux #ShellScripting #Quotes #SysAdmin #DevOps
Stack Overflow
When to wrap quotes around a shell variable?
Should or should I not wrap quotes around variables in a shell script?
For example, is the following correct:
xdg-open $URL
[ $? -eq 2 ]
or
xdg-open "$URL"
[ "$?" -eq "2&q...
For example, is the following correct:
xdg-open $URL
[ $? -eq 2 ]
or
xdg-open "$URL"
[ "$?" -eq "2&q...
👍13
🧯 Как удалить конкретные правила из iptables (а не всё подряд)?
Привет, линуксоид! Бывало такое: правила в iptables работают как часы, но внезапно нужно откатить одно-два, не трогая всё остальное. Ниже — короткий гайд, как это сделать аккуратно и по-взрослому.
✅ Способ 1. Удалить правило по содержимому
Повтори ту же команду, но с
💡 Работает, только если правило совпадает дословно.
🧩 Способ 2. Удалить по номеру
Сначала покажи номера правил:
Удаление:
Если правило в NAT:
🛠 Способ 3. Комментарии и iptables-restore
Добавляешь правило с комментарием:
Потом удаляешь всё с этим тегом:
🧼 Способ 4. Через
Показать все правила:
Удалить нужное вручную (заменив
⚠️ Не забудь:
- При удалении по номеру порядок важен: после удаления строки остальные смещаются.
- Не используй
🌳 Ветка: https://stackoverflow.com/questions/10197405/how-can-i-remove-specific-rules-from-iptables
📩 Завтра: iptables: доступ к порту 8000 только с одного IP
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Эй, ты в курсе, что с Grafana можно раз и навсегда забыть о хаосе в мониторинге серверов?
🧠 - Секретная связка Angie и Grafana для тотального контроля над серверами
🧠 - Неожиданно закончилась память? 3 секрета команды du -h
#stackoverflow @LinuxSkill #iptables #Linux #сетевоеадминистрирование #firewall #DevOps #SysAdmin #безопасность
Привет, линуксоид! Бывало такое: правила в iptables работают как часы, но внезапно нужно откатить одно-два, не трогая всё остальное. Ниже — короткий гайд, как это сделать аккуратно и по-взрослому.
✅ Способ 1. Удалить правило по содержимому
Повтори ту же команду, но с
-D
вместо -A
:iptables -D INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
💡 Работает, только если правило совпадает дословно.
🧩 Способ 2. Удалить по номеру
Сначала покажи номера правил:
iptables -L INPUT --line-numbers
Удаление:
iptables -D INPUT 3
Если правило в NAT:
iptables -t nat -L PREROUTING --line-numbers
iptables -t nat -D PREROUTING 1
🛠 Способ 3. Комментарии и iptables-restore
Добавляешь правило с комментарием:
iptables -A INPUT -s 1.2.3.4 -j DROP -m comment --comment "ban_temp"
Потом удаляешь всё с этим тегом:
iptables-save | grep -v "ban_temp" | iptables-restore
🧼 Способ 4. Через
iptables -S
Показать все правила:
iptables -S
Удалить нужное вручную (заменив
-A
на -D
):iptables -D INPUT -p tcp --dport 443 -j ACCEPT
⚠️ Не забудь:
- При удалении по номеру порядок важен: после удаления строки остальные смещаются.
- Не используй
iptables -F
, если не хочешь снести всё подчистую.🌳 Ветка: https://stackoverflow.com/questions/10197405/how-can-i-remove-specific-rules-from-iptables
📩 Завтра: iptables: доступ к порту 8000 только с одного IP
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Эй, ты в курсе, что с Grafana можно раз и навсегда забыть о хаосе в мониторинге серверов?
🧠 - Секретная связка Angie и Grafana для тотального контроля над серверами
🧠 - Неожиданно закончилась память? 3 секрета команды du -h
#stackoverflow @LinuxSkill #iptables #Linux #сетевоеадминистрирование #firewall #DevOps #SysAdmin #безопасность
Stack Overflow
How can I remove specific rules from iptables?
I am hosting special HTTP and HTTPS services on the ports 8006 and 8007 respectively. I use iptables to "activate" the server; i.e. to route the incoming HTTP and HTTPS ports:
iptables -A INPUT -i...
iptables -A INPUT -i...
👍16🔥2
🔐 iptables: доступ к порту 8000 только с одного IP
Привет, хранитель сетей! Если ты хочешь открыть доступ к какому-либо сервису (например, веб-интерфейсу на порту 8000) только для одного IP, не трогая весь остальной трафик — вот как это делается через
🔧 Пример: разрешить доступ только для 1.2.3.4
Так ты явно разрешаешь доступ для IP
💡 Альтернатива: блокировать всех, кроме одного IP
Один простой вариант — одна строка, эффект тот же.
📌 Несколько полезных замечаний:
- Для диапазона IP используй:
- Чтобы снять правило, замени
- Не забудь сохранить конфигурацию, если не хочешь потерять правила после перезагрузки:
🌳 Ветка: https://stackoverflow.com/questions/7423309/iptables-block-access-to-port-8000-except-from-ip-address
📩 Завтра: Как управлять iptables на лету — без
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Не трать время на конфиги: как упростить работу с WireGuard
🧠 - Неожиданный способ взломать систему: что такое бинарный анализ в Linux?
#stackoverflow @LinuxSkill #iptables #Linux #firewall #порт #безопасность #SysAdmin #DevOps
Привет, хранитель сетей! Если ты хочешь открыть доступ к какому-либо сервису (например, веб-интерфейсу на порту 8000) только для одного IP, не трогая весь остальной трафик — вот как это делается через
iptables
.🔧 Пример: разрешить доступ только для 1.2.3.4
iptables -A INPUT -p tcp --dport 8000 -s 1.2.3.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 8000 -j DROP
Так ты явно разрешаешь доступ для IP
1.2.3.4
, а все остальные — отсекаешь.💡 Альтернатива: блокировать всех, кроме одного IP
iptables -A INPUT -p tcp --dport 8000 ! -s 1.2.3.4 -j DROP
Один простой вариант — одна строка, эффект тот же.
📌 Несколько полезных замечаний:
- Для диапазона IP используй:
-s 1.2.3.0/24
- Чтобы снять правило, замени
-A
на -D
(или используй iptables -S
и удаляй по номерам).- Не забудь сохранить конфигурацию, если не хочешь потерять правила после перезагрузки:
iptables-save > /etc/iptables.rules
🌳 Ветка: https://stackoverflow.com/questions/7423309/iptables-block-access-to-port-8000-except-from-ip-address
📩 Завтра: Как управлять iptables на лету — без
sudo
, без потерьВключи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Не трать время на конфиги: как упростить работу с WireGuard
🧠 - Неожиданный способ взломать систему: что такое бинарный анализ в Linux?
#stackoverflow @LinuxSkill #iptables #Linux #firewall #порт #безопасность #SysAdmin #DevOps
Stack Overflow
iptables block access to port 8000 except from IP address
I've never used iptables, and the documentation online seems a bit opaque.
I'd like to block all requests to port 8000 on my server except those coming from a specific IP address. How do I do that...
I'd like to block all requests to port 8000 on my server except those coming from a specific IP address. How do I do that...
👍12👀1
🧠 Как управлять iptables на лету — без
Привет, сетевой волшебник! Если ты хоть раз пытался автоматически обновлять правила iptables из приложения или скрипта — ты знаешь, насколько это боль.
Сегодня разберём, как это делать программно, безопасно и эффективно — даже без API.
🤯 Проблема: у iptables нет API
-
- Прямого, документированного API в C, Python, Rust и т.д. не существует.
📌 Официальный ответ от Netfilter:
> “Нет, API не предусмотрен. Используйте
Источник: Netfilter FAQ
✅ Что работает на практике:
#1. iptables-restore (атомарная загрузка правил)
Можно применять *весь ruleset сразу*, не теряя соединений:
✔️ Безопасно: правила применяются при
✔️ Работает из любой программы через stdin
#2. ipset — для добавления IP без пересборки
✔️ Отлично подходит для динамических списков
✔️ Есть поддержка
✔️ Работает быстро и без потерь
#3. rfw — REST API для iptables (open source)
Позволяет управлять правилами через HTTP-запросы:
👉 Проект: https://github.com/gluczywo/rfw
✔️ Поддерживает JSON,
✔️ Работает на
✔️ Подходит для распределённых систем
#4. python-iptables
Обёртка над
🔗 https://github.com/ldx/python-iptables
✔️ Удобен для скриптов
❗ Требует осторожности при работе с низкоуровневым API
🛑 Что не делать:
- Не пиши правила через
- Не используй
- Не забывай про
🌳 Ветка: https://stackoverflow.com/questions/109553/how-can-i-programmatically-manage-iptables-rules-on-the-fly
📩 Завтра: Вопрос №17 из теста Linux Essentials Certification
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Настрой cron за 5 минут и забудь о ручной работе навсегда!
🧠 - Ты больше никогда не запутаешься в systemd: разбор по шагам!
🧠 - 10 секретов команды ping, которые знают только сетевые гуру
#stackoverflow @LinuxSkill #iptables #ipset #Linux #SysAdmin #DevOps #firewall #rfw #сетибезопасность
sudo
, без потерьПривет, сетевой волшебник! Если ты хоть раз пытался автоматически обновлять правила iptables из приложения или скрипта — ты знаешь, насколько это боль.
Сегодня разберём, как это делать программно, безопасно и эффективно — даже без API.
🤯 Проблема: у iptables нет API
-
libiptc
не предназначена для использования — она нестабильна и может быть удалена в будущем. - Прямого, документированного API в C, Python, Rust и т.д. не существует.
📌 Официальный ответ от Netfilter:
> “Нет, API не предусмотрен. Используйте
system()
или iptables-restore
.” Источник: Netfilter FAQ
✅ Что работает на практике:
#1. iptables-restore (атомарная загрузка правил)
Можно применять *весь ruleset сразу*, не теряя соединений:
iptables-restore < my_ruleset.conf
✔️ Безопасно: правила применяются при
COMMIT
, в один вызов ядра ✔️ Работает из любой программы через stdin
#2. ipset — для добавления IP без пересборки
ipset create allowlist hash:ip
ipset add allowlist 1.2.3.4
iptables -A INPUT -m set --match-set allowlist src -j ACCEPT
✔️ Отлично подходит для динамических списков
✔️ Есть поддержка
timeout
и swap
✔️ Работает быстро и без потерь
#3. rfw — REST API для iptables (open source)
Позволяет управлять правилами через HTTP-запросы:
PUT /drop/input/eth0/11.22.33.44
👉 Проект: https://github.com/gluczywo/rfw
✔️ Поддерживает JSON,
GET
, PUT
, DELETE
, сериализацию ✔️ Работает на
localhost
без SSL ✔️ Подходит для распределённых систем
#4. python-iptables
Обёртка над
libiptc
(но будь осторожен):🔗 https://github.com/ldx/python-iptables
✔️ Удобен для скриптов
❗ Требует осторожности при работе с низкоуровневым API
🛑 Что не делать:
- Не пиши правила через
iptables -A
в цикле - Не используй
libiptc
напрямую в проде - Не забывай про
iptables-save
как бэкап перед внесением правок🌳 Ветка: https://stackoverflow.com/questions/109553/how-can-i-programmatically-manage-iptables-rules-on-the-fly
📩 Завтра: Вопрос №17 из теста Linux Essentials Certification
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Настрой cron за 5 минут и забудь о ручной работе навсегда!
🧠 - Ты больше никогда не запутаешься в systemd: разбор по шагам!
🧠 - 10 секретов команды ping, которые знают только сетевые гуру
#stackoverflow @LinuxSkill #iptables #ipset #Linux #SysAdmin #DevOps #firewall #rfw #сетибезопасность
👍14
🚀 Как работает
Привет, архитектор переменных и властелин скриптов! Задумывался, зачем вообще нужен
🧠 Что делает
Когда ты пишешь:
ты говоришь bash: “Эй, сделай эту переменную доступной для всех дочерних процессов.”
Например, твой скрипт вызывает
🤔 А если без
Вот так:
Переменная будет доступна только внутри текущего shell, но не в дочерних процессах.
Однако есть лайфхак:
Так переменная временно экспортируется только для выполнения
⚠️ Важное ограничение
Экспорт работает вниз по процессу, но не вверх.
Если ты экспортируешь переменную в скрипте, родительский терминал её не увидит.
🛠 Вывод
Хочешь, чтобы переменная работала в дочерних процессах? Используй
Пишешь скрипт с вызовом других программ? Без
Но если переменная нужна только внутри текущего скрипта — не трать лишние байты.
🌳 Ветка: https://stackoverflow.com/questions/1158091/defining-a-variable-with-or-without-export
📩 Завтра: Прокачай свой namei: секретная опция для идеального вывода!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Поднимем отказоустойчивое хранилище в Proxmox VE с Ceph
🧠 - Отключи ненужные конфиги в Apache за пару команд!
🧠 - Контролируй трафик в реальном времени! Три утилиты для мониторинга сети в Linux
#stackoverflow @LinuxSkill #Linux #ShellScripting #Export #SysAdmin #DevOps
export
в bash и когда он реально нужен?Привет, архитектор переменных и властелин скриптов! Задумывался, зачем вообще нужен
export
в bash и что он делает с переменными? Сегодня разложим по полочкам — коротко, чётко и с пользой!🧠 Что делает
export
Когда ты пишешь:
export MY_VAR=value
ты говоришь bash: “Эй, сделай эту переменную доступной для всех дочерних процессов.”
Например, твой скрипт вызывает
python
, curl
, node
— они смогут использовать MY_VAR
.🤔 А если без
export
?Вот так:
MY_VAR=value
Переменная будет доступна только внутри текущего shell, но не в дочерних процессах.
Однако есть лайфхак:
MY_VAR=hello node script.js
Так переменная временно экспортируется только для выполнения
node script.js
. Удобно? Да!⚠️ Важное ограничение
Экспорт работает вниз по процессу, но не вверх.
Если ты экспортируешь переменную в скрипте, родительский терминал её не увидит.
🛠 Вывод
Хочешь, чтобы переменная работала в дочерних процессах? Используй
export
. Пишешь скрипт с вызовом других программ? Без
export
будет больно. Но если переменная нужна только внутри текущего скрипта — не трать лишние байты.
🌳 Ветка: https://stackoverflow.com/questions/1158091/defining-a-variable-with-or-without-export
📩 Завтра: Прокачай свой namei: секретная опция для идеального вывода!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 - Поднимем отказоустойчивое хранилище в Proxmox VE с Ceph
🧠 - Отключи ненужные конфиги в Apache за пару команд!
🧠 - Контролируй трафик в реальном времени! Три утилиты для мониторинга сети в Linux
#stackoverflow @LinuxSkill #Linux #ShellScripting #Export #SysAdmin #DevOps
Stack Overflow
Defining a variable with or without export
What is export for?
What is the difference between:
export name=value
and
name=value
What is the difference between:
export name=value
and
name=value
👍18🔥1
💥 Почему
Привет, терминальный заклинатель! Кажется, ты добавил
🤔 Что вообще делает
> "Если любая команда завершится ошибкой, — останови скрипт немедленно".
Это полезно для CI/CD, бэкапов и всего, что не прощает ошибок. Но...
⚠️ Проблема: поведение
Вот типичный случай:
Скрипт завершится после
Но теперь внимание:
🎉 Здесь
🔍 Когда
Если ты используешь команды вроде:
Скрипт продолжит работу, даже если
✅ Как правильно использовать
1. Сначала — пойми, где оно действительно нужно (например, в CI/CD, деплое, тестах).
2. Используй его в отдельных функциях, а не во всём скрипте сразу.
3. Если обрабатываешь ошибку вручную — используй
👨💻 Итог:
🌳 Ветка: https://stackoverflow.com/questions/19622198/what-does-set-e-mean-in-a-bash-script
📩 Завтра: BTRFS: Продвинутые техники для настоящих гуру!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 -Настрой мониторинг сети в реальном времени с Prometheus и Grafana
🧠 - b2-tools — простое и быстрое резервное копирование в облако
🧠 - Ты не знал, что cat умеет это! Лайфхаки для работы с файлами в Linux
#stackoverflow @LinuxSkill #bash #linux #скрипты #автоматизация #devops #linuxskill #сетевые_лайфхаки #shell #ci_cd #ошибки
set -e
в bash может сломать тебе всё!Привет, терминальный заклинатель! Кажется, ты добавил
set -e
в свой bash-скрипт и думал, что теперь ошибки сами себя поймают? А потом скрипт резко перестал доходить до конца?.. Давай разберемся, в чём подвох.🤔 Что вообще делает
set -e
?set -e
говорит интерпретатору bash: > "Если любая команда завершится ошибкой, — останови скрипт немедленно".
Это полезно для CI/CD, бэкапов и всего, что не прощает ошибок. Но...
⚠️ Проблема: поведение
set -e
— неочевидно!Вот типичный случай:
#!/bin/bash
set -e
false
echo "Я не выполнюсь!"
Скрипт завершится после
false
, и echo
даже не запустится. Всё логично. Но теперь внимание:
#!/bin/bash
set -e
if false; then
echo "Упс"
fi
echo "А вот и я!"
🎉 Здесь
echo
выполнится! Потому что ошибки внутри if
, while
, until
и &&/||
— игнорируются!🔍 Когда
set -e
может навредить?Если ты используешь команды вроде:
grep "что-то" файл.txt || echo "не найдено"
Скрипт продолжит работу, даже если
grep
вернёт ненулевой код. Но теперь представь, что ты этого не знал… 😬✅ Как правильно использовать
set -e
?1. Сначала — пойми, где оно действительно нужно (например, в CI/CD, деплое, тестах).
2. Используй его в отдельных функциях, а не во всём скрипте сразу.
3. Если обрабатываешь ошибку вручную — используй
||
, if
, trap
, set +e
.👨💻 Итог:
set -e
— не волшебная палочка. Это строгий сторож, который иногда рубит по-живому. Используй с умом, тестируй поведение и знай, где он тебя может подставить.🌳 Ветка: https://stackoverflow.com/questions/19622198/what-does-set-e-mean-in-a-bash-script
📩 Завтра: BTRFS: Продвинутые техники для настоящих гуру!
Включи 🔔 чтобы не пропустить!
____________________
Дополнительный материал:
🧠 -Настрой мониторинг сети в реальном времени с Prometheus и Grafana
🧠 - b2-tools — простое и быстрое резервное копирование в облако
🧠 - Ты не знал, что cat умеет это! Лайфхаки для работы с файлами в Linux
#stackoverflow @LinuxSkill #bash #linux #скрипты #автоматизация #devops #linuxskill #сетевые_лайфхаки #shell #ci_cd #ошибки
Stack Overflow
What does 'set -e' mean in a Bash script?
I'm studying the content of this preinst file that the script executes before that package is unpacked from its Debian archive (.deb) file.
The script has the following code:
#!/bin/bash
set -e
#
The script has the following code:
#!/bin/bash
set -e
#
👍16👀1
🤔 Как запросить ввод 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?
👍15
🚀 Почему бенчмарки в 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...
👍15🔥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;
👍21
🚨 Можешь ли ты использовать
👋 Привет, мастер терминала! Иногда нужно понять: можешь ли ты выполнять команды через
⚡ Базовая проверка:
-
- Команда мгновенно завершится с ошибкой, если пароль требуется.
🛡️ Проверка без влияния кэшированных сессий:
-
🔍 Защита от частных 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.
👍11
🚀 Как за 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👍8
🚨 Почему
Привет, покоритель терминала! 👨💻👩💻
Многие думают, что
Терминальные эмуляторы — сложные программы. Если файл содержит хитро сформированные 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...
👍13🔥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🔥2
⚡ Как скопировать только изменённые файлы с помощью 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
🔥 Как убивать скрипты в 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
👍11👎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🔥1
🛡️ Защита системы: как разрешить запуск бинарника только службе 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 ...
👍6👎1