Архив автора: admin

Скрипт BASH проверяющий доступность сайта/ip-адреса.

Сегодня в статье разберем пример написания скрипта для проверки доступности ресурса при помощи BASH в Linux. Может кому то будет полезен :).






И так поехали:




Скрипт доступности ресурса




  1. Создадим текстовый файл ping_test.sh со следующим содержанием:




sudo nano ~/ping_test.sh




#!/bin/bash
PATH=/bin:/bin/bash:/usr/bin:/sbin:/usr/sbin
IP=("10.5.5.1") # тут либо ip, либо FQDN вашего домена
for g in ${IP[@]}; do
    result=$(ping -c 2 -W 1 -q $g | grep transmitted)
    pattern="0 received";
        if [[ $result =~ $pattern ]]; then
            while [[ $result =~ $pattern ]]
                do
                result=$(ping -c 2 -W 1 -q $g | grep transmitted)
                echo "$result"
            done
        else
             echo "$g is up"
        fi
done




Скрипт будет проверять доступность ресурса при помощи команды ping до тех пор пока данный ресурс не выйдет на связь. Для автоматизации давайте запишем задание в crontab. Задание будет срабатывать при перезагрузке системы.




@reboot /bin/bash /sbin/ping_test.sh




Также если вам необходимо чтобы еще отправлялось уведомление на почту, то скрипт примет такой вид:




#!/bin/bash
PATH=/bin:/bin/bash:/usr/bin:/sbin:/usr/sbin
IP=("10.5.5.1")
for g in ${IP[@]}; do
    result=$(ping -c 2 -W 1 -q $g | grep transmitted)
    pattern="0 received";
        if [[ $result =~ $pattern ]]; then
            while [[ $result =~ $pattern ]]
                do
                result=$(ping -c 2 -W 1 -q $g | grep transmitted)
                #отправим уведомление на почту
                sendmail -f "кому@yandex.ru" -t "от_кого@yandex.ru" -u "Проблема с доступностью сервера" -m "Сообщение от $(hostname) . $ADDR недоступен с $(date)" -xu "логин" -xp "пароль" -s "smtp.yandex.ru" -o "message-charset=utf-8"
                notify-send "Статус сервера $IP" "Offline, сообщение направлено на почту"
            done
        else
             echo "$g is up"
        fi
done
fi




  • IP=”10.5.5.1″ – IP-адрес для мониторинга. Через пробел можно указать несколько адресов.



  • ping -c 2 -W 1 – количество пакетов посылаемых на сервер



  • -f “кому@yandex.ru” – указываю свою почту



  • -t “от_кого@yandex.ru” – указываем почту от которой будем отправлять.



  • -u “Проблема с доступностью сервера” – тема сообщения



  • -m “Сообщение от $(hostname) . $ADDR недоступен с $(date)” – Содержание сообщения



  • -xu “логин” – Логин от вашей почты



  • -xp “пароль” – Пароль от вашей почты



  • -s “smtp.yandex.ru” – Адрес smtp сервера отправки почты, в моем случае это yandex



  • -o “message-charset=utf-8” – Кодировка сообщения, без нее будет крякозябры.




  1. Даем права на исполнение




chmod +x ping_test.sh




Для того чтобы сработала отправка почты нужно установить пакет sendmail




sudo apt install sendmail




  1. Радуемся, через заданный промежуток времени в событии будет высвечено сообщение о статусе.




Скрипт доступности ресурса каждые 10 секунд




Запускать задание через каждых 10 секунд:




#!/bin/bash
PATH=/bin:/bin/bash:/usr/bin:/sbin:/usr/sbin
IP=("10.5.5.1")
while :;do
  for g in ${IP[@]}; do
    result=$(ping -c 2 -W 1 -q $g | grep transmitted)
    pattern="0 received";
        if [[ $result =~ $pattern ]]; then
            while [[ $result =~ $pattern ]]
                do
                result=$(ping -c 2 -W 1 -q $g | grep transmitted)
                echo "$result"
            done
        else
             echo "$g is up"
        fi
  done
  sleep 10
done



[endtxt]




. . . .






2020-09-15T19:24:31
Network

Как проверить версию Java

Java — один из самых популярных языков программирования в мире, используемый для создания различных типов кроссплатформенных приложений.

В этой статье объясняется, как с помощью командной строки проверить, какая версия Java установлена ​​в вашей системе Linux. Это может быть полезно при установке приложений, требующих определенной версии Java.

 

Управление версиями Java

Java использует семантическое управление версиями. Версии готовых к выпуску релизов представлены по следующей схеме:

MAJOR.MINOR.SECURITY


 

Например, в Java 11.0.8 11 это основная версия, 0 это дополнительная версия и 8 версия безопасности.

  • MAJOR — Основные выпуски содержат новые функции и возможности.
  • MINOR — Незначительные выпуски содержат различные исправления ошибок и совместимые улучшения.
  • SECURITY — В выпусках безопасности содержатся критические исправления безопасности.

 

Проверка версии Java

Чтобы узнать, какая версия Java установлена в вашей системе, выполните команду java -version:

java -version

 

Команда отобразит версию Java по умолчанию:

openjdk 11.0.8 2020-07-14

OpenJDK Runtime Environment (build 11.0.8+10-post-Ubuntu-0ubuntu120.04)

OpenJDK 64-Bit Server VM (build 11.0.8+10-post-Ubuntu-0ubuntu120.04, mixed mode, sharing)


 

В этом примере 11.0.8 в нашей системе установлена версия Java. Версия, установленная в вашей системе, может отличаться.

Если вы получили сообщение (Ubuntu, Debian):

Command 'java' not found, but can be installed with:                                                                                                                            

                                                                                                                                                                                

apt install default-jre                                                                                                                                                         

apt install openjdk-11-jre-headless                                                                                                                                             

apt install openjdk-8-jre-headless

 

это означает, что Java не установлена в системе.

В системе также может быть установлено несколько версий Java одновременно. Чтобы проверить, есть ли на вашем компьютере несколько установок Java:

sudo update-alternatives --config java

 

Если у вас только одна установка Java, результат будет выглядеть примерно так:

There is only one alternative in link group java (providing /usr/bin/java): /usr/lib/jvm/java-11-openjdk-amd64/bin/java

Nothing to configure.


 

В противном случае, если у вас несколько установок Java, команда отобразит меню, в котором вы можете выбрать, какая версия будет версией Java по умолчанию:

There are 3 choices for the alternative java (providing /usr/bin/java).



  Selection    Path                                            Priority   Status

------------------------------------------------------------

* 0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      auto mode

  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      manual mode

  2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode



Press <enter> to keep the current choice[*], or type selection number:


 

Чтобы изменить версию Java по умолчанию, просто введите номер версии (число в столбце «Выбор») и нажмите Enter.

 

Вывод

Узнать, какая версия Java установлена в вашей системе Linux, очень просто, просто введите java -version.

Не стесняйтесь оставлять комментарии, если у вас есть вопросы.



2020-09-12T18:00:35
Java

Дешевый VPS/VDS в Европе/США

Читая очередную статью на хабре, наткнулся в комментах на очередного хостера с невообразимо копеечными ценами на хостинг/виртуальные или выделенные сервера.




Что оно представляет из себя по качеству — я хз.




ENJOY! https://contabo.com



2020-09-12T17:21:50
Веб-разработка

How to Customize MikroTik Hotspot Login Page

MikroTik Hotspot is an awesome service that can be customized according to any organization need. MikroTik Hotspot is able to authenticate and authorize network users so easily. Besides premium Hotspot service, it can also be used as a public Hotspot network. Although public network is a free network service, it can be a better source of income by serving ads. As no user can get internet access without visiting Hotspot login page, the login page is main space for serving ads. MikroTik Hotspot is nothing but a HTML page. So, knowing simple HTML, CSS and JavaScript, we can easily customize Hotspot login page according to our demand and can also put partner’s ads in login page to increase earning.  




In my previous article, I discussed how to configure MikroTik Hotspot using Winbox. Default Hotspot configuration provides a login page that we may find boring and not so perfect for our organization. So, in this article I will discuss how to customize Hotspot Login page according to our demand so easily.




How to Customize Hotspot Login Page




3 Easy Steps to Customize MikroTik Hotspot Login Page




Customizing MikroTik Hotspot login page is not so difficult task. Knowing some basic HTML, CSS and JavaScript, we can easily customize login page according to our demand. So, if we wish to customize login page, we need to do the following three steps.




  • Downloading HTML login page from MikroTik Router
  • Editing login page with own HTML, CSS and JavaScript code
  • Uploading edited login page to MikroTik Router






Steps 1: Downloading HTML login page from MikroTik Router




When we setup Hotspot Server, it automatically creates necessary and basic files required to authenticate and authorize Hotspot users. These files including login page are kept in Files directory in MikroTik Router. So, at first we have to download the HTML login page from Files directory because there is no way to edit files keeping in MikroTik Router. The following steps will show how to download Hotspot login page from Files directory.




  • Login to MikroTik Router using Winbox software using full permission user credentials.
  • Click on Files menu. File List window will appear where you will find a lot of files created by Hotspot Server.
  • Search and find hotspot/login.html file and then drag and drop this file in your Desktop or in a directory where you prefer.




MikroTik-Hotspot-Login-Page-in-File-List
MikroTik Router File List




Step 2: Editing Login Page with own HTML, CSS and JavaScript Code




After downloading HTML login page, we will now edit the login file. So, open this file with any HTML editor. I personally use Notepad++ because it is free and easy to use. But if you have better editor, you can also use that.




Opening the login file, you will find basic HTML tags like html, head, title, body etc. are present there. You will also find CSS code in style tag and JavaScript code in script tag. Besides these, some logical codes written in MikroTik own language is present there.




We must always remember not to touch MikroTik Router’s logical code as well as JavaScript code written by MikroTik Router. But we are free to extend JavaScript according to our demand.






Hotspot login area is a HTML form which is aligned with static table element. If we wish we can remove the table element replacing with any suitable HTML tag for designing purpose but we must keep the form element and its action untouched as well as the input elements and its attributes. CSS selector like class and id can be applied to any HTML element for designing purpose.




Keeping the above restrictions in mind we are now free to customize the login page as our wish. I have rearranged the login page and applied some designs on it in my LAB Hotspot Server. The entire HTML, CSS and JavaScript code is given below for your reference.




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="expires" content="-1" />
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0;"/>
<title>System Zone Hotspot</title>
<style type="text/css">
body {
 color: #737373; 
 font-size: 14px; 
 font-family: verdana;
}
.container{
   width:300px;
   height:auto;
   margin:0 auto;
   margin-top:10vh;
   -webkit-box-shadow: 3px 3px 5px 6px #ccc;  /* Safari 3-4, iOS 4.0.2 - 4.2, Android 2.3+ */
   -moz-box-shadow:    3px 3px 5px 6px #ccc;  /* Firefox 3.5 - 3.6 */
    box-shadow:         3px 3px 5px 6px #ccc; 
   padding:15px 20px 25px 20px;
}
.banner{
  width:100%;
  text-align:center;
}
.banner img{
   max-width:100%; 
   height:auto;   
}
.banner label{
   font-size:20px;
   font-weight:bold;
}
.error-panel{
  width:100%;
  height:auto;
  margin-top:20px;
  color:red;
}
.login-panel{
  width:290px;
  margin-top:30px;
}
.login-input{
   width:100%;
   height:40px;
   margin-top:20px;
   margin-bottom:20px;
}
.login-input input{
  width:100%;
  height:35px;
}
#login-button{
  width:102%;
  text-align:right;
}
#login-button input{
  width:100px;
  height:38px;
  background-color:#b97d00;
  border-color:#b97d00;
  color:#fff;
}
#login-button input:hover{
  background-color:#000;
  border:1px solid #000;
}
.free-trial{
  width:100%;
  margin-top:20px;
  margin-bottom:10px;
  text-align:center;
}
.free-trial a{
  text-decoration:none;
  color:#b97d00;
}
.free-trial a:hover{
  text-decoration:underline;
}
.datetime{
   width:100%;
   margin-top:15px;
   text-align:center;
   font-size:20px;
}
</style>
</head>

<body onload="startTime()">
$(if chap-id)
	<form name="sendin" action="$(link-login-only)" method="post">
		<input type="hidden" name="username" />
		<input type="hidden" name="password" />
		<input type="hidden" name="dst" value="$(link-orig)" />
		<input type="hidden" name="popup" value="true" />
	</form>
	
	<script type="text/javascript" src="/md5.js"></script>
	<script type="text/javascript">
	<!--
	    function doLogin() {
		document.sendin.username.value = document.login.username.value;
		document.sendin.password.value = hexMD5('$(chap-id)' + document.login.password.value + '$(chap-challenge)');
		document.sendin.submit();
		return false;
	    }
	//-->
	</script>
$(endif)
            
			<div class="container">
			        <div class="banner">
					  <img src="/img/logo.png" />
					  <label>Hotspot Login</label>
					</div>
					<form name="login" action="$(link-login-only)" method="post"
					    $(if chap-id) onSubmit="return doLogin()" $(endif)>
						<input type="hidden" name="dst" value="$(link-orig)" />
						<input type="hidden" name="popup" value="true" />	
                            $(if error)
							 <div class="error-panel">
							   $(error)
							 </div>
							$(endif)						
							<div class="login-panel">							
							 <div class="login-input">
							  <input  name="username" type="text" value="$(username)" placeholder="Login username"/>
							 </div>								
							 <div class="login-input">
							  <input name="password" type="password" placeholder="Login password"/>
							 </div>											
							  <div id="login-button"><input type="submit" value="Login" /></div>
                              <div class="free-trial">
                                $(if trial == 'yes')
								    Free trial available, <a href="$(link-login-only)?dst=$(link-orig-esc)&amp;username=T-$(mac-esc)">click here</a>.
								  $(endif)
                              </div>
                              <div class="datetime">
							    <span id="date"></span> - <span id="time"></span>
							  </div>							  
							</div>
					</form>
		    </div>	
<script type="text/javascript">
<!--
  document.login.username.focus();
//-->
 var dt = new Date();
 document.getElementById("date").innerHTML = dt.toLocaleDateString();
 function startTime() {
  var today = new Date();
  document.getElementById("time").innerHTML = today.toLocaleTimeString()
  var t = setTimeout(startTime, 500);
}
</script>
</body>
</html>




The above code is written for a simple login page but it includes all required HTML, CSS and JavaScript code as example. So, if you have HTML, CSS and JavaScript experience, you can easily extend your login page functionality. 




Note: if you have any image in login page, the image must upload in hotspot/img directory and add the image source as /img/logo.png where logo.png is an image file that representing company logo.




Step 3: Uploading Edited Login Page to MikroTik Router




After editing login page, we will now upload the edited file to MikroTik Router. The following steps will show how to upload the edited file in MikroTik Router.




  • Login to MikroTik Router again with Winbox software.
  • Click on Files menu item to open File List window.
  • Remove the old login page under hotspot directory.
  • Now drag and drop your edited file under hotspot directory.






Now refresh your login page and you will find the new login page designed by yourself. If you use my above code, the login page looks the following image.




Custom Hotspot Login Page
Custom Hotspot Login Page




How to customize MikroTik Hotspot login page with HTML, CSS and JavaScript has been discussed in this article. I hope you will now be able to customize MikroTik Hotspot login page so easily. However, if you face any confusion to customize Hotspot login page with HTML, CSS and JavaScript code, feel free to discuss in comment or contact me from Contact page. I will try my best to stay with you.    



2020-09-12T16:16:14
MikroTik Hotspot Tutorials & Guides

Пинг сервисы обновления wordpress 2020

Составил и отсортировал повторяющиеся пинг сервисы для блогов WordPress в 2020 году. Копируйте и пользуйтесь моим списком пинг сервисов чтобы ускорить индексацию.




Пинг сервисы WordPress 2020




Чтобы ускорить индексацию сайта поисковым системам нужно каким-то образом сообщить про обновление. Делают это через пинг сервисы. Раньше я использовал более 200 пинг сервисов, но сегодня в 2020 году я оставил только рабочие и не повторяющиеся, который занес в этот список.




http://api.my.yahoo.co.jp/RPC2 
http://audiorpc.weblogs.com/RPC2 
http://blog.goo.ne.jp/XMLRPC 
http://blogpeople.net/ping 
http://blogpeople.net/servlet/weblogUpdates 
http://blogsearch.google.ae/ping/RPC2
http://blogsearch.google.at/ping/RPC2
http://blogsearch.google.be/ping/RPC2
http://blogsearch.google.bg/ping/RPC2
http://blogsearch.google.ca/ping/RPC2
http://blogsearch.google.ch/ping/RPC2
http://blogsearch.google.cl/ping/RPC2
http://blogsearch.google.co.cr/ping/RPC2
http://blogsearch.google.co.hu/ping/RPC2
http://blogsearch.google.co.id/ping/RPC2
http://blogsearch.google.co.il/ping/RPC2
http://blogsearch.google.co.in/ping/RPC2 
http://blogsearch.google.co.jp/ping/RPC2
http://blogsearch.google.co.ma/ping/RPC2
http://blogsearch.google.com.ar/ping/RPC2
http://blogsearch.google.com.au/ping/RPC2
http://blogsearch.google.com.br/ping/RPC2
http://blogsearch.google.com.co/ping/RPC2
http://blogsearch.google.com.do/ping/RPC2
http://blogsearch.google.com.mx/ping/RPC2
http://blogsearch.google.com.my/ping/RPC2
http://blogsearch.google.com.pe/ping/RPC2
http://blogsearch.google.com/ping/RPC2
http://blogsearch.google.com.sa/ping/RPC2
http://blogsearch.google.com.sg/ping/RPC2
http://blogsearch.google.com.tr/ping/RPC2
http://blogsearch.google.com.tw/ping/RPC2 
http://blogsearch.google.com.ua/ping/RPC2
http://blogsearch.google.com.uy/ping/RPC2
http://blogsearch.google.com.vn/ping/RPC2
http://blogsearch.google.co.nz/ping/RPC2
http://blogsearch.google.co.th/ping/RPC2
http://blogsearch.google.co.uk/ping/RPC2
http://blogsearch.google.co.ve/ping/RPC2
http://blogsearch.google.co.za/ping/RPC2
http://blogsearch.google.de/ping/RPC2
http://blogsearch.google.es/ping/RPC2
http://blogsearch.google.fi/ping/RPC2
http://blogsearch.google.fr/ping/RPC2
http://blogsearch.google.gr/ping/RPC2
http://blogsearch.google.hr/ping/RPC2
http://blogsearch.google.ie/ping/RPC2
http://blogsearch.google.it/ping/RPC2
http://blogsearch.google.jp/ping/RPC2
http://blogsearch.google.lt/ping/RPC2
http://blogsearch.google.nl/ping/RPC2
http://blogsearch.google.pl/ping/RPC2
http://blogsearch.google.pt/ping/RPC2
http://blogsearch.google.ro/ping/RPC2
http://blogsearch.google.ru/ping/RPC2
http://blogsearch.google.se/ping/RPC2
http://blogsearch.google.sk/ping/RPC2
http://blogsearch.google.us/ping/RPC2
http://blogshares.com/rpc.php 
http://blo.gs/ping.php
http://blogs.yandex.ru/
http://geourl.org/ping 
http://godesigngroup.com/blog/feed/ 
http://ipings.com 
http://lasermemory.com/lsrpc
http://mod-pubsub.org/kn_apps/blogchatt 
http://mod-pubsub.org/kn_apps/blogchatter/ping.php 
http://mod-pubsub.org/ping.php 
http://ping.amagle.com 
http://ping.bitacoras.com 
http://ping.bloggers.jp/rpc/
http://ping.blogs.yandex.ru/RPC2
http://pinger.onejavastreet.com 
http://ping.fc2.com/
http://ping.feedburner.com
http://ping.rootblog.com/rpc.php 
http://ping.rss.drecom.jp/
http://rpc.bloggerei.de/ping/ 
http://rpc.icerocket.com:10080/ 
http://rpc.pingomatic.com
http://rpc.twingly.com
http://rpc.weblogs.com/RPC2
https://blog.goo.ne.jp/XMLRPC
http://services.newsgator.com/ngws/xmlrpcping.aspx 
https://rpc.bloggerei.de/ping/
http://wasalive.com/ping/ 
http://www.blogdigger.com/RPC2
http://www.blogpeople.net/servlet/weblogUpdates 
http://www.blogshares.com/rpc.php 
http://www.godesigngroup.com 
http://www.lasermemory.com/lsrpc 
http://www.mod-pubsub.org/kn_apps/blogchatter/ping.php 
http://www.ping.blo.gs/ 
http://www.pingerati.net 
http://www.pingmyblog.com
http://www.rpc.technorati.jp/rpc/ping 
http://www.wasalive.com/ping/ 
http://www.xmlrpc.bloggernetz.de/RPC2 
http://xmlrpc.bloggernetz.de/RPC2 
http://xping.pubsub.com/ping/





