AssGuard

AssGuard

На самом деле я добрый. Только об этом не все знают. А кто знает - уже никому не расскажет
Пикабушник
Дата рождения: 6 июля
в топе авторов на 299 месте
70К рейтинг 90 подписчиков 57 подписок 88 постов 34 в горячем
Награды:
10 лет на Пикабу
99

Кот в парке

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

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

Про еду

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

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

21

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

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


Варианты с использованием 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

Показать полностью 4
4138

Отправляем снимок с веб-камеры в 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=%25..." -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
6

Заводской брак телефона у телефона заказаного на Aliexpress. Что делать?

Добрый вечер, друзья пикабушники!
Месяц назад купил на Aliexpress смартфон ZTE Nubia Z11 Mini S черного цвеа.
Смартфон очень понравился, он очень мощный, стильный и удобный, а камера вообще выше всяких похвал!
Но, к сожалению, несколько дней назад случилась неприятность - внезапно сгорел дисплей.
Почитав соответствующий топик на форуме 4pda.ru и проконсультировавшись с специалистами сервисных центров я выяснил что это заводской брак.
Причем проявляется он только на тех смартфонах, на которых стоит дисплей марки JDI.
С дисплеями марки BOE, как правило, такого не происходит.
Смартфоны Nubia у нас в Казахстане не распространены и запчастей нет, тем более оригинальных.
На Aliexpress дисплеи в продаже есть, но не оригинальные и низкого качества.
Срок защиты истек, спор открыть не получается.

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

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

Снова обратился в техподдержку, оператор сказала что подала апелляцию на возмещение и что ответ я получу только 13 февраля.

У меня сложилось впечатление что меня просто водят за нос и хрен я что получу.

В связи с чем вопрос: что делать, как получить хоть какую-то компенсацию?

Слышал про такую вещь как chargeback, возможно ли применить его тут?
Слышал что в России это работает если заказ закрыт, а товар не получен - надо написать заявление в банк, прикрепить скрин заказа, скрин трека и выписку с карты и деньги вернут.

Оплачивал с карты Kaspi Gold, можно ли оформить chargeback в случае если заказ закрыт, товар получил, но есть заводской брак и товар вышел из строя?

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