mi band 2 factory default

Умер смартфон, к которому был привязан mi band 2. Купил новый, установил mi fit, авторизовался (данные mi аккаунта были записаны в облако). Был уверен что этого достаточно чтобы браслет подключился к новому смартфону но увы… этого не произошло. В результате оказалось что единственный способ подключить браслет к новому смарту — сбросить его к заводским настройкам. Вот тут нашел способ как это сделать. Чтобы в следующий раз не искать запишу у себя.

Итак. Во-первых для сброса браслета нужна вот эта программа. Существует версия только для андроида. Прога на китайском, но частично переведена. Когда программа установлена необходимо вручную подключить браслет по блютусу. запустить программу. Она обнаружит браслет. Нужно ткнуть в строчку с его маком и на следующем экране нажать кнопку «ВОССТАНОВИТЬ ЗАВОДСКИЕ НАСТРОЙКИ». Все происходит очень быстро. Так-же программа умеет диагностировать все функции браслета, но это уже не так важно.

eve-ng-integration Linux desktop

Для полноценной работы с замечательным средством эмуляции сети eve-ng необходимо иметь несколько установленных программ и интегрировать их в браузер. Чтобы не делать этого вручную для линукса написан замечательный скрипт — который почти всю работу сделает сам. https://github.com/SmartFinn/eve-ng-integration.

Я использую centos 7 + gnome. Для установки eve-ng-integration подошел скрипт установщика + две команды.

wget -qO- https://raw.githubusercontent.com/SmartFinn/eve-ng-integration/master/install.sh | sh

usermod -a -G wireshark $USER

chmod +x /usr/sbin/dumpcap

Последний chmod не описан — но без него wireshark работать не захотел.

Дополнительно можно сделать ssh-copy-id до хоста с eve-ng от пользователя, под которым подразумевается работа с ним.

bash на все хосты в сети

У меня регулярно появляется необходимость сделать определенные действия (ввести команды, положить нужные файлики) на всех или большинстве хостов в сети (все хосты linux). Конечно для решения таких задач существуют монстры типа ansible — но ради двух, трех команд «городить огород» не хочется. Куда проще воспользоваться командой sshpass в цикле по всем компам. Для этого я использую следующую конструкцию (выкладываю для себя, чтобы было откуда списать в следующий раз).

В примере я раскидываю на все машины файлик правил udev и выполняю ряд команд которые описаны в файле command.txt

# ll /root/temp/
-rwxr-xr-x 1 root root 79 апр 26 11:28 99-udisks2.rules
-rwxr-xr-x 1 root root 447 апр 26 11:35 all_uvd.sh
-rw-r--r-- 1 root root 173 апр 26 11:39 command.txt

# cat all_uvd.sh
!/bin/bash
for var in uvd14 uvd15 uvd16 uvd17 uvd18 uvd19 uvd20 uvd21 uvd22 uvd23
do
echo The $var item
scp /root/temp/99-udisks2.rules $var:/etc/udev/rules.d/99-udisks2.rules
cat /root/temp/command.txt | sshpass -p '***' ssh root@$var
done

# cat command.txt
yum -y install udiskie exfat-utils fuse-exfat ntfs-3g
systremctl enable udisks2
udevadm control --reload-rules
reboot

cisco catalist password reset

Процедура сброса пароля на маршрутизаторах и коммутаторах cisco отличается. Как обычно — необходим физический доступ к оборудованию и подключение к консоли.

Чтобы начать восстановление нужно выключить коммутатор, затем включить его с зажатой кнопкой mode. Так мы прерываем штатную загрузку.

Loading "flash:/c2960-lanbase-mz.122-25.FX.bin"…
#
Boot process terminated.
switch

Теперь вводим команды flash_init и load_helper. После из успешного выполнения становится доступным содержимое нашей flash памяти. Посмотреть его можно командой — dir flash: (двоеточие в конце команды)

switch: flash_init
Initializing Flash…
flashfs[0]: 3 files, 0 directories
flashfs[0]: 0 orphaned files, 0 orphaned directories
flashfs[0]: Total bytes: 64016384
flashfs[0]: Bytes used: 3059643
flashfs[0]: Bytes available: 60956741
flashfs[0]: flashfs fsck took 1 seconds.
…done Initializing Flash.
switch: load_helper
switch: dir flash:
Directory of flash:/
1 -rw- 3058048 c2950-i6q4l2-mz.121-22.EA4.bin
3 -rw- 979 config.text
2 -rw- 616 vlan.dat
60956741 bytes available (3059643 bytes used)

