Админим с Буквой
5.52K subscribers
303 photos
8 videos
59 files
1.16K links
Канал о системном администрировании, DevOps и немного Инфобеза.

По всем вопросам обращаться к @bykva. Рекламу не размещаю.
Download Telegram
Новости IT, суббота, 06.07.2019

Выпуск языка программирования Rust 1.36
https://u.to/XrDMFQ

Предложения относительно уязвимостей и защиты моделей машинного обучения
https://u.to/wqTMFQ

Новый оператор spaceship (космический корабль) в C++20
https://u.to/X6XMFQ

«Проще ответить, чем продолжать молчать» — большое интервью с отцом транзакционной памяти, Морисом Херлихи
https://u.to/n6jMFQ

Проект Snuffleupagus развивает PHP-модуль для блокирования уязвимостей
https://u.to/-KnMFQ

#news
Terraform: Up & Running, 2nd edition Early Release is now available!

Отличный пост от Yevgeniy Brikman (компания Gruntwork) анонсирующий его новую книгу Terraform: Up & Running, 2nd edition и изменения в Terraform за последние 2 года, которые прошли с выпуска первого издания книги.

https://blog.gruntwork.io/terraform-up-running-2nd-edition-early-release-is-now-available-b104fc29783f
найти можно, например, здесь: https://github.com/rongfengliang/ebooks
Новости IT, вторник, 09.07.2019

Резкость по всему кадру: физики решили оптическую проблему 2000-летней давности
https://u.to/9s3RFQ

Tor исправит ошибку, из-за которой интернет-криминал сбегал в другие «секретные сети»
https://u.to/eM-RFQ

Власти выделяют средства на создание российского конкурента «Википедии»
https://u.to/QdHRFQ

Зафиксирована подстановка вредоносного кода в Ruby-пакет Strong_password
https://u.to/CtTRFQ

Релиз ядра Linux 5.2
https://u.to/ntTRFQ

#news
Новости IT, среда, 10.07.2019

На компьютере программы «Аполлон» попробовали майнить биткоин: 10,3 секунды на хэш
https://u.to/LW-TFQ

Релиз Firefox 68
https://u.to/gnDTFQ

Новый бэкдор атакует пользователей торрент-сервисов
https://u.to/ZnPTFQ

Приложение Google Фото скоро получит массу новых функций
https://u.to/z3vTFQ

#news
Проблемы при переходе на buster

Сейчас только со стороны desktop. Пока список маленький, по мере выявления проблем буду добавлять

- slack desktop требует пакета libcurl3, но в buster он заменяется на libcurl4. При этом сам слак запускается и работает. В целом проблемы не вижу
- virtualbox-6.0 аналогично требует пакет libcurl3. Под buster vbox еще не собрали. как workaround - можно поставить из bionic.

#troubleshooting #debian10 #buster
как массово переименовывать файлы по маске

дано: file.ololo.orig, результат: file.ololo

Пример 1:
for i in $(ls *.back); do echo $i is now ${i/back/hi-bo0om}; done
1.2.back is now 1.2.hi-bo0om
3.4.back is now 3.4.hi-bo0om
5.6.back is now 5.6.hi-bo0om

Пример 2:
find -type f -name "*.html~" |
while read f; do
mv "$f" "${f%\~}"
done

Пример 3:
for i in $(ls *.back); do basename $i .back; done

Пример 4:
basename -s .back $(find ./ -name *.back)

Пример 5: (нужно ставить доп утилиту)
rename 's/.back/.hi-bo0om/g' *

UPD Дополнительное чтиво:
https://mywiki.wooledge.org/UsingFind
https://mywiki.wooledge.org/ParsingLs

#bash_tips_and_tricks
Совсем скоро стартуют сразу 2 курса: “Администратор Linux” и “Безопасность Linux”

💥Пройдите вступительный тест, чтобы поступить в группу и воспользоваться летней 15% скидкой на один курс или забрать оба по специальной цене (предложение действует по 14.07 включительно).

“Администратор Linux” – научит развертыванию, настройке и обслуживанию высокодоступных и надежных систем, построенных на базе Linux.
👉🏻СМОТРЕТЬ ДЕТАЛЬНЕЕ: https://otus.pw/eplO/

