User Tools

Site Tools


средства_программирования_shell

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
средства_программирования_shell [2023/01/08 08:57]
val [Проверка синтаксиса]
средства_программирования_shell [2024/04/11 12:41]
val [Web сервер на shell]
Line 79: Line 79:
  
 ==== Целочисленный цикл (поиск хостов в подсети) ==== ==== Целочисленный цикл (поиск хостов в подсети) ====
 +
 +  * [[Утилита nmap#Ping диапазона адресов с verbose и debug]]
 +
 <​code>​ <​code>​
 $ cat test_ping.sh $ cat test_ping.sh
Line 84: Line 87:
 #!/bin/sh #!/bin/sh
  
-test -z $1 && exit 1+#test -z $1 && exit 1 
 +#[ "​$1"​ ] || { echo Example: ./​test_ping.sh 10.5.11; exit 1; }
  
 i=1 i=1
Line 90: Line 94:
 do do
   test $i = 50 && continue   test $i = 50 && continue
-  ping -c 1 -W 1 $1.$i > /dev/null 2>&1 && echo $1.$i+  ping -c 1 -W 1 $1.$i > /dev/null 2>&1 && echo $1.$i || echo No $i
   i=$(($i + 1))   i=$(($i + 1))
 done done
Line 392: Line 396:
  
 read request read request
-#echo $request >> $log+##echo "$request" ​>> $log       # for educational demonstration
  
 filename="​${request#​GET }" filename="​${request#​GET }"
Line 404: Line 408:
 do do
   read -r header   read -r header
-#  echo $header >> $log+##  echo "$header" ​>> $log       # for educational demonstration
   [ "​$header"​ == $'​\r'​ ] && break;   [ "​$header"​ == $'​\r'​ ] && break;
 +##  [ "​$header"​ == $''​ ] && break; ​   # for STDIN/​STDOUT educational demonstration
 done done
  
 if [ -e "​$filename"​ ] if [ -e "​$filename"​ ]
 then then
-#  echo `date` OK $filename >> $log+#  echo `date` OK $filename ​on `hostname` ​>> $log
   echo -e "​HTTP/​1.1 200 OK\r"   echo -e "​HTTP/​1.1 200 OK\r"
-  echo -e "​Content-Type:​ $(/​usr/​bin/​file -bi \"$filename\")\r"+  echo -e "​Content-Type:​ $(/​usr/​bin/​file -bi $filename)\r"​
   echo -e "​\r"​   echo -e "​\r"​
   /bin/cat "​$filename"​   /bin/cat "​$filename"​
 else else
-#  echo "​$(date)"​ ERR $filename >> $log+#  echo "​$(date)"​ ERR $filename ​on "​$(hostname)" ​>> ​"$log"
   echo -e "​HTTP/​1.1 404 Not Found\r"​   echo -e "​HTTP/​1.1 404 Not Found\r"​
   echo -e "​Content-Type:​ text/​html;​\r"​   echo -e "​Content-Type:​ text/​html;​\r"​
Line 460: Line 465:
  
 ==== Использование диалоговых окон ==== ==== Использование диалоговых окон ====
 +
 +<​code>​
 +ansible-pull-gpo#​ cat start.sh
 +</​code><​code>​
 +#!/bin/bash
 +
 +on_off() {
 +        grep -q "​$1"​ "​$2"​ && echo ON || echo OFF
 +}
 +
 +if [ -z ${BR+x} ]; then echo -e "​Variable BR (branch) is not set, specify, for example\nexport BR=master";​ exit 1; fi
 +
 +apt update || exit 0
 +
 +apt install dialog ansible git -y
 +
 +GP_OP_FILE=/​usr/​local/​etc/​gpo_options.yml
 +GP_EX_FILE=/​usr/​local/​bin/​ansible-pull-gpo.sh
 +
 +TEMP_FILE=$(mktemp -t '​XXXX'​)
 +
 +touch "​$GP_OP_FILE"​
 +
 +dialog ​ --title "​Configurations,​ Roles and Programs" ​ --clear --nocancel\
 +        --checklist "​Choose Options"​ 19 56 15 \
 +        CONF_RUS_INT:​ "​Russian Interface"​ "​$(on_off CONF_RUS_INT "​$GP_OP_FILE"​)"​ \
 +        PROG_THBIRD:​ "Mail client Thunderbird"​ "​$(on_off PROG_THBIRD "​$GP_OP_FILE"​)"​ \
 +        ROLE_ZAB_AG:​ "​Zabbix Agent" "​$(on_off ROLE_ZAB_AG "​$GP_OP_FILE"​)"​ \
 +        ROLE_OVPN1_CL:​ "​OpenVPN Client"​ "​$(on_off ROLE_OVPN1_CL "​$GP_OP_FILE"​)"​ \
 +2>"​$TEMP_FILE"​
 +
 +< "​$TEMP_FILE"​ tr " " "​\n"​ > "​$GP_OP_FILE"​
 +
 +rm "​$TEMP_FILE"​
 +
 +echo -e "​\nEND:"​ >> "​$GP_OP_FILE"​
 +
 +echo "/​usr/​bin/​ansible-pull -U http://​server.corpX.un/​student/​ansible-pull-gpo.git -C $BR -e @$GP_OP_FILE"​ > "​$GP_EX_FILE"​
 +
 +chmod +x "​$GP_EX_FILE"​
 +
 +##exit 0
 +
 +echo -e "0 */2 * * * sleep \${RANDOM:​0:​2}m;​ $GP_EX_FILE\n@reboot sleep 3m; $GP_EX_FILE"​ | crontab -
 +
 +"​$GP_EX_FILE"​
 +
 +#apt upgrade -y
 +
 +#reboot
 +</​code>​
  
 === Использование программы whiptail (Linux) === === Использование программы whiptail (Linux) ===
средства_программирования_shell.txt · Last modified: 2024/05/10 17:17 by val