Linux
7.51K subscribers
578 photos
37 videos
12 files
1.46K links
Новости и информация из мира Linux

По всем вопросам @evgenycarter
Download Telegram
👋 Привет, админы!

Если не ошибаюсь, осенью 21 года в одном из наших дата-центров после планового обновления клиентских машин начали массово падать сеансы RDP - пользователи жаловались, что после ввода пароля сессия сразу же разрывается. Оказалось, во время апдейта поставился неполностью совместимый патч безопасности, который конфликтовал с включённым на компьютерах аудиторией учетных политик.

🔥 Чтобы быстро отследить все последние установленные обновления на целевой группе машин и при необходимости откатить проблемный патч, я использовал вот такой PowerShell-скрипт:


# Получаем список компьютеров из текстового файла
$computers = Get-Content -Path "C:\Scripts\computers.txt"

# Словарь для хранения списка установленных обновлений
$updateReport = @()

foreach ($computer in $computers) {
try {
# Получаем установленные обновления за последние 7 дней
$recentUpdates = Get-HotFix -ComputerName $computer |
Where-Object { $_.InstalledOn -ge (Get-Date).AddDays(-7) }

foreach ($upd in $recentUpdates) {
$updateReport += [PSCustomObject]@{
Computer = $computer
KBArticle = $upd.HotFixID
InstalledOn = $upd.InstalledOn
}
}
}
catch {
Write-Warning "Не удалось получить обновления с сервера $computer: $_"
}
}

# Сохраняем отчёт в CSV
$csvPath = "C:\Scripts\RecentUpdatesReport.csv"
$updateReport | Export-Csv -Path $csvPath -NoTypeInformation -Encoding UTF8

Write-Host "Отчет сохранен в $csvPath"


С помощью этого отчёта мы быстро определили, что именно на всех проблемных ПК установился KB5005565. Чтобы откатить его удалённо, использовал команду:


Invoke-Command -ComputerName (Get-Content "C:\Scripts\computers.txt") -ScriptBlock {
wusa /uninstall /kb:5005565 /quiet /norestart
}


После перезапуска машин RDP-сессии вернулись в норму. Плюс я добавил правило на WSUS, чтобы этот конкретный патч не раздавался снова до выяснения причины конфликта.

👉 @win_sysadmin
👍13👎4🔥42
Совет дня по Linux

Расширение скобок {} — одна из самых недооценённых, но мощных возможностей оболочек Linux. Оно позволяет удобно и быстро генерировать произвольные строки или числовые последовательности без ручного ввода.

Чтобы использовать расширение скобок, укажите начало и конец последовательности внутри фигурных скобок {}, разделённых двумя точками .. . Например:

$ echo {1..5}
1 2 3 4 5

Это выведет числа от 1 до 5.

Также работает с буквами:

$ echo {a..e}
a b c d e


Примеры практического применения расширения скобок:

Создание файлов с последовательными именами:

$ touch report-{1..12}.txt

Использование диапазонов в циклах:

$ for i in {1..10}; do ...; done

Создание нескольких каталогов за один вызов:

$ mkdir backup-{1..4}

Перемещение группы файлов:

$ mv data-{1..5}.txt /path/to/destination/


В следующий раз, когда нужно вывести последовательность — не набирайте всё вручную. Используйте расширение скобок и сэкономьте время и усилия.
👍244😁2
В чем разница между объявлением переменной export VAR="VALUE" и VAR="VALUE" в bash?

В bash (и других оболочках Unix) разница между командами export VAR="VALUE" и VAR="VALUE" связана с областью видимости переменной:

1. VAR="VALUE":
- Это обычное объявление переменной в текущей оболочке (сессии).
- Переменная VAR будет доступна только внутри текущей сессии, и не будет передаваться дочерним процессам, запущенным этой сессией.
- Например, если вы запустите новую команду или скрипт из текущей оболочки, VAR не будет доступна в этом дочернем процессе.

2. export VAR="VALUE":
- Команда export делает переменную VAR доступной для всех дочерних процессов текущей оболочки.
- То есть, VAR будет установлена и доступна не только в текущей сессии, но и во всех процессах, запущенных из этой сессии.
- Это полезно, когда необходимо передать значение переменной в другие программы или скрипты, запущенные из текущей оболочки.

Для примера