Интересует файл config.text — это и есть стартап-конфиг коммутатора. Чтобы коммутатор загрузился без него — его нужно переименовать, например так — rename flash:config.old flash:config.text.
Теперь коммутатор нужно перезагрузить в нормальном режиме — он загрузится без конфигурации. Если не стоит задача — сохранить старый конфиг — то на этом все.

Если старый конфиг сохранить нужно, то содержимое переименованного файла конфига нужно загрузить в running-config, добавить пользователя и сохранить конфигурацию.

Switch>en
Switch#rename flash:config.old flash:config.text
Switch#copy flash:config.text system:running-config

Теперь после того как конфиг загружен мы можем задать новый пароль

Switch1#conf t
Switch1(config)#enable secret NewPassword
Switch1(config)#enable password NewPassword
Switch1 (config)#line vty 0 4
Switch1 (config-line)#password NewPassword
Switch1 (config-line)#login
Switch1 (config-line)#exit
Switch1 (config)#line console 0
Switch1 (config-line)#password NewPassword
Switch1 (config-line)#login

И сохраняем новую конфигурацию.

Switch1#copy running-config startup-config

Теперь после перезагрузки коммутатор будет загружать файл с измененным паролем.

apcupsd

Установка apcupsd тривиальна.

yum -y install apcupsd

Включить, выключить, добавить в автозагрузку

systemctl start apcupsd
systemctl stop apcupsd
systemctl enable apcupsd

Конфиг. В случае подключения по usb — можно оставить по умолчанию. Логи

vi /etc/apcupsd/apcupsd.conf

tail -f /etc/apcupsd/apcupsd.events

В результате появилась служба которая поддерживает связь с ИБП и команда

apcaccess status

solaris 10 syslog-ng

Появилась рабочая необходимость собрать логи с ряда сетевых устройств в замкнутой системе. Свой ноут подключить в сеть нельзя. Все компы и сервера в системе на solaris 10 update 10. Так как задачу приходилось решать не один раз — запишу последовательность действий. Чтобы в следующий раз не тупить.

Для начала необходимо убедится что установлены все необходимые пакеты.

SUNWPython (The Python interpreter, libraries and utilities)
SUNWPython-devel (The Python interpreter, libraries and utilities, platform dependent developer files, stored in /usr)
SUNWPython-share (The Python interpreter, libraries and utilities, platform independent shared files, stored in /usr/sfw/share)

проверять командой pkginfo

pkginfo |grep SUNWPython

Если все пакеты присутствуют, следует приступать к установке собственно syslog-ng сервера. Есть два варианта — собирать из исходных кодов, или установить готовый пакет. Я без труда нашел скомпилированный пакет, поэтому буду устанавливать syslogng-1.6.11-sol10-x86-local.

pkgadd -d ./syslogng-1.6.11-sol10-x86-local
mkdir /usr/local/etc
mkdir /usr/local/etc/syslog-ng
cp /usr/local/doc/syslog-ng/doc/syslog-ng.conf.solaris /usr/local/etc/syslog-ng/syslog-ng.con

Далее нужно выключить стандартный syslog сервер соляриса. Затем проверить что он выключен. (возможно впоследствии его потребуется включить)

Выключить
svcadm disable svc:/system/system-log:default
svcadm disable svc:/network/shell:defaul

Проверить
svcs svc:/system/system-log:default
svcs svc:/network/shell:default

Включить
svcadm enable svc:/system/system-log:default
svcadm enable svc:/network/shell:default

Теперь необходимо создать скрипт запуска /lib/svc/method/svc-syslog-ng

vi /lib/svc/method/svc-syslog-ng
#!/bin/sh
. /lib/svc/share/smf_include.sh
Start processes required for syslog-ng
Required for certain libgcc and eventlog libraries
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:/usr/sfw/lib
export LD_LIBRARY_PATH
if [ -x /usr/local/sbin/syslog-ng ]; then
/usr/local/sbin/syslog-ng
else
echo "syslog-ng is missing or not executable."
exit $SMF_EXIT_ERR_CONFIG
fi
exit $SMF_EXIT_OK

Задать для него владельца и права.

chown root:bin /lib/svc/method/svc-syslog-ng
chmod 755 /lib/svc/method/svc-syslog-ng

Далее необходимо создать файл SMF манифеста /var/svc/manifest/system/syslog-ng.xml

vi /var/svc/manifest/system/syslog-ng.xml
<create_default_instance enabled='false' />
<single_instance/>
<dependency name='milestone' grouping='require_all' restart_on='none' type='service'>
<service_fmri value='svc:/milestone/sysconfig' />
</dependency>
<dependency name='filesystem' grouping='require_all' restart_on='none' type='service'>
<service_fmri value='svc:/system/filesystem/local' />
</dependency>
<dependency name='autofs' grouping='optional_all' restart_on='none' type='service'>
<service_fmri value='svc:/system/filesystem/autofs' /> </dependency>
<dependency name='name-services' grouping='require_all' restart_on='none' type='service'>
<service_fmri value='svc:/milestone/name-services' />
</dependency>
<dependent name='syslog-ng_single-user' grouping='optional_all' restart_on='none'>
<service_fmri value='svc:/milestone/multi-user' />
</dependent>
<exec_method type='method' name='start' exec='/lib/svc/method/svc-syslog-ng' timeout_seconds='60' />
<exec_method type='method' name='stop' exec=':kill' timeout_seconds='60' />
<exec_method type='method' name='refresh' exec=':kill -HUP' timeout_seconds='60' />
<property_group name='general' type='framework'>
<!-- to start stop syslog daemon -->
<propval name='action_authorization' type='astring' value='solaris.smf.manage.syslog-ng' />
</property_group>
<stability value='Unstable' />
<template>
<common_name>
<loctext xml:lang='C'> syslog-ng </loctext>
</common_name>
<documentation>
<manpage title='syslog-ng' section='1M' manpath='/usr/share/man' /> </documentation>
</template>

Задать для манифеста владельца и права

chown root:sys /var/svc/manifest/system/syslog-ng.xml
chmod 444 /var/svc/manifest/system/syslog-ng.xml

Далее нужно проверить созданный манифест

svccfg validate /var/svc/manifest/system/syslog-ng.xml

Если ошибок нет — импортировать манифест в SMF

svccfg import /var/svc/manifest/system/syslog-ng.xml

Проверить что сервис появился в SMF базе

svcs syslog-ng

Включить/выключить сервис

svcadm disable syslog-ng
svcadm enable syslog-ng

Если включатся не хочет, вместо online выпадает в статус maintenence — нужно смотреть лог-файл службы

tail /var/svc/log/system-syslog-ng:default.log

Чтобы сконфигурировать сервис нужно редактировать конфиг по адресу /usr/local/etc/syslog-ng.conf Приведу пример примитивного конфига, который слушает 514й порт и записывает все что на него прилетает в файл /var/log/remote/cisco.log

vi /usr/local/etc/syslog-ng.conf

source s_udp { udp (ip ("0.0.0.0") port (514)); };
destination d_cisco { file("/var/log/remote/cisco.log"); };
log { source(s_udp); destination(d_cisco); };

Или чуть сложнее - с фильтром по адресу сети источника
source s_udp { udp (ip ("0.0.0.0") port (514)); };
destination d_cisco { file("/var/log/remote/cisco.log"); };
filter f_cisco { netmask("192.168.55.0/255.255.255.0"); };
log { source(s_udp); filter(f_cisco); destination(d_cisco); };

cisco isr password reset

Чтобы сбросить пароль на маршрутизаторах ISR cisco необходимо подключение консольным кабелем. Далее reload (или физически передернуть кабель питаний) — при загрузке [Ctrl]+[Break] — так, чтобы появилось приглашение rommon> (режим ROM monitor).

Если терминал не позволяет передать [Ctrl]+[Break] можно просто вытащить из роутера флеш-карту и загрузить без нее.

Из режима rommon> нужно изменить конфигурацию реестра командой confreg 0x2142. После чего сделать reset

Теперь маршрутизатор загрузится без конфига. Можно настраивать новый конфиг — если план был такой. Если-же нужен старый конфиг — то необходимо из привилегированного режима сделать copy startup-config running-config.
После этой команды применится старый конфиг, но привилегированный режим позволит создать в нем новую учетную запись и/или изменить любые другие настройки.

Когда все пароли изменены/восстановлены — необходимо перевести конфигурационный регистр в нормальное состояние. config-register 0x2102