wheezy to stretch update
При изменение репоса wheezy -> stretch и выполнении команды
Поможет доустановка пакетов:
#troubleshooting
При изменение репоса wheezy -> stretch и выполнении команды
apt-get update
может вылезти ошибка связанная с отсутствием ключей.W: There is no public key available for the following key IDs:
Поможет доустановка пакетов:
apt-get install debian-keyring debian-archive-keyring
#troubleshooting
Включаем coredump для ОС c systemd на борту
1. ставим пакет для управления - systemd-coredump
2. разрешаем дампить coredump процессам:
в файле /etc/systemd/system.conf правим
3. опционально разрешаем это для root:
в файле /etc/security/limits.d/core.conf
4. задаем поведение для демона, создающего дампы:
в файле /etc/sysctl.d/coredumps.conf
5. применение:
6. проверка:
в /var/lib/coredumps (или /var/tmp по-умолчанию) создастся coredump.
З.Ы. без каких либо настроек после установки пакета можно сразу управлять дампами через команду
#troubleshooting #coredump
1. ставим пакет для управления - systemd-coredump
2. разрешаем дампить coredump процессам:
в файле /etc/systemd/system.conf правим
DefaultLimitCORE=infinity
3. опционально разрешаем это для root:
в файле /etc/security/limits.d/core.conf
root hard core unlimited
root soft core unlimited
4. задаем поведение для демона, создающего дампы:
в файле /etc/sysctl.d/coredumps.conf
kernel.core_pattern = /var/lib/coredumps/core-%e-sig%s-user%u-group%g-pid%p-time%t
kernel.core_uses_pid = 1
fs.suid_dumpable = 2
5. применение:
systemctl daemon-reexec
или reboot
6. проверка:
kill -11 <PID>
в /var/lib/coredumps (или /var/tmp по-умолчанию) создастся coredump.
З.Ы. без каких либо настроек после установки пакета можно сразу управлять дампами через команду
coredumpctl list
и coredumpctl dump
#troubleshooting #coredump
перезапуск гнома
alt+F2 -> ввести букву r -> нажать enter
Окна при этом не будут закрыты. Аналог команды для терминала:
#troubleshooting
alt+F2 -> ввести букву r -> нажать enter
Окна при этом не будут закрыты. Аналог команды для терминала:
gnome-shell --replace
#troubleshooting
Forwarded from Кавычка (Bo0oM)
При внедрении собственных шаблонов в серверные шаблонизаторы (уязвимость SSTI) — эксплуатацию можно автоматизировать с помощью утилиты tplmap. Она и шаблонизатор подберет, и удобный шелл откроет для выполнения произвольного кода. Еще и плагин к Burp Suite имеет.
https://github.com/epinna/tplmap
https://github.com/epinna/tplmap
GitHub
GitHub - epinna/tplmap: Server-Side Template Injection and Code Injection Detection and Exploitation Tool
Server-Side Template Injection and Code Injection Detection and Exploitation Tool - epinna/tplmap
Kubernetes 1.10.x -> 1.11.x
Грабли! Грабли! Грабли! куда же без них...
Традиционно выкладываю свой опыт обновления тестового кластера на новую мажорную версию. Итак, прежде чем обновляться, читаем:
Тыц: https://github.com/kubernetes/kubernetes/issues/65863
и Тыц: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.11.md
#kubernetes #troubleshooting
Грабли! Грабли! Грабли! куда же без них...
Традиционно выкладываю свой опыт обновления тестового кластера на новую мажорную версию. Итак, прежде чем обновляться, читаем:
Тыц: https://github.com/kubernetes/kubernetes/issues/65863
и Тыц: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.11.md
#kubernetes #troubleshooting
GitHub
failed to load Kubelet config file /var/lib/kubelet/config.yaml after kubelet update · Issue #65863 · kubernetes/kubernetes
Is this a BUG REPORT or FEATURE REQUEST?: Uncomment only one, leave it on its own line: /kind bug What happened: /var/lib/kubelet/config.yaml got removed after kubelet update. What you expected to ...
Интересно, этот кусок говна, вообще способен нормально обновляться между мажорными версиями, а не ломать все нахер?...
Сегодня праздник у девчат, сегодня будут танцы
Поговаривают, что сегодня день благодарности системному администратору. Чувствуете радость? Веселье? Поверните голову налево - кивните челяди. Поверните направо - оцените с прищуром гору подарков. Осторожно! От такого головокружения можно свалиться с трона. Так себе сказка, правда? И оборудование в сказки не верит. И софт. И пользователи. Да и админы уже пошли не те. Стереотипные люди, которых узнавали по пиву и свитеру уже канули в историю. Сейчас то некоторые и звук модема не узнают и шлейф к 3,5" IDE диску не присоединят. Технологии довольно-таки сильно шагнули вперед. Появилось больше абстракций - надстроек над управлением системами, которые позволяют даже домохозяйкам думать что они - сисадмины. Но, остановись на секунду, и вот уже ты того и гляди станешь домохозяйкой, если не будешь постоянно и постоянно что-то изучать. Знания, которые у тебя были 5 лет назад на 30% уже сейчас не нужны. И вот уже вчерашний студент, который не тратил время на изучение ненужного сейчас материала начинает знать в каких-то областях уже больше тебя. IT одна из самых быстроразвивающихся отраслей и в ней постоянно нужно учиться и быть в тонусе. И хоть сегодня обычный день, я все равно рад за то что есть такие люди, которые не боятся и кабель проложить и конденсатор перепаять и модуль написать к любимому приложению. С праздником вас, всех заинтересованных в технологиях, с днем системного администратора!
#sysadminsday
Поговаривают, что сегодня день благодарности системному администратору. Чувствуете радость? Веселье? Поверните голову налево - кивните челяди. Поверните направо - оцените с прищуром гору подарков. Осторожно! От такого головокружения можно свалиться с трона. Так себе сказка, правда? И оборудование в сказки не верит. И софт. И пользователи. Да и админы уже пошли не те. Стереотипные люди, которых узнавали по пиву и свитеру уже канули в историю. Сейчас то некоторые и звук модема не узнают и шлейф к 3,5" IDE диску не присоединят. Технологии довольно-таки сильно шагнули вперед. Появилось больше абстракций - надстроек над управлением системами, которые позволяют даже домохозяйкам думать что они - сисадмины. Но, остановись на секунду, и вот уже ты того и гляди станешь домохозяйкой, если не будешь постоянно и постоянно что-то изучать. Знания, которые у тебя были 5 лет назад на 30% уже сейчас не нужны. И вот уже вчерашний студент, который не тратил время на изучение ненужного сейчас материала начинает знать в каких-то областях уже больше тебя. IT одна из самых быстроразвивающихся отраслей и в ней постоянно нужно учиться и быть в тонусе. И хоть сегодня обычный день, я все равно рад за то что есть такие люди, которые не боятся и кабель проложить и конденсатор перепаять и модуль написать к любимому приложению. С праздником вас, всех заинтересованных в технологиях, с днем системного администратора!
#sysadminsday
Получаем информацию о смонтированных rbd на нодах куба
Запускать на ноде куба. Этот скрипт полезен, если у вас дохлый мастер, иначе все это куда проще достается из апишки.
Результат:
т.е. отсюда можно узнать какому конкретно контейнеру какой конкретно image соответствует. Это полезно когда у вас динамический контроллер и сдохший мастер - чтобы забрать данные с запущенных подов.
#ceph #kubernetes #troubleshooting
Запускать на ноде куба. Этот скрипт полезен, если у вас дохлый мастер, иначе все это куда проще достается из апишки.
#!/bin/bash
IFS=$'\n'
for i in $(docker ps); do
ID=$(echo $i | awk '{print $1}');
for j in $(docker inspect $ID | grep "volumes/kubernetes.io~rbd"|grep -v "Source"); do
NAME=$(docker inspect $ID | grep "Hostname\"")
external_mpath=$(echo $j | awk -F\: '{print $1}' | grep -o '/var/lib.*')
internal_mpath=$(echo $j | awk -F\: '{print $2}')
rbd=$(mount | grep $external_mpath | awk '{print $1}')
dnumber=$(echo $rbd | egrep -o "[0-9]+")
image=$(cat /sys/bus/rbd/devices/${dnumber}/name)
echo ""
echo "name: $NAME"
echo "rbd: $rbd"
echo "mount path: $internal_mpath"
echo "image: $image"
done
done
Результат:
name: "Hostname": "mongodb-database-865cfb8d6f-lgfnl",
rbd: /dev/rbd8
mount path: /data/db",
image: kubernetes-dynamic-pvc-af3f3636-635d-11e8-9801-0a580af4013f
т.е. отсюда можно узнать какому конкретно контейнеру какой конкретно image соответствует. Это полезно когда у вас динамический контроллер и сдохший мастер - чтобы забрать данные с запущенных подов.
#ceph #kubernetes #troubleshooting
apt update error
Ошибка:
#troubleshooting #apt
Ошибка:
Err:1 http://archive.ubuntu.com/ubuntu xenial InReleaseНа самом деле проблема не о том, о чём написано в ошибке - проблема в записи в директорию /tmp.
Couldn't create tempfiles for splitting up /var/lib/apt/lists/partial/archive.ubuntu.com_ubuntu_dists_xenial_InRelease
Could not execute 'apt-key' to verify signature (is gnupg installed?)
#troubleshooting #apt
GIT отделить ветку в отдельный репозиторий
вариант 1:
вариант 2:
#git
вариант 1:
git push url://to/new/repository.git branch-to-move:new-branch-name
вариант 2:
git clone -b newbranch CurrentRepo NewRepo
#git
Forwarded from mindsellers
Полноценное логирование действий пользователей в консоли
Все, конечно, знают о ~/.bash_history. Равно как и о том, что его нужно за собой чистить, особенно, если занимаешься на чужой системе чем-то интересным. Недавно мне стало интересно, как же хранить реальные логи действий, да желательно с привязкой к тому, кто реально хулиганил на системе(мало ли, у кого гипотетически есть sudo) и ко времени.
В интернетах наткнулся на проект snoopy logger. Потестил, и выяснил, что штука вполне неплохая, лог пишет исправно, ставится или скриптами от разработчиков или из репозиториев (в Убунтовских есть).
Не вижу смысла в дальнейших подробностях - заходим и ставим!
https://github.com/a2o/snoopy
#linux #bash
Все, конечно, знают о ~/.bash_history. Равно как и о том, что его нужно за собой чистить, особенно, если занимаешься на чужой системе чем-то интересным. Недавно мне стало интересно, как же хранить реальные логи действий, да желательно с привязкой к тому, кто реально хулиганил на системе(мало ли, у кого гипотетически есть sudo) и ко времени.
В интернетах наткнулся на проект snoopy logger. Потестил, и выяснил, что штука вполне неплохая, лог пишет исправно, ставится или скриптами от разработчиков или из репозиториев (в Убунтовских есть).
Не вижу смысла в дальнейших подробностях - заходим и ставим!
https://github.com/a2o/snoopy
#linux #bash
GitHub
GitHub - a2o/snoopy: Snoopy Command Logger is a small library that logs all program executions on your Linux/BSD system.
Snoopy Command Logger is a small library that logs all program executions on your Linux/BSD system. - a2o/snoopy
В добавление к предыдущему посту от @CatSchrodinger
>>>>
Касательно snoopy - часто используют auditd и для логирования команд лайна пользователя нужно в /etc/audit/audit.rules добавить строку: -a exit,always -F arch=b64 -S execve
Правда, будут проблемы с логированием последовательного/каскадного выполнения команд - выполнение каждой команды запишется отдельной строкой в лог.
>>>>
Касательно snoopy - часто используют auditd и для логирования команд лайна пользователя нужно в /etc/audit/audit.rules добавить строку: -a exit,always -F arch=b64 -S execve
Правда, будут проблемы с логированием последовательного/каскадного выполнения команд - выполнение каждой команды запишется отдельной строкой в лог.
mouse3 и буфер обмена в linux
Довольно-таки удобно в linux использовать второй буфер обмена. Чтобы им воспользоваться достаточно нужный текст всего-навсего выделить. чтобы вставить текст куда-либо - нужно нажать на колесико или приложить к тачпаду 3 пальца. также к сожалению не все пользуются выделением "слова" по двойному клику. Например в консоли, чтобы выделить и скопировать какое-то слово достаточно просто дважды кликнуть по нему. а затем вставить в нужное местос помощью mouse3 (колесико или 3 пальца).
В данном контексте слово - набор символов отделенное с обоих сторон пробелами.
Итого:
Выделить: дважды кликнуть по слову mouse1 (или тапнуть два раза по тачбару одним пальцем)
Скопировать:
1й буфер обмена: то что выделено - уже находится в нем
2й буфер обмена: ctrl+c | shift+ctlr+c (в терминале) / пкм - скопировать
Вставить:
1й буфер обмена: mouse3 | тап 3 пальцами по тач паду
2й буфер обмена: ctrl+v | shift+ctlr+v (в терминале) / пкм - вставить
Не единичны случаи когда нужно скопировать несколько вещей. тогда один блок вы выделяете и копируете как обычно, а второй - выделяете и... все. он уже в буфере обмена.
З.Ы. порядок занесения текста в буфер обмена важен! сначала выделить - ctrl+c (по сути здесь текст находится уже в двух буферах обмена!) потом просто выдлить текст для помещения его во второй буфер обмена.
З.З.Ы. эта фишка со вторым буфером обмена по mouse3 работает везде, а не только в терминале.
И на сладкое. Не все знают, что также по mouse3 можно в браузере открывать ссылки в новом окне. типа не обязательно каждый раз по ней кликать пкм - открыть в новом окне. mouse3 делает это за вас.
#usefulls
Довольно-таки удобно в linux использовать второй буфер обмена. Чтобы им воспользоваться достаточно нужный текст всего-навсего выделить. чтобы вставить текст куда-либо - нужно нажать на колесико или приложить к тачпаду 3 пальца. также к сожалению не все пользуются выделением "слова" по двойному клику. Например в консоли, чтобы выделить и скопировать какое-то слово достаточно просто дважды кликнуть по нему. а затем вставить в нужное местос помощью mouse3 (колесико или 3 пальца).
В данном контексте слово - набор символов отделенное с обоих сторон пробелами.
Итого:
Выделить: дважды кликнуть по слову mouse1 (или тапнуть два раза по тачбару одним пальцем)
Скопировать:
1й буфер обмена: то что выделено - уже находится в нем
2й буфер обмена: ctrl+c | shift+ctlr+c (в терминале) / пкм - скопировать
Вставить:
1й буфер обмена: mouse3 | тап 3 пальцами по тач паду
2й буфер обмена: ctrl+v | shift+ctlr+v (в терминале) / пкм - вставить
Не единичны случаи когда нужно скопировать несколько вещей. тогда один блок вы выделяете и копируете как обычно, а второй - выделяете и... все. он уже в буфере обмена.
З.Ы. порядок занесения текста в буфер обмена важен! сначала выделить - ctrl+c (по сути здесь текст находится уже в двух буферах обмена!) потом просто выдлить текст для помещения его во второй буфер обмена.
З.З.Ы. эта фишка со вторым буфером обмена по mouse3 работает везде, а не только в терминале.
И на сладкое. Не все знают, что также по mouse3 можно в браузере открывать ссылки в новом окне. типа не обязательно каждый раз по ней кликать пкм - открыть в новом окне. mouse3 делает это за вас.
#usefulls
bash использование grep как условия для if
хотелось бы составить такую конструкцию:
Проблема в том, что grep выдает на stdout строку, которую он нашел. и тогда на if подается набор каких-то отфильтрованных символов. шо бы таки этого избежать, можно просто использовать с грепом ключ --quiet. тогда if реагирует на код возврата - нашел - не нашел - true & false. как раз то что нужно для условия.
#bash_tips_and_tricks
хотелось бы составить такую конструкцию:
если бла-бла-бла (вывод) | grep <expression> то выполнить <cmd>
Проблема в том, что grep выдает на stdout строку, которую он нашел. и тогда на if подается набор каких-то отфильтрованных символов. шо бы таки этого избежать, можно просто использовать с грепом ключ --quiet. тогда if реагирует на код возврата - нашел - не нашел - true & false. как раз то что нужно для условия.
#bash_tips_and_tricks
Подстава с centos:6 и docker
https://github.com/CentOS/sig-cloud-instance-images/issues/103
В итоге bash запустить там не удастся.
https://github.com/CentOS/sig-cloud-instance-images/issues/103
В итоге bash запустить там не удастся.
GitHub
centos:6 image segfaults on newer Linux kernels with Spectre V1 mitigation · Issue #103 · CentOS/sig-cloud-instance-images
Running a docker run --rm -it centos:6 bash fails with exit status 139 (i.e. bash exits with SIGSEGV) on Linux kernel 4.15.9. Downgrading to 4.14.15 (which is vulnerable to Spectre V1) gets rid of ...
Forwarded from Dimyus
Добрый день! может у кого-нибудь есть инфа где в Москве можно арендовать ресурсов на 560 ядер (3500 GB mem, 28 TB stor) на 3 месяца, возможно с пролонгацией.
Jenkins heartbeat error
err:
В моем случае jenkins находится в k8s, катал его с помощью helm. В качестве решения в values.yaml:
#jenkins #kubernetes #helm #troubleshooting
err:
wrapper script does not seem to be touching the log file in xxxxx
(JENKINS-48300: if on a laggy filesystem, consider -Dorg.jenkinsci.plugins.durabletask.BourneShellScript.HEARTBEAT_CHECK_INTERVAL=300)
В моем случае jenkins находится в k8s, катал его с помощью helm. В качестве решения в values.yaml:
Master:
JavaOpts: "-Dorg.jenkinsci.plugins.durabletask.BourneShellScript.HEARTBEAT_CHECK_INTERVAL=3600"
#jenkins #kubernetes #helm #troubleshooting