Часто смотря чат-рулетку, пару лет назад столкнулся с вопросами от украинцев «кто ты по национальности», и до сих пор не могу привыкнуть к «цветовой дифференциации штанов», вот одна из причин:

Часто смотря чат-рулетку, пару лет назад столкнулся с вопросами от украинцев «кто ты по национальности», и до сих пор не могу привыкнуть к «цветовой дифференциации штанов», вот одна из причин:

Процедура: Шаги по монтированию диска NTFS
# kldload fusefs
Используя sysrc(8) добавим модуль в автозагрузку:
# sysrc kld_list+=fusefs
# pkg install fusefs-ntfs
# mkdir /mnt/usb
В предыдущей статье описана установка посредством питона на FreeBSD, но не советую, т.к. при установке и далее обновлении куча ошибок, есть короткий путь!
cbsd bconstruct-tui
дальше образ облачный выбрать с home assistant и установить готовую операционку HA OS и всё ))
#!/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"
Резервная копия кода виджетов сайта от 07.06.2023
1.Отображение IP адреса посетителя
<?php echo $_SERVER['REMOTE_ADDR'] ?>
2. Воспроизведение случайных файлов из папки, на сайте Читать далее «Виджеты код»
Источник: https://habr.com/ru/post/548640/
https://github.com/Shirodini/Kodi-HDR-Edition/blob/master/docs/README.FreeBSD.md
на замену Тимвьюверу предлагаю на отечественное ПО перейти:
1. http://litemanager.ru/
300руб. за 1 комп
2. Ассистент(сертифицирован ФСТЭК) https://мойассистент.рф/
г.Воронеж, 72 000руб. базовая лицензия
Задача: упростить администрирование(выдачу прав на каталоги, почту, доступ в интернет, фтп и прочие сервисы) в единой точке сборки. В этом деле поможет контроллер домена с открытым исходным кодом.
https://meshok-sovetov.ru/kontroller-domena-dlya-linuks/
При попытке зайти на площадку электронных торгов Chrome выдает ошибку «ERR_SSL_VERSION_OR_CIPHER_MISMATCH»

Решение: Использовать браузер Хром Гост https://www.cryptopro.ru/products/chromium-gost Читать далее «ERR_SSL_VERSION_OR_CIPHER_MISMATCH chrome»
By Anton Vanyukov|15 Июн 2009|Categories: Информационные Технологии|Tags: IT, unix|0 Comments
Помимо возможности управления сервером через веб-интерфейс, хорошо бы иметь хорошую статистику по веб-сайтам. Мой выбор пал на AWStats. AWStats представляет из себя анализатор лог файлов, который генерирует отчеты в HTML с таблицами и графиками. Так же AWStats интегрируется с Webmin, о котором я рассказывал в предыдущей статье.
Установка
Ставить AWStats я решил из портов. Так проще отслеживать изменения в версиях. # cd /usr/ports/www/awstats/ # make install clean
|  # cd /usr/ports/www/awstats/ # make install clean  | 
В опциях установки предлагается включить поддержку IPv6. Лично мне это не надо — отключил. Если интересно почитать документацию, то она устанавливается в /usr/local/share/doc/awstats.
Настройка
Есть два способа настройки — ручной и с помощью скрипта. Быстренько расскажу про оба способа. Внимание! Если выбирается второй способ, то учтите, что файл конфигурации Apache надо будет все равно править потом руками, т.к. скрипт установки допускает в нем ошибку!!!
1. Настраиваем все сами
После установки, надо переименовать файл /usr/local/www/awstats/cgi-bin/awstats.model.conf в awstats.site.conf для настройки AWStasts. Так же надо добавить следующие строчки в файл /usr/local/etc/apache22/httpd.conf: 
Alias /awstatsclasses «/usr/local/www/awstats/classes/» 
Alias /awstatscss «/usr/local/www/awstats/css/» 
Alias /awstatsicons «/usr/local/www/awstats/icons/» 
ScriptAlias /awstats/ «/usr/local/www/awstats/cgi-bin/» 
<Directory «/usr/local/www/awstats/»>    
<Files «awstats.pl»>       AuthUserFile /usr/local/etc/apache22/passwd
      AuthGroupFile /usr/local/etc/apache22/group
       AuthName «Restricted Area For Customers»
       AuthType Basic       require valid-user
    </Files>
    Options None
    AllowOverride All
    Order allow,deny
    Allow from all
 </Directory> 
Дальше надо перейти к следующему пункту, упустив всю установку скриптом.
2. Настраиваем с помощью скрипта
Так же есть более простой метод настройки — с помощью файла awstats_configure.pl. Но разработчики почему-то не учли, что данную программу люди будут ставить и на FreeBSD, где пути отличаются от дистрибутивов Linux. По этому, в скрипте есть недочеты, которые надо исправить. Данный файл находится в папке /usr/local/www/awstats/tools/. Прежде чем что-то запускать, надо отредактировать файл. Нужно удалить wwwroot в значениях переменных для всех директорий. Открываем awstats_configure.pl любым редактором и приводим следующие секции к такому виду:
# примерно строчки 327-330 $AWSTATS_ICON_PATH=»$AWSTATS_PATH/icon»; $AWSTATS_CSS_PATH=»$AWSTATS_PATH/css»; $AWSTATS_CLASSES_PATH=»$AWSTATS_PATH/classes»; $AWSTATS_CGI_PATH=»$AWSTATS_PATH/cgi-bin»;
# примерно строчка 486 if ($_ =~ /Directory «$awstats_path_quoted»/) { $awstatsdirectoryfound=1; }
# строчка 530 <Directory «$AWSTATS_PATH»>
# строчка 549 if (-f «$AWSTATS_PATH/cgi-bin/awstats.model.conf») { $modelfile=»$AWSTATS_PATH/cgi-bin/awstats.model.conf»;
# и парой строчек ниже if (! -s $modelfile || ! -w $modelfile) { $modelfile = «$AWSTATS_PATH/cgi-bin/awstats.model.conf»; }
Вот теперь мжоно запустить скрипт:
# cd /usr/local/www/awstats/tools/
# perl awstats_configure.pl
Сначала скрипт расскажет нам о преимуществах чтения документации, расскажет о том, что мы используем нестандартную папку (стандартная — /usr/local/awstast/) и спросит хотим ли мы продолжать. Соглашаемся. После этого надо будет ввести полный путь до конфигурационного файла Apache — /usr/local/etc/apache22/httpd.conf. Следующий вопрос — создавать ли новый конфиг для AWStats — да. Далее надо будет ввести ваш домен и путь, где будут храниться конфигурационные файлы AWStats (я указал /usr/local/etc/awstats/). Теперь скрипт скажет, что он еще не умеет добавлять задания в cron и предложит сделать нам это самим. Делается это вот так (первая команда — для одного конфига, вторая — для всех; выбрать надо одну):
|  # /usr/local/www/astats/cgi-bin/awstats.pl -update -config=stats.vcore.ru # /usr/local/www/awstats/cgi-bin/awstats_updateall.pl now  | 
Ну и последнее, что нам сообщит скрипт — это то, что конфигурационный файл был успешно создан, мы можем его сами редактировать. Так же, чтобы вручную обновить статистику для созданного сайта надо использовать команду:
| # perl awstats.pl -update -config=stats.vcore.ru | 
Или же можно создать статические отчеты с помощью команды:
| # perl awstats.pl -output=pagetype -config=stats.vcore.ru | 
|  # указываем правильный лог файл LogFile=»/var/log/httpd-access.log» # разрешаем использовать DNS для замены ip-адресов именами DNSLookup=1 # где хранится бд AWStatsDirData=»/var/db/awstats» # разные параметры для авторизации AllowAccessFromWebToAuthenticatedUsersOnly=1 AllowAccessFromWebToFollowingAuthenticatedUsers=»user1 user2″ AllowAccessFromWebToFollowingIPAddresses=»192.168.0.3″ # плагин, отвечающий за подсказкиLoadPlugin=»tooltips» # плагин, отвечающий за правильное отображение UTF-строк LoadPlugin=»decodeutfkeys» # инфо о хостахLoadPlugin=»hostinfo»  | 
Создаем директорию /var/db/awstats и устанавливаем на нее нужные нам права:
| # mkdir /var/db/awstats # chown www:www /var/db/awstats  | 
Редактируем файл /usr/local/etc/apache22/httpd.conf и приводим секцию Directory вот к такому виду (она в самом низу файла):
|  <Directory «/usr/local/www/awstats/»>   <Files «awstats.pl»> AuthUserFile /usr/local/etc/apache22/passwd AuthName «Restricted Area For Customers» AuthType Basic require valid-user </Files> Options None AllowOverride All Order allow,deny Allow from all </Directory>  | 
Это нужно для того, чтобы использовать авторизацию для просмотра логов. Так же для удобства я создаю виртуальный хост stats.vcore.ru. Добавляем следующие строчки в файл /usr/local/etc/apache22/extra/httpd-vhosts.conf:
|  <VirtualHost *:80> ServerAdmin av3nger@list.ru DocumentRoot «/usr/local/www/awstats» ServerName stats.vcore.ru ServerAlias www.stats.vcore.ru </VirtualHost>  | 
Чтобы создать файл с паролями, который будет использоваться для авторизации пользователей, надо воспользоваться следующей командой:
| # htpasswd -c /usr/local/etc/apache22/passwd user | 
где user — это имя создаваемого пользователя.
Использование
Ок. Пришло время для первого тестового запуска. Для начала, надо создать или обновить базу данных AWStats. Запускаем скрипт awstats.pl, который находится в папке /usr/local/www/awstats/cgi-bin/:
 # perl awstats.pl -config=stats.vcore.ru -update 
Будет следующий вывод на экран: 
Create/Update database for config 
«/usr/local/etc/awstats/awstats.stats.vcore.ru.conf» 
From data in log file «/var/log/httpd-access.log»… 
Phase 1 : First bypass old records, searching new record… Searching new records from beginning of log file… 
Phase 2 : Now process new records (Flush history on disk after 20000 hosts)… 
Jumped lines in file: 0 
Parsed lines in file: 4909 
Found 0 dropped records, 
Found 2 corrupted records, 
Found 0 old records, 
Found 4907 new qualified records. 
dropped records — отвечает за те записи, которые не соответствовал 
формату, указанному в конфиг файле, или не являлись валидными 
HTTP-запросами
corrupted records — это записи, которые не соответствую параметру 
«LogFormat» в конфиг файле AWStats; обычно таких записей не больше 5% 
даже на хорошо настроенных серверах
old records — записи, которые уже были просмотрены при прошлом запуске скрипта
new qualified records — записи, которые были использованы для наполнения базы данных AWStats
Теперь можно cоздать и просмотреть отчеты. Для этого важно, чтобы база уже была создана и наполнена, что мы только что сделали. Страницы создаются следующим образом:
# perl awstats.pl -config=stats.vcore.ru -output -staticlinks > awstats.stats.vcore.ru.html
Ну, можно зайти на и посмотреть отчеты:
http://stats.vcore.ru/awstats/awstats.pl
Если, вдруг, на странице будет какая-то ошибка, связанная с недостающим модулем Perl Escape, то поставить его можно вот так:
# perl -MCPAN -e shell # install URI::Escape
Интеграция с Webmin
1.  Открываем Webmin, идем в раздел Webmin -> Webmin Configuration -> Webmin Modules
2. Открываем вкладку Install и указываем путь до файла awstats-x.x.wbm, который находится в папке /usr/local/www/awstats/tools/webmin/
3. Нажимаем кнопку Install Module
4. Открываем файл /usr/local/lib/webmin/awstats/defaultacl и редактируем там параметр dir:
		
		
			dir=/usr/local/etc/awstats ~/awstats
			
				
Добавить поддержку перла в апач:
# cd /usr/ports/www/mod_perl2/
# make install clean
 Пример содержимого httpd.conf: 
  
LoadModule perl_module libexec/apache2/mod_perl.so
...
<Directory /usr/local/www/awstats>
    Options +ExecCGI
    SetHandler perl-script
    PerlResponseHandler ModPerl::Registry
    PerlOptions +ParseHeaders
    AllowOverride None
    Order Allow,Deny
    Allow from all
</Directory>
Выставить владельцем папки с авастом www:www, положить сюда конфигурационный файл свой.
cd /usr/ports/lang/perl5.28/
make inastall clean
Установить GeoIP модули, запустить скрипт обновления БД /usr/local/bin/geoip update
Прописать путь к БД(/usr/locale/share/geoip) в конфигуратор awstats
Добавить в /etc/crontab задачу на каждые 28минут:
*/28 * * * * root perl /usr/local/www/awstats/cgi-bin/awstats.pl -config=stats.орлин.рф -update
Готовый отчет можно наблюдать по адресу http://stat.орлин.рф/awstats/awstats.pl
Ссылки по теме
1. Официальный сайт AWStats
 2. Страничка в Wikipedia (к сожалению, на английском)