AssGuard

AssGuard

пикабушник
пол: мужской
поставил 3524 плюса и 45 минусов
отредактировал 0 постов
проголосовал за 0 редактирований
32К рейтинг 93 подписчика 3252 комментария 51 пост 18 в "горячем"
206

Кошка Лиза пристроена

Два года назад я запилил пост про нашу кошку Лизу.

Почти год назад я запилил пост про то что нужно пристроить её.

В итоге в июле я собственноручно отвёз Лизу в другой город к тестю и тёще и она с тех пор живет там. И судя по всему ей там нравится)))

От корма отучилась, ест всё. Ловит мышей. Такая же недотрога, но любит компанию.

Кошка Лиза пристроена Длиннопост, Кот, Добро, Пристроили, Домашние животные
Кошка Лиза пристроена Длиннопост, Кот, Добро, Пристроили, Домашние животные
Кошка Лиза пристроена Длиннопост, Кот, Добро, Пристроили, Домашние животные
Кошка Лиза пристроена Длиннопост, Кот, Добро, Пристроили, Домашние животные
Кошка Лиза пристроена Длиннопост, Кот, Добро, Пристроили, Домашние животные
Кошка Лиза пристроена Длиннопост, Кот, Добро, Пристроили, Домашние животные
Кошка Лиза пристроена Длиннопост, Кот, Добро, Пристроили, Домашние животные
Кошка Лиза пристроена Длиннопост, Кот, Добро, Пристроили, Домашние животные
Показать полностью 8
192

Вот такого красавца встретил в подвале на работе! #2

Кот из предыдущего поста https://pikabu.ru/story/vot_takogo_krasavtsa_vstretil_v_podv... после выполнения задачи по отлову мышей был взят домой одной из сотрудниц.


Сейчас же, когда снова появились мыши, завхоз принес этого красавца(или красавицу?)

Вот такого красавца встретил в подвале на работе! #2 Кот, Котомафия, Длиннопост, Фотография
Вот такого красавца встретил в подвале на работе! #2 Кот, Котомафия, Длиннопост, Фотография
Вот такого красавца встретил в подвале на работе! #2 Кот, Котомафия, Длиннопост, Фотография
Вот такого красавца встретил в подвале на работе! #2 Кот, Котомафия, Длиннопост, Фотография
Вот такого красавца встретил в подвале на работе! #2 Кот, Котомафия, Длиннопост, Фотография
Вот такого красавца встретил в подвале на работе! #2 Кот, Котомафия, Длиннопост, Фотография
Показать полностью 6
99

Кот в парке

Гуляли семьёй в парке Победы, возле детской площадки гулял вот такой красавец.
Людей не шугался, с детьми шел на контакт.
Был немедленно накормлен котлетой из соседней кулинарии.
После чего кот благодарно посидел с нами ещё немного, умылся и пошёл по своим делам.

Кот в парке Кот, Котомафия, Караганда, Парк, Пушистый, Длиннопост
Кот в парке Кот, Котомафия, Караганда, Парк, Пушистый, Длиннопост
Кот в парке Кот, Котомафия, Караганда, Парк, Пушистый, Длиннопост
Кот в парке Кот, Котомафия, Караганда, Парк, Пушистый, Длиннопост
Кот в парке Кот, Котомафия, Караганда, Парк, Пушистый, Длиннопост
Кот в парке Кот, Котомафия, Караганда, Парк, Пушистый, Длиннопост
Кот в парке Кот, Котомафия, Караганда, Парк, Пушистый, Длиннопост
Кот в парке Кот, Котомафия, Караганда, Парк, Пушистый, Длиннопост
Показать полностью 8
-2

Про еду

Прочёл этот пост https://pikabu.ru/story/206_5_pro_edu_6166510 и вспомнил историю со старой работы