2020-09-11T23:25:32
WordPress

Получите ваш контент WordPress индексированный немедленно с помощью плагина Bing Webmaster Tools

Выпущен плагин Bing URL Submissions для WordPress в качестве проекта с открытым исходным кодом. Плагин позволяет вебмастерам сайтов yf WordPress легко, автоматически и сразу же индексировать свой контент Bing, как только он будет опубликован! Кто в SEO-сообществе не мечтал о такой способности?

С прошлого года вебмастеры имеют возможность отправлять до 10 000 URL-адресов в день и многое другое, если потребуется, через портал инструментов веб-мастера Bing, а также API инструментов веб-мастера Bing для немедленного обхода и индексации. Сегодня мы сделали эту подачу очень простой для сайтов WordPress, выпустив плагин Bing Webmaster Tools WordPress. После установки и настройки с помощью ключа API, полученного от портала Bing Webmaster, плагин обнаруживает как обновления страниц, так и новые страницы, созданные в WordPress, и автоматически отправляет URL-адреса за кулисы в наш API инструментов Bing Webmaster, гарантируя, что страницы сайта всегда свежи в индексе Bing.

Некоторые другие удобные функции, включенные в плагин:

  • Возможность включения и выключения функции автоматической отправки.
  • ​Вручную отправьте URL-адрес в индекс Bing.
  • Просмотр списка последних URL-адресов, отправленных плагином.
  • Повторите попытку всех неудачных представлений из списка последних представлений.
  • Загрузить последние URL-адреса для анализа.

Следуйте этим инструкциям в 2 простых шага, чтобы установить плагин WordPress и наслаждаться автоматической индексацией в реальном времени в поисковой системе Bing вашего контента в CMS WordPress.

Найдите плагин в панели Плагинов в WordPress: Bing URL Submissions Plugin.

Добавьте свой ключ API Bing Webmaster Tools для активации.



2020-09-11T22:52:05
Bing