средства_программирования_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
средства_программирования_shell [2023/03/14 07:30]
val [Целочисленный цикл (поиск хостов в подсети)]
средства_программирования_shell [2025/03/10 10:06] (current)
val [Передача сообщений в syslog]
Line 4: Line 4:
   * [[http://​mywiki.wooledge.org/​BashFAQ|Часто задаваемые вопросы про bash (eng)]]   * [[http://​mywiki.wooledge.org/​BashFAQ|Часто задаваемые вопросы про bash (eng)]]
   * [[https://​habrahabr.ru/​post/​335960/​|Играючи BASH'​им]]   * [[https://​habrahabr.ru/​post/​335960/​|Играючи BASH'​им]]
 +  * [[https://​unix.stackexchange.com/​questions/​159513/​what-are-the-shells-control-and-redirection-operators|What are the shell'​s control and redirection operators?​]]
  
   * [[https://​youtu.be/​GxVmukxVUo0|Видео урок]]   * [[https://​youtu.be/​GxVmukxVUo0|Видео урок]]
Line 87: Line 88:
 #!/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 93: Line 95:
 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 190: Line 192:
  
 <​code>​ <​code>​
-cat log_gen.sh +bash -c 'cat <<END >log_gen.sh
-</​code><​code>​+
 while : while :
 do do
Line 197: Line 198:
   logger -t cisco -p local0.info "​Message 2"   logger -t cisco -p local0.info "​Message 2"
 done done
 +END'
 </​code><​code>​ </​code><​code>​
-$ sh cisco_log_gen.sh+$ sh log_gen.sh
 </​code>​ </​code>​
 ===== Примеры использования скриптов sh в системах загрузки ===== ===== Примеры использования скриптов sh в системах загрузки =====
Line 416: Line 418:
 #  echo `date` OK $filename on `hostname` >> $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 on "​$(hostname)"​ >> $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 436: Line 438:
 ==== Ресурсы Web сервера на shell ==== ==== Ресурсы Web сервера на shell ====
 <​code>​ <​code>​
-# mkdir /var/www+# mkdir -p /var/www
  
 # cat /​var/​www/​index.html # cat /​var/​www/​index.html
Line 445: Line 447:
 </​html>​ </​html>​
 </​code><​code>​ </​code><​code>​
-# mkdir /​var/​www/​img+# mkdir -p /​var/​www/​img
 </​code>​ </​code>​
  
Line 462: Line 464:
   * [[Сервис Asterisk#​Asterisk AGI]]   * [[Сервис Asterisk#​Asterisk AGI]]
  
 +
 +==== Отправка email с вложениями ====
 +
 +  * [[https://​serverfault.com/​questions/​38919/​send-an-email-with-an-attached-file-using-telnet-or-netcat|Send an email with an attached file using telnet or netcat]]
 +
 +<​code>​
 +$ cat mail.sh
 +</​code><​code>​
 +#!/bin/sh
 +
 +[ -f "​$1"​ ] || { echo Example: ./mail.sh attach_file_name;​ exit 1; }
 +
 +EMAIL="​val@bmstu.ru"​
 +MAILSERVER="​mailhub.bmstu.ru"​
 +FILENAME=$1
 +
 +{
 +    sleep 2;
 +    echo "EHLO $MAILSERVER";​ sleep 1;
 +    echo "MAIL FROM: <​$EMAIL>";​ sleep 1;
 +    echo "RCPT TO: <​$EMAIL>";​ sleep 1;
 +    echo "​DATA";​ sleep 1;
 +    echo "To: $EMAIL"​
 +    echo "​Subject:​ $FILENAME"​
 +    echo "​MIME-Version:​ 1.0 (mime-construct 1.9)"
 +    echo "​Content-Type:​ $(/​usr/​bin/​file -bi $FILENAME); name=\"​$FILENAME\""​
 +    echo "​Content-Transfer-Encoding:​ base64";​
 +    echo
 +    cat $FILENAME | openssl base64;
 +    echo '​.';​
 +    echo "​QUIT";​
 +    echo
 +} | nc $MAILSERVER 25
 +</​code>​
  
 ==== Использование диалоговых окон ==== ==== Использование диалоговых окон ====
средства_программирования_shell.1678768240.txt.gz · Last modified: 2023/03/14 07:30 by val