Лет 5 назад наша компания арендовала офис в бизнес центре.
Холодильника не было, летом большей частью обедали в столовой, зимой контейнеры с обедом хранили на балконе - там был не минус, но около нуля градусов.
Однажды один сотрудник после обеда закинул свой контейнер на балкон, а затем его сразу отправили в посёлок по работе на объект.
На объекте он остался на недели три, в это время на улице потеплело.
Периодически наши коллеги и сотрудники смежных офисов приходили и говорили что что-то воняет.
Спустя еще две недели я залез на балкон за оборудованием и охренел от запаха.
Начал искать источник запаха, нашёл пакет коллеги, раскрыл...
Было ощущение что открыл ящик Пандоры.
Вытащил из пакета контейнер с полуразложившейся недоеденой куринной ножкой.
Контейнер предусмотрительно не стал открывать.
Коллега вернулся через пару дней и ещё неделю ржал как конь вспоминая как из-за его обеда провонялся весь офис

19

Скрипт бэкапа конфигов с коммутаторов и отправка на почту по расписанию

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


Варианты с использованием Kiwi Tools я отмел, ибо неудобно мне, решил поковырять Linux))


Остановился на простом варианте запуска по расписанию скрипта, который будет подключаться к свитчам по ssh или telnet, далее по команде копировать текущий конфиг на tftp-сервер, а оттуда уже отправлять его на почту.


Несмотря на то что есть несколько Linux-серверов, я решил взять для работы NAS WD MyCloud, который у нас используется как файловая помойка. Вот такой:

Скрипт бэкапа конфигов с коммутаторов и отправка на почту по расписанию Linux, Cisco, Уведомление, Почта, Openmediavault, Сисадминские штучки, Сисадмин, Резервное копирование, Длиннопост

Замечателен он тем что в этой маленькой коробочке стоит неплохой процессор, Marvell Armada 375 (2x1GHz) или Mindspeed Comcerto C2200 (2x650MHz), в зависимости от ревизии, и объем ОЗУ 512MB Ram или 256 MB Ram, в зависимости от ревизии.

К примеру у нас GEN2, который имеет более быстрый процессор и больше ОЗУ.


И там внутри Linux, пусть и урезанный, но Linux. И есть в сети руководства как накатить туда полноценный Linux, например Debian, а далее что душа пожелает.


Я в свое время почитал эту тему на 4PDA и поставил туда Debian, а потом и OpenMediaVault.


Но вы можете использовать любой другой компьютер/устройство на Linux.


Суть сводится к тому что нужно доставить пару пакетов:

expect и tcl - для обработки команд свитчей, и mpak для отправки вложения на почту.


Также необходимо поставить tftp-сервер, к примеру в OpenMediaVault это делается в пару кликов.


Итак, мы их поставили, далее пишем скрипт backup_cisco.sh, с таким содержанием:

#!/bin/bash
#!/usr/bin/expect -f
expect -c 'spawn telnet 192.168.254.10;
expect "sername: "
send "admin\r"
expect "assword: "
send "P@$$W0Rd\r"
expect ">"
send "enable\r"
expect "assword: "
send "P@$$W0Rd\r"
expect "#"
send "copy running-config tftp://192.168.32.243/CME.cfg\r\r\r";
expect "#";
send "exit\r"'
expect -c 'spawn telnet 192.168.32.254;
expect "sername: ";
send "admin\r";
expect "assword: ";
send "P@$$W0Rd\r";
expect "#";
send "copy running-config tftp://192.168.32.243/Core.cfg\r\r\r";
expect "#";
send "exit\r"'
expect -c 'spawn telnet 192.168.32.3;
expect "sername: ";
send "admin\r";
expect "assword: ";
send "P@$$W0Rd\r";
expect "#";
send "copy running-config tftp://192.168.32.243/SW_2.cfg\r\r\r";
expect "#";
send "exit\r"'
expect -c 'spawn telnet 192.168.32.4;
expect "sername: ";
send "admin\r";
expect "assword: ";
send "P@$$W0Rd\r";
expect "#";
send "copy running-config tftp://192.168.32.243/SW_3.cfg\r\r\r";
expect "#";
send "exit\r"'
expect -c 'spawn telnet 192.168.32.5;
expect "sername: ";
send "admin\r";
expect "assword: ";
send "P@$$W0Rd\r";
expect "#";
send "copy running-config tftp://192.168.32.243/Cisco_4948.cfg\r\r\r";
expect "#";
send "exit\r"'
expect -c 'spawn ssh admin@192.168.254.11;
expect "assword: ";
send "P@$$W0Rd\r";
expect ">";
send "enable\r";
expect "assword:";
send "P@$$W0Rd\r";
expect "#";
send "copy running-config tftp://192.168.32.243/ASA.cfg\r\r\r\r";
expect "#";
send "exit\r"'
expect -c 'spawn ssh 192.168.3.5;
expect "ser: ";
send "admin\r";
expect "assword: ";
send "P@$$W0Rd\r";
expect ">";
send "transfer upload datatype config\r";
expect ">";
send "transfer upload serverip 192.168.32.243\r";
expect ">";
send "transfer upload filename WiFi.cfg\r";
expect ">";
send "transfer upload start\r";
expect "(y/N)";
send "y\r";
expect ">";
send "logo\r";
expect "(y/N)";
send "y\r'
sleep 4m
mv /srv/dev-disk-by-id-ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N6EATLHD-part2/tftproot/*.cfg /srv/dev-disk-by-id-ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N6EATLHD-part2/backups/cisco/
cd /srv/dev-disk-by-id-ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N6EATLHD-part2/backups/cisco/
tar -czf backup_cisco_`date +"%m-%d-%Y"`.tar.gz /srv/dev-disk-by-id-ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N6EATLHD-part2/backups/cisco/*.cfg
mpack -s "CISCO Backup WD" /srv/dev-disk-by-id-ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N6EATLHD-part2/backups/cisco/backup_cisco_`date +"%m-%d-%Y"`.tar.gz admin@krg.corpname.kz
rm -rf /srv/dev-disk-by-id-ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N6EATLHD-part2/backups/cisco/*.cfg

Что делает скрипт:

1. Подключается к свитчу.

expect -c 'spawn telnet 192.168.254.10;

2. Авторизуется

expect "sername: "
send "admin\r"
expect "assword: "
send "P@$$W0Rd\r"

3. Переходит в привилегированный режим

expect ">"
send "enable\r"
expect "assword: "
send "P@$$W0Rd\r"

4. Передает команду копирования текущего конфига на tftp сервер.

expect "#"
send "copy running-config tftp://192.168.32.243/CME.cfg\r\r\r";

5. Отключается от свитча и переходит к следующему.

expect "#";
send "exit\r"'

За обработку ответа от свитча в скрипте отвечает как раз тот самый expect

Все свитчи разные, поэтому команды передачи конфига тоже разные.


Последние команды:


6. Пауза в 4 минуты чтобы убедиться что все конфиги слились.

sleep 4m

7. Перемещает все файлы с расширением *.cfg в отдельный каталог.

mv /srv/dev-disk-by-id-ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N6EATLHD-part2/tftproot/*.cfg /srv/dev-disk-by-id-ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N6EATLHD-part2/backups/cisco/

8. Переход в каталог с скопированными конфигами.

cd /srv/dev-disk-by-id-ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N6EATLHD-part2/backups/cisco/

9. Архивация всех файлов с расширением *.cfg в архив с текущей датой в имени

tar -czf backup_cisco_`date +"%m-%d-%Y"`.tar.gz /srv/dev-disk-by-id-ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N6EATLHD-part2/backups/cisco/*.cfg

10. Отправка файла вложением на почту админу на admin@krg.corpname.kz

mpack -s "CISCO Backup WD" /srv/dev-disk-by-id-ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N6EATLHD-part2/backups/cisco/backup_cisco_`date +"%m-%d-%Y"`.tar.gz admin@krg.corpname.kz

11. Удаляет все конфиги, очищает папку:

rm -rf /srv/dev-disk-by-id-ata-WDC_WD30EFRX-68EUZN0_WD-WCC4N6EATLHD-part2/backups/cisco/*.cfg

Далее, в веб-интерфейсе OpenMediaVault настраиваем уведомления для работы с почтой, у нас почта идет через MS Office 365:

Скрипт бэкапа конфигов с коммутаторов и отправка на почту по расписанию Linux, Cisco, Уведомление, Почта, Openmediavault, Сисадминские штучки, Сисадмин, Резервное копирование, Длиннопост

Далее добавляем скрипт в встроенный планировщик OpenMediaVault, к примеру у меня он срабатывает в 8.00 по пятницам:

Скрипт бэкапа конфигов с коммутаторов и отправка на почту по расписанию Linux, Cisco, Уведомление, Почта, Openmediavault, Сисадминские штучки, Сисадмин, Резервное копирование, Длиннопост

И вот результат:

Скрипт бэкапа конфигов с коммутаторов и отправка на почту по расписанию Linux, Cisco, Уведомление, Почта, Openmediavault, Сисадминские штучки, Сисадмин, Резервное копирование, Длиннопост

Следующий пост будет про мониторинг оборудования через Zabbix с оповещением в Telegram

Показать полностью 3
4126

Отправляем снимок с веб-камеры в Telegram при обнаружении движения

На работе возникла идея фиксировать всех кто входит к нам в кабинет до начала и после окончания рабочего дня.


Потребность в этом появилась после того как мы не досчитались двух наборов мелких отвёрток.

Вариант что сами потеряли или дали кому-то и забыли отпал - больше склонялись к варианту что кто-то их взял из других сотрудников.


Идея заключалась в том чтобы камера реагировала на движения, снимала короткое видео и слала снимок в группу в Telegram.


В итоге я это реализовал и решил написать инструкцию для тех кто тоже хочет подобное.


Сразу обозначим два момента:

1. Инструкция адаптирована для варианта когда веб-камера находится физически в одном месте, а сервер - в другом, тогда нужно транслировать поток по сети.

Если у вас и камера и серверная часть будет на одном компьютере или камера изначально сетевая - можно обойтись без пунктов  1 и 2, а сразу перейти к пункту 3.

2. Подразумевается что у вас уже есть свой бот для Telegram, если нет, то вот инструкция:  шаг 1 и 2


Итак, собственно сама инструкция:


1. Подключаем к компьютеру веб-камеру.

2. Устанавливаем на комп YawCam и настраиваем YawCam так:

Отправляем снимок с веб-камеры в Telegram при обнаружении движения Telegram, Telegram бот, Камера, Слежка, Датчик движения, Оповещение, Длиннопост
Отправляем снимок с веб-камеры в Telegram при обнаружении движения Telegram, Telegram бот, Камера, Слежка, Датчик движения, Оповещение, Длиннопост
Теперь камера ведет трансляцию в потоке MJPEG, далее нужно настроить сервер на котором его будем принимать и обрабатывать дальше.


3. Ставим на другой компьютер/сервер iSpy, добавляем камеру в качестве источника указываем MJPEG

Отправляем снимок с веб-камеры в Telegram при обнаружении движения Telegram, Telegram бот, Камера, Слежка, Датчик движения, Оповещение, Длиннопост

4. Далее указываем маску детектора движения, в данном случае это дверь кабинета

Отправляем снимок с веб-камеры в Telegram при обнаружении движения Telegram, Telegram бот, Камера, Слежка, Датчик движения, Оповещение, Длиннопост

5. На следующей вкладке указываем тревоги и действие которое будет обрабатываться при срабатывании тревоги

Отправляем снимок с веб-камеры в Telegram при обнаружении движения Telegram, Telegram бот, Камера, Слежка, Датчик движения, Оповещение, Длиннопост

6. Указываем запись при срабатывании движения:

Отправляем снимок с веб-камеры в Telegram при обнаружении движения Telegram, Telegram бот, Камера, Слежка, Датчик движения, Оповещение, Длиннопост

7. Указываем сохранять снимок с камеры в папку – далее этот снимок будет отсылаться в Telegram

Отправляем снимок с веб-камеры в Telegram при обнаружении движения Telegram, Telegram бот, Камера, Слежка, Датчик движения, Оповещение, Длиннопост

8. Для того чтобы сервер не слал фото в Telegram при каждом срабатывании тревоги (открытия двери) – настраиваем расписание так чтобы оно срабатывало только до начала рабочего дня и после окончания рабочего дня, когда кабинет закрыт и никто посторонний заходить не может.

При этом запись видео и снимков все равно будет производиться при каждом срабатывании, но слаться в Telegram не будет.

Отправляем снимок с веб-камеры в Telegram при обнаружении движения Telegram, Telegram бот, Камера, Слежка, Датчик движения, Оповещение, Длиннопост

9. Указываем место сохранения файлов.

Отправляем снимок с веб-камеры в Telegram при обнаружении движения Telegram, Telegram бот, Камера, Слежка, Датчик движения, Оповещение, Длиннопост

10. Итог выглядит так:

Отправляем снимок с веб-камеры в Telegram при обнаружении движения Telegram, Telegram бот, Камера, Слежка, Датчик движения, Оповещение, Длиннопост

11. Самое главное: скрипт отсылки снимка в Telegram.


По какой-то непонятной причине отправка фото в Telegram не срабатывает из PowerShell, приходится использовать curl:

https://chocolatey.org/packages/curl

https://winampplugins.co.uk/curl/


Используем такой скрипт:


pushd e:\Video\IT\video\IT\grabs\

for /f "tokens=*" %%a in ('dir /b /od') do set newest=%%a

popd

set bottoken="ТОКЕН_БОТА"

set chat="ЧАТ_ГРУППЫ"

set File="e:\Video\IT\video\IT\grabs\%newest%"

"c:\Program Files\curl-7.60.0-win64-mingw\bin\curl.exe" -s -X POST "https://api.telegram.org/bot%bottoken%/sendPhoto?chat_id=%ch..." -F photo="@%File%" -F caption="Motion detected on IT-room!"

Где:

1. e:\Video\IT\video\IT\grabs\ - путь до снимков с камеры, которые делаются в момент срабатывания тревоги.

2. %newest% - имя самого последнего снимка с камеры, непосредственно в момент срабатывания тревоги, берется первыми тремя строчками скрипта.

3. bottoken – это токен вашего бота Telegram.

4. chat – это ID вашей группы в Telegram, если есть знак «-» то это группа, без знака «-» это ID пользователя, т.е. шлем либо в личку либо в группу.

5. %File% - переменная путь+имя файла снимка, которые и отправляются в Telegram последней командой в скрипте.


12. Итоговый результат:

Отправляем снимок с веб-камеры в Telegram при обнаружении движения Telegram, Telegram бот, Камера, Слежка, Датчик движения, Оповещение, Длиннопост
Показать полностью 11

Мы ищем frontend-разработчика

Мы ищем frontend-разработчика

Привет!)


Мы открываем новую вакансию на позицию frontend-разработчика!

Как и в прошлые разы для backend-разработчиков (раз, два), мы предлагаем небольшую игру, где вам необходимо при помощи знаний JS, CSS и HTML пройти ряд испытаний!


Зачем всё это?

Каждый день на Пикабу заходит 2,5 млн человек, появляется около 2500 постов и 95 000 комментариев. Наша цель – делать самое уютное и удобное сообщество. Мы хотим регулярно радовать пользователей новыми функциями, не задерживать обещанные обновления и вовремя отлавливать баги.


Что надо делать?

Например, реализовывать новые фичи (как эти) и улучшать инструменты для работы внутри Пикабу. Не бояться рутины и командной работы (по чатам!).


Вам необходимо знать современные JS, CSS и HTML, уметь писать быстрый и безопасный код ;) Хотя бы немножко знать о Less, Sass, webpack, gulp, npm, Web APIs, jsDoc, git и др.


Какие у вас условия?

Рыночное вознаграждение по результатам тестового и собеседования, официальное оформление, полный рабочий день, но гибкий график. Если вас не пугает удаленная работа и ваш часовой пояс отличается от московского не больше, чем на 3 часа, тогда вы тоже можете присоединиться к нам!


Ну как, интересно? Тогда пробуйте ваши силы по ссылке :)

Если вы успешно пройдете испытание и оставите достаточно информации о себе (ссылку на резюме, примеры кода, описание ваших знаний), и если наша вакансия ещё не будет закрыта, то мы с вами обязательно свяжемся по email.

Удачи вам! ;)

Показать полностью
Отличная работа, все прочитано!