# Присвоение переменной без export
VAR="Hello"
bash -c 'echo $VAR' # Ничего не выведет, так как VAR не экспортирована

# Присвоение переменной с export
export VAR="Hello"
bash -c 'echo $VAR' # Выведет "Hello", так как VAR экспортирована


Таким образом, export используется для того, чтобы переменная была доступна в дочерних процессах, тогда как обычное присвоение без export ограничивает переменную только текущей сессией.
👍216👎2
Краткий совет по Linux

Хотите повторно использовать последний аргумент из предыдущей команды?

Используйте !$, это сэкономит время и нажатия клавиш.
👍24🔥164
This media is not supported in your browser
VIEW IN TELEGRAM
Быстрый совет по Linux

В терминале сочетание Alt + . – это небольшой, но очень мощный шорткат для повышения продуктивности. Оно вставляет последний аргумент предыдущей команды в текущую позицию курсора.

Идеально подходит для повторного использования длинных путей к файлам или имён файлов без необходимости набирать их заново. Если нажимать Alt + . несколько раз подряд, можно перебирать аргументы из более ранних команд в истории, двигаясь назад.

Это позволяет быстро и точно извлекать и переиспользовать ранее введённые данные, экономя время и снижая количество ошибок
👍357
Шпаргалка по Linux
🔥22👍12👎21
This media is not supported in your browser
VIEW IN TELEGRAM
Когда пытаешься выйти из VIM 😂
😁44🤯3
❗️Полезные каналы для сисадмина!

https://t.me/sysadminof Книги для админов, полезные материалы

https://t.me/i_odmin Все для системного администратора

https://t.me/i_odmin_book Библиотека Системного Администратора

https://t.me/i_odmin_chat Чат системных администраторов

https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.

https://t.me/bash_srv Bash Советы

https://t.me/win_sysadmin Системный Администратор Windows

https://t.me/devopslib Библиотека девопса | DevOps, SRE, Sysadmin

https://t.me/linux_odmin Linux: Системный администратор

https://t.me/devops_star DevOps Star (Звезда Девопса)

https://t.me/i_linux Системный администратор

https://t.me/linuxchmod Linux

https://t.me/sys_adminos Системный Администратор

https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)

https://t.me/sysadminoff Новости Линукс Linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Сотрудник службы поддержки уже решает вашу проблему 😀
😁179🔥4🤯2
Перевод статей из серии «Кунг-фу стиля Linux»:

Удобная работа с файлами по SSH
Мониторинг дисковой подсистемы
Глобальный поиск и замена строк с помощью ripgrep
Упрощение работы с awk
Наблюдение за файловой системой
Наблюдение за файлами
Удобный доступ к справке при работе с bash
Великая сила make
Устранение неполадок в работе incron
Расшаривание терминала в браузере
Синхронизация настроек
Бесплатный VPN по SSH
Превращение веб-приложений в полноценные программы
Утилита marker и меню для командной строки
sudo и поворот двух ключей
Программное управление окнами
Организация работы программ после выхода из системы
Регулярные выражения
Запуск команд
Разбираемся с последовательными портами
Базы данных — это файловые системы нового уровня
О повторении кое-каких событий сетевой истории
PDF для пингвинов
Делаем все и сразу
Файловые системы пользовательского пространства теперь доступны и в Windows
Делиться — это плохо
Автоматическое генерирование заголовочных файлов
Простые конвейеры
🔥12👍7😁1
🚀 Подборка полезных IT каналов в Max


Системное администрирование, DevOps 📌

https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.

1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С

Программирование C++📌

https://max.ru/cpp_lib Библиотека C/C++ разработчика

Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика

Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика

GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных

Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков

Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов

Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻

Шутки программистов 📌
https://max.ru/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free

Книги, статьи для дизайнеров 📌

https://max.ru/odesigners Статьи, книги для дизайнеров

Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике

Вакансии 📌
https://max.ru/progjob Вакансии в IT

Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных


Бонус 📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
💩27👎8🤬72👍2
Совет для Linux💡

Получайте уведомления, когда ваши команды в терминале завершатся!


$ sudo apt update; notify-send "Обновление завершено" "Обновления получены"


Замените apt update на любую команду, выполнение которой займет время. Не забудьте сначала установить inotify-tools:


$ sudo apt install inotify-tools
👍211