“Безопасность Linux” – сформирует практические навыки по обеспечению надежного уровня защищенности IT-инфраструктуры и предотвращения хакерских атак на ПО и рабочее окружение Linux.
👉🏻СМОТРЕТЬ ДЕТАЛЬНЕЕ: https://otus.pw/aUtK/

⚡️Удачного тестирования − и до встречи на занятиях! Не упустите шанс начать учиться по выгодной цене у экспертов отрасли с большим стажем работы в крупнейших проектах рунета.

#реклама
парсим вывод и приводим в нужный вид

Тут в чате прислали ссылку на пример того как человек парсил вывод сайта, чтобы выцепить видео:

$ curl -s "https://www.docker.com/dockercon/2019-videos/" | grep -i -A3  "2019-videos?"  | grep -v "\-\-" | grep -v "img id" | sed 's/<a href="/https:\/\/www.docker.com/g' | sed 's/">//g' | sed 's/<p>//g' | sed 's/<\/p>//g' | sed 'n;G;'

кмк это немножечко не практично. И поэтому в рамках самообучения я решил поднатаскать свои навыки в awk. В итоге получился такой вариант:

curl -s "https://www.docker.com/dockercon/2019-videos/" | \
awk 'match($0, /dockercon\/2019-videos\?watch=.*[a-zA-Z0-9]/) \
{ print "https://www.docker.com/"substr( $0, RSTART, RLENGTH ) } \
{ getline; if ( match($0, /<p>(.*)<\/p>/, m) ){print m[1]"\n"}}'

З.Ы. не являюсь гуру авк, парсинга и прочего. Если у вас есть мнение что мое решение не совсем верно или можно сделать красивее\лаконичнее, прошу вас писать замечения в ЛС (с пруфами) и я обязательно опубликую ваш вариант.

#awk #sed #grep
Новости IT, четверг, 11.07.2019

Рассекречены первые отличия новой ОС Huawei от Android
https://u.to/7krVFQ

Выпуск GnuPG 2.2.17 с изменениями для противостояния атаке на серверы ключей
https://u.to/XE7VFQ

Релиз дистрибутива Tails 3.15 и браузера Tor Browser 8.5.4
https://u.to/XE-VFQ

Гонщик управлял реальной машиной при помощи шлема Samsung Gear VR и смартфона Samsung Galaxy S10 5G
https://u.to/C1TVFQ

#news
Админим с Буквой
парсим вывод и приводим в нужный вид Тут в чате прислали ссылку на пример того как человек парсил вывод сайта, чтобы выцепить видео: $ curl -s "https://www.docker.com/dockercon/2019-videos/" | grep -i -A3 "2019-videos?" | grep -v "\-\-" | grep -v "img…
От одного из читателей поступил вариант упрощения изначального, авторского, парсинга:


curl -s "https://www.docker.com/dockercon/2019-videos/" | grep -i -A3 "2019-videos?" | grep -v -e "\-\-" -e "img id" | sed -e 's/<a href="/https:\/\/www.docker.com/g' -e 's/"
>//g' -e 'n;G;' -e 's/<p>//g' -e 's/<\/p>//g'


и также свой вариант, на питоне.


python3 -c "from bs4 import BeautifulSoup; from urllib.request import urlopen; html = BeautifulSoup(urlopen('https://www.docker.com/dockercon/2019-videos/').read()); x = lambda
x: '{} https://docker.com{}'.format(x.find('p').text, x.find('a').get('href')); print(*list(map(x, html.find_all('div', 'video'))), sep='\n')"
._.
Админим с Буквой
парсим вывод и приводим в нужный вид Тут в чате прислали ссылку на пример того как человек парсил вывод сайта, чтобы выцепить видео: $ curl -s "https://www.docker.com/dockercon/2019-videos/" | grep -i -A3 "2019-videos?" | grep -v "\-\-" | grep -v "img…
еще один вариант, в котором без пол-литра не разберешься...

