Удалили огромный лог, а место не освободилось. Перезапуск сервиса нельзя. Как освободить место, если файл всё ещё открыт процессом?
#linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Ответ:
Anonymous Quiz
17%
sudo lsof +L1
19%
sudo sync
51%
sudo truncate -s 0 /proc/<pid>/fd/<fd>
13%
sudo fstrim -av
👍6🔥3
📘 На Stepik вышел курс — «DevOps-инженер: От основ до продакшена»
Хотите автоматизировать деплой, управлять инфраструктурой как кодом и выстраивать надёжные CI/CD процессы? Этот курс — полный путь DevOps-инженера.
• CI/CD: Jenkins, GitLab CI/CD, GitHub Actions, стратегии развёртывания (Blue-Green, Canary), rollback
• Контейнеризация: Docker (образы, Compose, networking), Podman, оптимизация и безопасность контейнеров
• Kubernetes: архитектура, Pods, Services, Deployments, Helm, RBAC, Service Mesh (Istio/Linkerd)
• Infrastructure as Code: Terraform, Ansible (playbooks, vault), Packer, ArgoCD и Flux для GitOps
• Облака: AWS (EC2, EKS, Lambda), GCP, Azure, Yandex Cloud, cost optimization• Мониторинг: Prometheus, Grafana, ELK Stack, Jaeger, OpenTelemetry, SLI/SLO/SLA
• Безопасность: SAST/DAST, Vault, Zero Trust, Policy as Code, incident response
• Продакшен практики: High Availability, Disaster Recovery, Chaos Engineering, on-call management
🎓 Сертификат — добавьте в резюме или LinkedIn
🚀 Скидка 25%, действует 48 часов
👉 Пройти курс на Stepik
Хотите автоматизировать деплой, управлять инфраструктурой как кодом и выстраивать надёжные CI/CD процессы? Этот курс — полный путь DevOps-инженера.
• CI/CD: Jenkins, GitLab CI/CD, GitHub Actions, стратегии развёртывания (Blue-Green, Canary), rollback
• Контейнеризация: Docker (образы, Compose, networking), Podman, оптимизация и безопасность контейнеров
• Kubernetes: архитектура, Pods, Services, Deployments, Helm, RBAC, Service Mesh (Istio/Linkerd)
• Infrastructure as Code: Terraform, Ansible (playbooks, vault), Packer, ArgoCD и Flux для GitOps
• Облака: AWS (EC2, EKS, Lambda), GCP, Azure, Yandex Cloud, cost optimization• Мониторинг: Prometheus, Grafana, ELK Stack, Jaeger, OpenTelemetry, SLI/SLO/SLA
• Безопасность: SAST/DAST, Vault, Zero Trust, Policy as Code, incident response
• Продакшен практики: High Availability, Disaster Recovery, Chaos Engineering, on-call management
🎓 Сертификат — добавьте в резюме или LinkedIn
🚀 Скидка 25%, действует 48 часов
👉 Пройти курс на Stepik
👍5❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍5
Дневник импортозамещения. Linux GUI — ложное искушение
Сейчас на волне импортозамещения везде можно услышать, что в Linux есть gui интерфейс «как в Windows», а количество gui приложений растет с каждым днем. И вообще практически все в Linux бесплатно, и пора уже снять с себя ярмо Windows, который замучил своими принудительными обновлениями.
#linux
🐧 Linux Club ©
Сейчас на волне импортозамещения везде можно услышать, что в Linux есть gui интерфейс «как в Windows», а количество gui приложений растет с каждым днем. И вообще практически все в Linux бесплатно, и пора уже снять с себя ярмо Windows, который замучил своими принудительными обновлениями.
#linux
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍4👀2
Когда сеть флапает или ресурс временно занят, удобно перезапускать команду с растущей паузой и лёгким джиттером
retry() {
local max=5
[[ $1 =~ ^[0-9]+$ ]] && { max=$1; shift; }
local n=0
until "$@"; do
(( n++ >= max )) && return 1
sleep $(( (1 << (n-1)) + (RANDOM % 2) ))
done
}Сохранить в ~/.bashrc, перезагрузить шелл.✅ Примеры: retry 5 -- curl -fsS https://..., retry 7 -- systemctl restart nginx.
#linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🕊1
Linux в действии.pdf
70.8 MB
Linux в действии
Год: 2019
Автор: Дэвид Клинтон
Язык: Русский
#linux
🐧 Linux Club
Год: 2019
Автор: Дэвид Клинтон
Язык: Русский
В книге описываются 12 реальных проектов, в том числе автоматизация системы резервного копирования и восстановления, настройка личного файлового облака в стиле Dropbox и создание собственного сервера MediaWiki.
На интересных примерах вы изучите виртуализацию, аварийное восстановление, обеспечение безопасности, резервное копирование, внедрение DevOps и устранение неполадок системы. Каждая глава заканчивается обзором практических рекомендаций, глоссарием новых терминов и упражнениями.
#linux
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍13❤3
История о том, как локальные хаки для старого ноутбука превратились в настоящий вклад в апстрим: разбор процесса, ошибок, общения с мейнтейнерами и того, чему учишься, когда лезешь в код ядра.
#linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤3
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19😁16❤3🔥1
Нужен простой «ожидатель» БД/сервиса в деплое/compose без
nc и внешних утилит#!/usr/bin/env bash
# wait-for host:port [timeout_sec] -- [cmd ...]
set -Eeuo pipefail
[[ $# -ge 1 ]] || { echo "usage: wait-for host:port [timeout] -- [cmd]"; exit 2; }
t="$1"; shift; to=30
[[ $# -ge 1 && "$1" =~ ^[0-9]+$ ]] && { to="$1"; shift; }
[[ "${1:-}" == "--" ]] && shift || true
h="${t%:*}"; p="${t##*:}"; end=$((SECONDS+to))
until { exec 3<>"/dev/tcp/$h/$p"; } 2>/dev/null; do
(( SECONDS>=end )) && { echo "timeout: $t"; exit 1; }
sleep 1
done
exec 3>&- 3<&-
echo "ready: $t"
(("$#" > 0)) && exec "$@"
wait-for db:5432 30 -- alembic upgrade head
wait-for 127.0.0.1:8080 5
#linux
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍3😨2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁16❤6🤣2🔥1👾1
Media is too big
VIEW IN TELEGRAM
По умолчанию утилита tree не установлена в дистрибутивах Linux. Однако она доступна для скачивания в большинстве из них. Для ее установки достаточно использовать менеджер пакетов Вашей операционной системы.
Например:
yum install tree #Для RHEL / CentOS 7
dnf install tree #Для Fedora 22+ / RHEL / CentOS 8
sudo apt install tree #Для Ubuntu / Debian
sudo zypper in tree #Для openSUSEВывод скрытых файлов с помощью tree
tree -aОтображение пути для каждого файла каталога
tree -fКак вывести только подкаталоги, используя tree
tree -dВывод содержимого до определенной глубины
tree -L 2Поиск содержимого по шаблону
tree -f -P Ardui*Как скрыть пустые каталоги
tree -f --pruneКак вывести права доступа содержимого с помощью tree
tree -pВывод имени пользователя, группы и прав доступа
tree -pugКак узнать размер содержимого, используя tree
tree -sОтображение времени последнего изменения файлов
tree -DКак узнать размер всех подкаталогов директории с tree
tree --duЗапись результата работы команды в файл
tree -o treeFile.txt#linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤3
• Когда мы говорим о свободно распространяемой Unix-подобной ОС с открытым исходным кодом, то обычно подразумеваем #Linux. Однако в начале 90-х существовал как минимум еще один подобный проект, релиз первой полнофункциональной версии состоялся 33 года назад, в 1992 году. Речь идет об операционной системе 386BSD, также известной под названием Jolix.
• История проекта 386BSD уходит корнями еще в 80-е, и в общих чертах напоминает историю появления Linux. Здесь тоже сыграли ведущую роль бывшие студенты, а именно, семейная пара Уильям и Линн Джолиц, обучавшиеся в Калифорнийском университете в Беркли. Именно там они познакомились с операционной системой BSD версий 2.8 и 2.9, в разработке которой приняли участие, и именно там им пришла в голову идея портировать эту ОС для 32-разрядных процессоров Intel 80386, самых мощных и современных на тот исторический момент.
• Работы начались в 1989 году. Параллельно с этим в Беркли трудились над переносом на платформу Intel собственного кода — 4.3 BSD-Reno и 4.3 BSD Net/2, причем в этих проектах принимал непосредственное участие Уильям Джолиц. Тогда же под влиянием Ричарда Столлмана разработчики начали понемногу удалять из исходников BSD несвободные компоненты, подпадающие под проприетарную лицензию AT&T UNIX, но наличие значительного объема такого кода заметно тормозило процесс. Все свои наработки, созданные в процессе работы над кодом BSD в Беркли, Уильям Джолиц решил использовать для создания собственной свободно распространяемой операционной системы, базирующейся на 4.3 BSD Net/2, и дополненной кодом, написанным им с женой самостоятельно.
• Первая версия 386BSD 0.1 появилась на свет 14 июля 1992 года. Вся операционная система целиком помещалась на одну загрузочную дискету. Вскоре группа энтузиастов начала создавать исправления и дополнения для 386BSD, выпускавшиеся в виде набора неофициальных патчей. Примерно в то же время возник и стал развиваться еще один похожий проект под названием BSD/386, который часто путают с разработкой Джолицев. Эта версия ОС была выпущена основанной в Беркли компанией BSDi, которой руководил Донн Сили, и также опиралась на исходники 4.3 BSD Net/2. Несмотря на многочисленные слухи, серьезной конкуренции между 386BSD и BSD/386 не было и в помине, скорее наоборот: Уильям Джолиц и Сили работали вместе над проектами для компании UUNET, и Уильям даже передавал Сили часть своего кода для тестирования.
• Основными отличительными особенностями 386BSD стала новая система безопасности с ролевым доступом, Р2Р-загрузка, а также более простое, наглядное и упорядоченное конфигурирование ОС. Все эти особенности и привлекали пользователей. Однако между Уильям и Линн Джолиц с одной стороны, и энтузиастиами, разрабатывавшими для их детища неофициальные патчи и улучшения, разгорелся нешуточный конфликт. Джолицы желали сами контролировать развитие своего проекта, а потому не хотели включать сторонние пакеты, расширявшие возможности системы, в официальные обновления 386BSD. Также они отказывались добавлять в следующие релизы некоторые обновления, созданные комьюнити. Энтузиасты, потратившие на доработку проекта Джолицев массу времени, не на шутку обиделись, сделали форк системы, включили в него все созданные ими дополнения и назвали получившийся продукт FreeBSD — релиз этой свободной ОС состоялся 1 ноября 1993 года.
• Несмотря на появление близнецов-конкурентов, в конце 1994 года Джолицы выпустили релиз 1.0 386BSD — он содержал принципиально новую реализацию ядра, множество дополнительных компонентов, занимал без малого 600 мб. и распространялся на компакт-диске. Но поддерживаемые комьюнити проекты FreeBSD и NetBSD настолько быстро набирали популярность, что авторы понемногу утратили интерес к своему детищу, и к 1997 году перестали обновлять систему. Только 5 августа 2016 года сын основателей проекта, Бен Джолиц выложил на GitHub обновленную версию 386BSD, получившую порядковый номер 2.0. Правда, changelog для этой версии почему-то так и не был опубликован
#linux
Please open Telegram to view this post
VIEW IN TELEGRAM
2❤9👍7
Библия_Linux_10_е_издание_Негус_Кристофер.pdf
11.3 MB
Библия Linux
Год: 2022
Автор: Кристофер Негус
Язык: Русский
#linux
🐧 Linux Club
Год: 2022
Автор: Кристофер Негус
Язык: Русский
Полностью обновленное 10-е издание «Библии Linux» поможет как начинающим, так и опытным пользователям приобрести знания и навыки, которые выведут на новый уровень владения Linux. Известный эксперт и автор бестселлеров Кристофер Негус делает акцент на инструментах командной строки и новейших версиях Red Hat Enterprise Linux, Fedora и Ubuntu. Шаг за шагом на подробных примерах и упражнениях вы досконально поймете операционную систему Linux и пустите знания в дело. Кроме того, в 10-м издании содержатся материалы для подготовки к экзаменам на различные сертификаты по Linux.
#linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤4
Please open Telegram to view this post
VIEW IN TELEGRAM
😁24❤3👍1💯1
Когда приложение «записало файл», это часто значит, что байты попали в page cache, а не на физический носитель. Пока данные в памяти, внезапный ребут/сбой контроллера может оставить пустой или старый файл.
fsync(fd) / fdatasync(fd) — сбрасывают данные+метаданные (или только данные) конкретного файла на устройство.O_SYNC / O_DSYNC — делают каждый write() синхронным (дорого для производительности).rename() на одном FS атомарен: либо старое имя, либо новое (без «наполовину»). Но сам факт переименования тоже нужно закрепить.data=ordered (по умолчанию): данные пишутся до фиксации метаданных журнала, снижая риск «пустых» файлов после сбоя.1. Записать во временный файл в том же каталоге.
2.
fsync(tmp) — убедиться, что байты ушли на диск.3.
rename(tmp, target) — атомарно заменить.4.
fsync(каталог) — зафиксировать запись каталога (само переименование).Мини-шпаргалка:
write tmp (same dir) -> fsync(tmp)
rename(tmp, target) -> fsync(parent dir)
#linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥4❤1
У Linux куча инструментов для диагностики — какие-то простые, а какие-то посерьёзнее. Проблемы с I/O Wait как раз из тех случаев, где нужны продвинутые утилиты и умение выжать максимум даже из базовых инструментов.
Разбираться с I/O Wait непросто, потому что в стандартной поставке есть масса средств, которые могут сказать вам одно: система упирается в ввод-вывод, и что-то не так.
Но вот pinpoint-ить конкретный процесс (или несколько), который всё тормозит, — умеют далеко не все.
#linux #ит_статьи #linux #shell #iowait #iotop #troubleshooting
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥4
Нужно запустить программу полностью без сети, без sudo, одной командой. Что выбрать?
#linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤2