Мониторинг компа в Home Assistant

В Home Assistant есть специальная платформа под названием System Monitor с набором сенсоров для мониторинга локальной системы. System Monitor позволяет отслеживать загрузку и температуру процессора, загрузку оперативной памяти и диска, трафик на сетевых интерфейсах. Все описание взято на официальном сайте Home Assistant и применимо для систем семейства Unix/Linux/BSD. Читать далее «Мониторинг компа в Home Assistant»

Измеряем температуру в доме, выводим инфу на сайт

Дано: cc2531 usb плата с программатором, датчики температуры и влажности Sonoff SNZB-02
Задача: на FreeBSD организовать мониторинг температуры в доме.

Читать далее «Измеряем температуру в доме, выводим инфу на сайт»

Сторожевой пес Интернета

#!/bin/sh

#
# Watchdog: keep the Internet up and running.
#
# Phil Chadwick.  2015-11-18.
#
# $Revision: 1.15 $

# For use in root's crontab like this:
# */10 * * * * /etc/firewall/internet_watchdog

PATH="/bin:/usr/bin:/sbin:/usr/sbin"
export PATH

INTERNET_NIC=tun0	# The Internet link interface (e.g. ppp0)
MINUPSECS=1800		# Don't reboot unless uptime > MINUPSECS
REDIALWAIT=240		# Allow this many seconds to re-make the connection
SHUTMESSAGE="Rebooting to restart Internet"

# Ping targets (несвязанный список общедоступных хостов, которые отвечают на ping)
PT1=192.231.203.132	# resolv.internode.on.net
PT2=195.122.30.54	# google.com.au
PT3=104.25.239.31	# www.ozspeedtest.com
PT4=204.79.197.219	# bing.com.au
PING_TARGETS="$PT1 $PT2 $PT3 $PT4"

# Syslog configuration
LOGTAG=$(basename $0)
LOGPRI='local0.notice'

# See if we can ping anything on the Internet...
pingtest()
{
    for host in $PING_TARGETS
    do
	#debian#ping -q -n -c 1 -w10 $host >/dev/null 2>&1 && return 0
	#freebsd#ping -q -n -c 1 -t10 $host >/dev/null 2>&1 && return 0
	ping -q -n -c 1 -t10 $host >/dev/null 2>&1 && return 0
    done
    return 1
}

# Return uptime in seconds.  Tested on FreeBSD 13.0 only.  YMMV.
getuptime()
{
    uptime=${1:-$(uptime)}

    days=0
    hours=0
    minutes=0
    seconds=0

    echo "$uptime" | grep -q " day" && 
	days=$(echo "$uptime" | sed -e 's/.*up \([1-9][0-9]*\) day.*/\1/')
    if echo "$uptime" | grep -q "up.* [0-9][0-9]*:[0-9][0-9]*," 
    then
	hours=$(echo "$uptime" | sed -e 's/.*up.* \([0-9][0-9]*\):.*/\1/')
	minutes=$(echo "$uptime" | sed -e 's/.*up.*:\([0-9][0-9]*\),.*/\1/')
	seconds=0
    else
	echo "$uptime" | grep -q " hrs*" &&
	    hours=$(echo "$uptime" | sed -e 's/.*up.* \([0-9]*\) hr.*/\1/')
	echo "$uptime" | grep -q " mins*" &&
	    minutes=$(echo "$uptime" | sed -e 's/.*up.* \([0-9]*\) min.*/\1/')
	echo "$uptime" | grep -q " secs*" &&
	    seconds=$(echo "$uptime" | sed -e 's/.*up.* \([0-9]*\) sec.*/\1/')
    fi

    upseconds=$(((((((($days*24)+$hours)*60)+$minutes)*60)+$seconds)))
    echo $upseconds
}

# # pppd иногда выполняет атомарный повторный набор после того, как получает сообщение о зависании.
# Итак, если кажется, что ссылка недоступна, мы должны дать ей время вернуться.
n=0
while [ $n -lt $REDIALWAIT ]
do
    ifconfig $INTERNET_NIC 2>/dev/null | grep -q "UP[ ,].*RUNNING"
    [ $? -eq 0 ] && pingtest && exit 0
    sleep 1
    n=$((n+1))
done

# Похоже, интернет-соединение действительно не работает...

# Ниже приведен ряд сложных вопросов, связанных со сроками, которые необходимо решить.
# # Возможно, ваш интернет-провайдер вешает трубку каждый раз, когда мы звоним, из-за превышения квоты.
# # Итак, проверьте время безотказной работы и ничего не делайте, пока не истечет несколько минут.
# Кроме того, запуск и остановка ppp асинхронны, поэтому pppd умирает целую вечность,
# и вы должны дождаться, пока он погаснет, прежде чем перезапускать его; кроме того, мы не хотим
# перейдите в (быстрый) непрерывный цикл перезагрузки (следовательно, 15-минутное ожидание).

# Установите минимальную задержку перезагрузки, чтобы остановить цикл быстрой перезагрузки
#debian#upseconds=$(cut -d. -f1 </proc/uptime)
#freebsd#upseconds=$(getuptime)
upseconds=$(getuptime)
[ "$upseconds" -gt $MINUPSECS ] || exit 0
# Выход из системы, если мы уже запустили последовательность завершения работы.
if [ -f /run/systemd/shutdown/scheduled ]
then 
    cat /run/systemd/shutdown/scheduled