puts curl -s "https://www.docker.com/dockercon/2019-videos".scan(/<a href=\"([a-z\/0-9\-\?=]{1,})\".[\s<!--a-z\=:\/\.A-Z0-9>]{1,}<p>([\+\"\%\'\#\@A-Za-z0-9\s&:\/\-\?\,()\.]{1,})<\/p>/)
Бесплатный онлайн практикум DevOps by REBRAIN: Docker. Prometheus

Регистрация
- http://bit.ly/2XHFZA6
Количество мест строго ограничено!

Практикум по освоению DevOps

Время проведения:
16 Июля (Вторник) в 19:00 по МСК

Что будет на практикуме?

🔹Зачем нужны time series базы и почему все уходят с Zabbix?
🔹Разворачиваем Prometheus и подключаем экспортеры
🔹Как начать мониторить docker за 5 минут?

Кто ведет?

Василий Озеров - основатель агентства Fevlake (fevlake.com) и действующий Devops-инженер (опыт в Devops более 5 лет). Регулярно выступает на RootConf, DevOpsConf Russia, HighLoad.

Открытые еженедельные DevOps практикумы - https://bit.ly/2CGmm3C
Присоединяйтесь!

#реклама
Регистрация: https://bit.ly/2CGmm3C
Forwarded from kazgeek
@Bykva, я тоже хочу в телевизор!
ruby -r 'open-uri' -r 'nokogiri' -e 'Nokogiri::HTML(open("https://www.docker.com/dockercon/2019-videos/")).css(".video a").each {|a| puts "https://www.docker.com/dockercon/2019-videos#{a["href"]}"; puts a.css("p").text; puts}'
Парсим вывод сайта по-быстрому

В данной заметке hetzner взят для примера. Я знаю про api, спасибо, не надо это комментировать.

Еще одну фишечку подсказали наши фронты, о том как получить все тело документа. В чем суть проблемы? В hetzner используется метод подгрузки информации о сервере (его адрес, имя итп) в виде отдельного документа - поэтому невозможно получить все данные в один шаг через curl - мы всегда будем получать только исходный каркас страницы без сведений о сервере. Но можно сделать это довольно быстро, но с применением небольшого количества ручной работы
1) раскрыть все сервера и дождаться пока страница прогрузится
2) зайти в консоль разработчика и ввести:
copy(document.body.innerHTML)
Это поместит тело итоговой страницы в буфер обмена
3) вставить в любой текстовый документ и далее парсить как хотим

З.Ы. это не самый элегантный способ решения задачи - как минимум его нельзя автоматизировать. НО, я считаю что полезно знать такой способ для случаев когда надо сделать быстро и на один раз.

#hetzner #web
Особенности яндекс облака

проблема: managed postgresql дропает ssl-соединение

PG::UnableToSend: SSL connection has been closed unexpectedly

Ответ команды разработки:

Информация по количеству соединений доступна и в разделе "мониторинг" на странице кластера. Можно посмотреть в
yc managed-postgresql user list --cluster-id <cluster id>

Количество разрешенных пользовательских разрешенных коннектов можно также изменить через CLI. Также можно увеличивать значение max_connections, если оно достигло предела, то следует увеличивать flavor.

#yacloud
Всех разработчиков с опытом работы с базами данных OTUS Онлайн-образование приглашает пройти вступительный тест и принять участие в открытом вебинаре «Индексы в SQL Server» https://otus.pw/R5a9/

Речь пойдет о том, какие индексы бывают в SQL Server и как выглядят структуры данных индекса. А также на вебинаре обсудят, когда и как применяются составные индексы.

Вебинар пройдет в рамках наборе на профессиональный онлайн-курс «MS SQL Server разработчик». Если вы работали с базами данных, писали или читали простые запросы, знаете типы данных и основные операторы на базовом уровне – то это курс для вас. Проверьте свою готовность к обучению на курсе вступительным тестом и приходите за знаниями https://otus.pw/qnuS/

Проведет занятие преподаватель курса Кристина Кучерова.

Сдавайте вступительный тест и подключайтесь 15 июля в 20.00 (мск) − будет интересно и профессионально.

#реклама
Новости IT, понедельник, 15.07.2019

Harmony. Как вам такое название операционной системы Huawei?
https://u.to/vPnbFQ

Xiaomi рассказала о новых функциях для своих смартфонов
https://u.to/TvrbFQ

Вирус Agent Smith заразил 25 миллионов устройств под управлением ОС Android
https://u.to/pPrbFQ

В сеть утекло 2 млрд записей логов пользователей умных устройств компании Orvibo
https://u.to/HPvbFQ

Изобретатель компьютерных паролей Фернандо Корбато скончался в возрасте 93 лет
https://u.to/oPvbFQ

#news