User Tools

Site Tools


informatica:linux:script

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
informatica:linux:script [2020/03/08 14:08] joseinformatica:linux:script [2024/04/19 07:00] (current) – [Servidor externo] jose
Line 194: Line 194:
  
 ====== Comprobar si un puerto está abierto o levantado: ====== ====== Comprobar si un puerto está abierto o levantado: ======
 +
 ===== En local: ===== ===== En local: =====
 <code> <code>
Line 210: Line 211:
 </code> </code>
 ==== Servidor externo ==== ==== Servidor externo ====
-Con estos comandos veces hay que poner el nombre del servicio, por ejemplo una VIP de oracle+Como alternativa a telnet se pueden usar estos comandos. A veces hay que poner el nombre del servicio, por ejemplo una VIP de oracle
   cat < /dev/null > /dev/tcp/<ip>/<puerto>   cat < /dev/null > /dev/tcp/<ip>/<puerto>
 +  
 Conexión correcta, no da error: Conexión correcta, no da error:
   # cat < /dev/null > /dev/tcp/oracle-scan/1521   # cat < /dev/null > /dev/tcp/oracle-scan/1521
Line 236: Line 238:
 Con netcat, la respuesta es parecida al telnet: Con netcat, la respuesta es parecida al telnet:
   nc oracle-scan 1521   nc oracle-scan 1521
 +Con curl:
 +  curl -v telnet://<ip>:<puerto>
 +
 +en un script con lista y colores:
 +<code>
 +#!/bin/bash
 +
 +ecco() {
 +    local text="$1"
 +    local color="$2"
 +    case "$color" in
 +        "rojo") echo -e "\e[31m$text\e[0m";;
 +        "verde") echo -e "\e[32m$text\e[0m";;
 +        "azul") echo -e "\e[34m$text\e[0m";;
 +        *) echo "$text";; # Color por defecto si no se proporciona uno válido
 +    esac
 +}
 +
 +azul="\e[34mOK\e[0m"
 +verde="\e[32mOK\e[0m"
 +rojo="\e[31mFAIL\e[0m"
 +
 +# Definir la lista de microservicios y puertos
 +microservicios=(
 +wzc-authentication 16443
 +features-matrix 14443
 +wzc-access-rules 35443
 +wzc-authorization 26443
 +wzc-card 24443
 +wzc-card-payment 28443
 +wzc-card-reward 31443
 +wzc-card-transaction 29443
 +wzc-client-profile 17443
 +wzc-client-rights 20443
 +wzc-device 21443
 +wzc-document 19443
 +wzc-message 18443
 +wzc-notification 23443
 +wzc-registration 25443
 +)
 +echo
 +for ((i=0; i<${#microservicios[@]}; i+=2)); do
 +    echo "**************************"
 +    line=("${microservicios[@]:i:2}")
 +    microservicio="${line[0]}"
 +    puerto="${line[1]}"
 +    echo -n "$microservicio $puerto "
 +    (>/dev/tcp/localhost/$puerto) 2>/dev/null && ecco OK azul || ecco FAIL rojo
 +done
 +
 +echo "**************************"
 +</code>
 ====== Demonio ====== ====== Demonio ======
 Se crea un fichero kkfichero que mientras este creado se ejecuta el script. \\ Se crea un fichero kkfichero que mientras este creado se ejecuta el script. \\
Line 354: Line 408:
   i=$(($i + 1))   i=$(($i + 1))
  
 +Con decimales: 
 +   awk 'BEGIN{printf "%.2f\n", (640/480)}' 
 +   1.33
 ====== Búcles ====== ====== Búcles ======
  
Line 386: Line 442:
 </code> </code>
  
 +
 +====== ECHO ======
 +Referencia: https://www.linuxtopia.org/online_books/advanced_bash_scripting_guide/string-manipulation.html
 +
 +Mostrar una parte de una cadena con echo:
 +  palabra=murcielago
 +
 +  echo ${palabra:2}
 +  rcielago
 +
 +  echo ${palabra:1:2}
 +  ur
 +
 +  echo ${palabra:(-2)}
 +  go
 +
 +  echo ${palabra:2:3}
 +  rci
  
 ====== SED ====== ====== SED ======
 +Muestra las coincidencias en un fichero
 +  sed  -n '/texto/p' totes_brutes
 +Borra una línea. La número 5
 +  sed '5d' fichero.txt
 +Borra líneas con coincidencias
 +  sed  -i '/texto/d' totes_brutes
 +
 +
 +
 +Elmina caracteres duplicados en un fichero
 +<code>
 +molon
 +remar
 +adios
 +
 +sed -f <(printf 's/%s//2g\n' {a..z}) <<< cat fichero.txt
 +
 +moln
 +rema
 +adios
 +</code>
 +
 +
 +
 +
 +
 +No es sed, pero para reemplazar dentro de una variable
 +  var="hola que tal"
 +  echo $var
 +    hola que tal
 +Solo cambia el primero:
 +  echo ${var/ /%20}
 +    hola%20que tal
 +Los cambia todos:
 +  echo ${var// /%20}
 +    hola%20que%20tal
 +
 ===== Mostrar un parámetro ===== ===== Mostrar un parámetro =====
   echo "param1=hola param2=que param3=tal" | sed -e 's/^.*param1=\([^ ]*\).*$/\1/'   echo "param1=hola param2=que param3=tal" | sed -e 's/^.*param1=\([^ ]*\).*$/\1/'
Line 404: Line 515:
 Mostrar la segunda línea Mostrar la segunda línea
   sed -n '2p' file.txt   sed -n '2p' file.txt
 +Mostrar a partir de la segunda línea  
 +  sed 2p file.txt
  
 Mostrar hasta la línea 20: Mostrar hasta la línea 20:
Line 518: Line 631:
  
 ====== AWK ====== ====== AWK ======
 +- Entre 2 delimitadores (-F):
 +  echo "holaquetalcomoestamos" | awk -F 'hola|estamos' {'print $2'}
 +
 +
 -Muestra la última columna -Muestra la última columna
   cat fichero.txt | awk {'print $NF'}   cat fichero.txt | awk {'print $NF'}
Line 571: Line 688:
      
 ====== GREP ====== ====== GREP ======
 +Cuenta número de letras de un fichero:
 +<code>
 +grep -Eo '[^[:blank:]]' <<<cat 5.txt | sort | uniq -c
 +   4073 a
 +    711 b
 +   1297 c
 +    612 d
 +   2027 e
 +    386 f
 +    565 g
 +    412 h
 +   1714 i
 +    340 j
 +</code>
 +
 +Cuenta número de palabras:
 +<code>
 + grep -Eo '[^[:blank:]]+' <<<'this  line this this line' | sort | uniq -c
 +      2 line
 +      3 this
 +</code>
 +
 +
 +
 +Texto entre dos cadenas:
 +  <span class="title">abaixar </span>
 +
 +  grep -oP '(?<=class="title">).*?(?=</span)' file.txt
 +
 +
 +
 Varias coincidencias Varias coincidencias
   # grep -E 'hola|adios' fichero.txt   # grep -E 'hola|adios' fichero.txt
Line 576: Line 724:
 Buscar por nombre de proceso, para evitar grep -v grep Buscar por nombre de proceso, para evitar grep -v grep
   # ps -fc java   # ps -fc java
 +
 +Posicion de un caracter en una cadena. La letra o en la cadena bolo. Empieza por 0
 +  echo "bolo" | grep -b -o o
 +1:o
 +3:o
  
  
Line 769: Line 922:
      
 ====== Date ====== ====== Date ======
- 
 http://www.cyberciti.biz/tips/linux-unix-get-yesterdays-tomorrows-date.html http://www.cyberciti.biz/tips/linux-unix-get-yesterdays-tomorrows-date.html
  
 +Formato fecha custom:  
 +  date +%Y%m%d_%H%M%S
 +  20190420_225307
 +  
 +  date +'%d/%m/%Y %H:%M:%S'
 +  10/10/2023 20:11:31
 +
 +  
   date --date='tomorrow'   date --date='tomorrow'
   date --date='1 day'   date --date='1 day'
Line 786: Line 946:
   date --date='10 year ago'   date --date='10 year ago'
  
-Formato fecha custom:   +Pasar una fecha a unixtime: 
-  date +%Y%m%d_%H%M%S +  date "+%s" -d "01/02/2021 13:11:04" 
-  20190420_225307+   
 +Coge formato americano MM/DD/YYY. Si probamos esto falla: 
 +  date "+%s" -d "31/01/2021 13:11:04" 
 +Convertir unixtime a formato texto: 
 +  date -d @1448488800000 
 +Thu Oct 13 06:00:00 PM CEST 47870 
 + 
 +Reordenamos las fechas: 
 +  echo 31/01/2021 14:12:30 | awk 'BEGIN{FS=OFS="/"}{print $2,$1,$3}'|xargs -i date -d"{}" +"%s"
  
 ====== History ====== ====== History ======
Line 939: Line 1107:
  
 ====== Buscar paquete debian ====== ====== Buscar paquete debian ======
 +Instalamos apt-file y hacemos apt-file update. Buscamos:
 +  apt-file search --regexp '/identify$'
 +Que lo que hace es esta búsqueda:
   # apt-file search /usr/bin/identify   # apt-file search /usr/bin/identify
   graphicsmagick-imagemagick-compat: /usr/bin/identify   graphicsmagick-imagemagick-compat: /usr/bin/identify
 O desde la web:\\ O desde la web:\\
 https://www.debian.org/distrib/packages#search_contents https://www.debian.org/distrib/packages#search_contents
 +
 +====== Fecha certificado ======
 +<code>
 +SITE_URL="dominio.com"
 +SITE_SSL_PORT="443"
 +
 +openssl s_client -connect ${SITE_URL}:${SITE_SSL_PORT} \
 +  -servername ${SITE_URL} 2> /dev/null |  openssl x509 -noout  -dates
 +</code>
  
informatica/linux/script.1583676484.txt.gz · Last modified: 2020/03/08 14:08 by jose