Glances — кроссплатформенная утилита системного мониторинга. Позволяет отслеживать состояние системы непосредственно на самом компьютере или удаленно. Для удаленного мониторинга имеет режим сервера, подключение происходит этой же утилитой в режиме клиента, или режим Web сервера, подключение происходит при помощи Web браузера. Доступная версия Glances на момент написания статьи была 3.1.5. Документацию можно почитать здесь. Читать далее «К Glances через контроль температуры FreeBSD в Home Assistant»
Telegram уведомления и управление Home Assistant
- Создание нового бота в Telegram
Для взаимодействия нам потребуется создать бота. В Telegram через поиск находим бота @BotFather и отсылаем ему команду:
/newbot
Первым сообщением нам предлагают придумать имя для бота, которое будет отображаться в чатах и контактах, это имя можно изменить в дальнейшем. Вторым предлагают придумать username, уникальное имя бота, которое должно заканчиваться на «bot«. Допускаются буквы латинского алфавита, цифры и знак подчеркивания. В дальнейшем это имя изменить нельзя.
В сообщении после успешного создания бота будет написан токен для доступа к HTTP API. Читать далее «Telegram уведомления и управление Home Assistant»
Мониторинг компа в Home Assistant
В Home Assistant есть специальная платформа под названием System Monitor с набором сенсоров для мониторинга локальной системы. System Monitor позволяет отслеживать загрузку и температуру процессора, загрузку оперативной памяти и диска, трафик на сетевых интерфейсах. Все описание взято на официальном сайте Home Assistant и применимо для систем семейства Unix/Linux/BSD. Читать далее «Мониторинг компа в Home Assistant»
Измеряем температуру в доме, выводим инфу на сайт
Дано: cc2531 usb плата с программатором, датчики температуры и влажности Sonoff SNZB-02
Задача: на FreeBSD организовать мониторинг температуры в доме.
Читать далее «Измеряем температуру в доме, выводим инфу на сайт»
ntfs FreeBSD
Процедура: Шаги по монтированию диска NTFS
- Перед использованием файловой системы FUSE нам необходимо загрузить модуль ядра fusefs(5):
# kldload fusefs
Сторожевой пес Интернета
#!/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 и шарами)
Виджеты код
Резервная копия кода виджетов сайта от 07.06.2023
1.Отображение IP адреса посетителя
<?php echo $_SERVER['REMOTE_ADDR'] ?>
2. Воспроизведение случайных файлов из папки, на сайте Читать далее «Виджеты код»
Перемещение AppData в windows
- Переместить C:\Users\Вася\AppData
- Создать символическую ссылку на прежнем месте, указать куда перенесли саму папку:
mklink /J C:\Users\Вася\AppData D:\Вася\AppData