else
    #debian#ps -lef | grep shutdown
    #freebsd#ps auxw | grep shutdown
    ps auxw | grep shutdown
fi | grep -q "$SHUTMESSAGE" && exit 0

# We are now committed to a reboot (unless somebody intervenes manually).
logger -p "$LOGPRI" -t "$LOGTAG" "Internet not running"
service internet stop >/dev/null 2>&1
logger -p "$LOGPRI" -t "$LOGTAG" "Cowardly rebooting to re-start Internet"
shutdown -r +15 "$SHUTMESSAGE"

 

Микротик rb2001UiAs-2HnD-IN

openwrt-19.07.10-ar71xx-mikrotik-nand-large-squashfs-sysupgrade.bin

openwrt-19.07.10-ar71xx-mikrotik-vmlinux-initramfs-lzma.elf

Восстановление

1. Настройте DHCP-сервер с загрузкой по протоколу TFTP (установите на вашем компьютере статический IP диапазона 192.168.1.0/24). Обратите внимание, что файл initramfs должен находиться в каталоге, указанном командой.

 sudo dnsmasq -i eth0 --dhcp-range=192.168.1.100,192.168.1.200 \
 --dhcp-boot=openwrt-ar71xx-mikrotik-vmlinux-initramfs.elf \
 --включить-tftp --tftp-root=~/каталог/где/файл/находится/ \
 -d -u $USER -p0 -K --log-dhcp --bootp-dynamic

2. Подключите ПК к порту Ethernet 1.

3. Выключите маршрутизатор и удерживайте сброс при включении. Подождите 20 секунд, пока не появится файл, отправленный ПК. Отпустите сброс и оставайтесь подключенным к порту Ethernet, пока не увидите сообщение маршрутизатора об имени хоста Openwrt.

4. Подключите ПК к другому порту Ethernet.

5. Войдите в OpenWRT netboot

6. Обновите систему с помощью соответствующего файла Mikrotik sysupgrade.bin. (она либо 64-метровая, либо огромная. Вы можете выбрать нужную, открыв и прочитав номер детали на микросхеме tsop48. Но, это не должно иметь значения, если вы прошиваете не ту, здесь.)

Если вы допустили ошибку, повторите netboot и повторите попытку. На печатной плате рядом с кабелем питания есть UART, если сетевая загрузка работает, но по какой-то причине сбой обновления системы. Возможно, вам понадобится 64-миллиметровый образ, но загрузчик останется, чтобы устройство не было заблокировано, если используется неправильный sysupgrade.

Может быть быстрее и проще загрузить ethernet (tftp) из загрузчика, вместо того чтобы удерживать нажатой кнопку сброса при загрузке.

Если вы видите ошибки ECC в UART (от 18 и более ранних версий. Была исправлена в 19.07), обратитесь к этому сообщению на форуме: https://forum.openwrt.org/t/ecc-errors-in-ubi-rb2011uias-2hnd-in-and-solution/16424/15

Пользователи сообщили, что несколько устройств повредили их flash при 2-м обновлении системы. В этом случае устройство можно использовать только в режиме сетевой загрузки. Смотрите: https://forum.openwrt.org/t/rb433-bad-sector-cannot-start-openwrt/71519/12

Для получения более подробной информации смотрите:

Источник: https://openwrt.org/toh/mikrotik/rb2011

 

Rsync FreeBSD и Syncopoli android

pkg install rsync

Настройка rsync для FreeBSD:

rsyncd.conf:
log file = /var/log/rsync.log
# Писать в лог о скачивание файлов
transfer logging = true

# Set this if you want to stop rsync daemon with rc.d scripts
pid file = /var/run/rsyncd.pid

# Edit this file before running rsync daemon!!

#uid = nobody
#gid = nobody
#use chroot = no
#max connections = 4
#syslog facility = local5

[backup]
uid = root
path = /main/SHARED/rsync
auth users = user
secrets file = /usr/local/etc/rsync/rsyncd.scrt
list = yes
read only = false

# Далее может идти описание других секций(по аналогии с samba и шарами)

Читать далее «Rsync FreeBSD и Syncopoli android»

Виджеты код

Резервная копия кода виджетов сайта от 07.06.2023

1.Отображение IP адреса посетителя

<?php echo $_SERVER['REMOTE_ADDR'] ?>

2. Воспроизведение случайных файлов из папки, на сайте Читать далее «Виджеты код»

Перемещение AppData в windows

  1. Переместить C:\Users\Вася\AppData
  2. Создать символическую ссылку на прежнем месте, указать куда перенесли саму папку:
mklink /J C:\Users\Вася\AppData D:\Вася\AppData

Настройка Squid 3 в качестве прозрачного прокси в FreeBSD

Настраиваем Squid в качестве прозрачного прокси-сервера для небольшой сети.

Содержание

  Читать далее «Настройка Squid 3 в качестве прозрачного прокси в FreeBSD»

FreeBSD: настройка DHCP-сервера на базе ISC DHCP Server

Настраиваем DHCP сервер для офисной сети.

Содержание

Читать далее «FreeBSD: настройка DHCP-сервера на базе ISC DHCP Server»

Яндекс.Метрика