Tóg do chlár céim ar chéim ag úsáid Scripteáil Shell - Cuid 2

I cuid 1 ón tsraith seo is cuimhin linn faoi conas:

Agus i gceann roimhe seo, sáithíomar muid féin cleachtais níos fearr a leanúint agus sármhaith á chruthú Script Shell i Bash do Linux, agus go sonrach i dtéarmaí a Shebang agus BSM (Mód Bash Strict / Mód Stash Bash).

Na cleachtais is fearr chun Script Shell a chruthú in GNU / Linux - Cuid 1

Na cleachtais is fearr chun Script Shell a chruthú in GNU / Linux - Cuid 2

 

Scríbhneoireacht ShellSa phost seo feicfimid conas a Modúl Athróg Comhshaoil ​​do Script Shell i Bash do Linux, ag glacadh mar shampla ceann de mo chuid cláir (iarratais) fíricí in a Script Shell dtugtar Suiteáil Post Linux - Script Comóradh Céad Bliain 8.0, ach ar dtús achoimre bheag ar an cleachtais níos fearr ionas go gcoinníonn tú i gcuimhne iad:

  • Indente do chód,
  • Cuir spásanna deighilte idir codanna den chód,
  • Déan trácht an oiread agus is féidir leat ar an gcód,
  • Athróga a chruthú le hainmneacha tuairisciúla ar a bhfeidhmeanna,
  • Úsáid an chomhréir VARIABLE = $ (command) in ionad ordaithe
  • Úsáid modúil agus / nó athróga de: Bailíochtú Úsáideora Superuser agus Údaraithe le pasfhocail bhunaithe nó gan iad.
  • Úsáid modúil agus / nó athróga de: Bailíochtú an Chórais Oibriúcháin (Distro, Leagan, Ailtireacht, i measc nithe eile.),
  • Úsáid modúil (nósanna imeachta / rannáin) chun forghníomhú gníomhartha criticiúla nó baisc (gníomhaíochtaí / feidhmeanna) a dhearbhú,
  • Comhéadain a Thacaíonn le hÚsáideoirí a Sholáthar (Cairdiúil don Úsáideoir): De réir Críochfort (le Biachláir agus Dathanna ag úsáid Dialóg) agus / nó Deisce (le Windows ag úsáid Zenity agus Gxmessage),
  • Cuir modúil Fáilte agus Slán (teachtaireachtaí) san áireamh don úsáideoir, más gá,
  • Cuir modúl fíoraithe forghníomhaithe dúbailte san áireamh,
  • Réasúnú a dhéanamh ar mhéid na scripte le Feidhmeanna Seachtracha agus / nó Modúil,
  • Na glaonna ar Ateangairí eile a agairt ar bhealach soiléir agus soiléir,
  • Cuir aon mholadh loighciúil agus réasúnach eile i bhfeidhm a mheasann tú a bheith riachtanach.

Seo sampla de a Modúl Athróg Comhshaoil ​​do Script Shell i Bash do Linux. Ba chóir gurb é seo an modúl (roinn) ina bhfuil na hathróga áirithe nó dóchúla go léir a Script Shell riachtanais nó riachtanais chun é a fhorghníomhú. Cuirim an méid seo a leanas leis go pearsanta:


###############################################################################
# INICIO DEL MODULO DE VARIABLES DE ENTORNO DEL SCRIPT
###############################################################################

NOM_SCRIPT=lpi_sb8_inicio_2016.sh
# echo $NOM_SCRIPT
# Almacenar como una variable predeterminada el Nombre real del Script

USR1_VALID=sysadmin
# echo $USR1_VALID
# Almacenar como una variable predeterminada el Nombre de Usuario valido que podrá ejecutar el Script.
# Haga una variable por cada Usuario Autorizado.

PASSWD_VALID=lpi*sb8
# echo $PASSWD_VALID
# Almacenar como una variable predeterminada el Nombre de la contraseña valida que permitirá ejecutar el Script.
# Haga una variable por cada contraseña de cada Usuario Autorizado.

S_O_VALID=kali
# echo $S_O_VALID
# Almacenar como una variable predeterminada el tipo de Sistema operativo valido para donde debe ser ejecutado el Script.

HOST_VALID=hostmovil-sysadmin
# echo $HOST_VALID
# Almacenar como una variable predeterminada el nombre del host valido donde debe ser ejecutado el Script.

IP_VALID=192.168.1.107
# echo $IP_VALID
# Almacenar como una variable predeterminada el nombre del host valido donde debe ser ejecutado el Script.

MAC_VALID=44:8a:5b:f0:3d:f3
# echo $MAC_VALID
# Almacenar como una variable predeterminada el nombre del host valido donde debe ser ejecutado el Script.

FILE_LOCK=lpi_sb_file_lock.txt
# echo $FILE_LOCK
# Almacenar el nombre de archivo predeterminada por el sistema para evitar doble ejecuciones ó detectar ejecuciones fallidas.

IDSUPERUSER=$(id -u | awk '{print $1}')
# IDSUPERUSER=$(echo $UID)
# IDSUPERUSER=$(getent passwd $USER | cut -d: -f3)
# echo $IDSUPERUSER
# Almacenar IUD del Superusuario root

USER_NAME_1=$(cat /etc/passwd | grep 1000 | cut -d: -f1 | awk '{print $1}')
HOME_USER_NAME_1=/home/$USER_NAME_1
# echo $USER_NAME_1 $HOME_USER_NAME_1
# Almacenar el nombre del usuario 1000 y su /home. Probable unico y primer Usuario del Sistema.

USER_NAME_2=$(cat /etc/passwd | grep 1001 | cut -d: -f1 | sed -n '2p' | awk '{print $1}')
HOME_USER_NAME_2=/home/$USER_NAME_2
# echo $USER_NAME_2 $HOME_USER_NAME_2
# Almacenar el nombre del usuario 1001 y su /home. Probable segundo Usuario del Sistema.

ID_USERNAME_SESSION=$(for i in $(who | sed 1q | cut -c 1-8); do grep $i /etc/passwd | awk '{print "\t" $1}' | tr -d '[A-Za-z]' | sed 's/::x*//' | cut -c 1-5 | awk '{print $1}' ; done | sed 1q)
# echo $ID_USERNAME_SESSION
# Almacenar el ID del Nombre del primer usuario (alfabeticamente) detectado conectado (con sesión abierta) en el sistema.

USERNAME_ID_SESSION=$(for i in $(who | sed 1q | cut -c 1-8); do grep $i /etc/passwd | awk '{print "\t" $1}' | tr -d '[A-Za-z]' | sed 's/::x*//' | cut -c 1-5 | awk '{print $2}' ; done ; echo $i)
# echo $USERNAME_ID_SESSION
# Almacenar el Nombre del primer usuario (alfabeticamente) detectado conectado (con sesión abierta) en el sistema.

# ID_FIRST_USERNAME=$(for i in 1000 1001 1002 1003 1004; do grep $i /etc/passwd | awk '{print "\t" $1}' | tr -d '[A-Za-z]' | sed 's/::x*//' | cut -c 1-5 | awk '{print $1}' ; done | sed -n '1p')
# echo $ID_FIRST_USERNAME
# Almacenar el ID del Nombre del primer usuario creado en el sistema entre los ID del 1000 al 1005.
# Nota: Solo funciona con la opción -o desactivada del MODO BASH ESTRICTO ó SEGURO (Bash Strict Mode / BSM)

# ID_FIRST_USERNAME=$(for i in $(seq 1000 1999); do grep $i /etc/passwd | awk '{print "\t" $1}' | tr -d '[A-Za-z]' | sed 's/::x*//' | cut -c 1-5 | awk '{print $1}' ; done | sed -n '1p')
# echo $ID_FIRST_USERNAME
# Almacenar el ID del Nombre del primer usuario creado en el sistema.
# Nota: Solo funciona con la opción -o desactivada del MODO BASH ESTRICTO ó SEGURO (Bash Strict Mode / BSM)

UBICACION=$(echo $PWD)
# UBICACION=$(pwd)
# echo $UBICACION
# Almacenar ruta de ejecución del Script LPI-SB

FECHA_SISTEMA_AN=$(date +"%d %b %y")
# echo $FECHA_SISTEMA_AN
# Almacenar la fecha  Alfanumerica actual del Equipo

FECHA_SISTEMA_N=$(date +"%d %m %y")
# echo $FECHA_SISTEMA_N
# Almacenar la fecha Numerica actual del Equipo

DIA_ACTUAL=$(date +"%d")
# echo $DIA_ACTUAL
# Almacenar el día actual del Equipo

MES_ACTUAL_A=$(date +"%b")
# echo $MES_ACTUAL_A
# Almacenar el mes alfabetico actual del Equipo

MES_ACTUAL_N=$(date +"%m")
# echo $MES_ACTUAL_N
# Almacenarel mes numerico actual del Equipo

ANO_ACTUAL_2C=$(date +"%y")
# echo $ANO_ACTUAL_2C
# Almacenar el año (con 2 cifras) actual del Equipo

ANO_ACTUAL_4C=$(date +"%Y")
# echo $ANO_ACTUAL_4C
# Almacenar el año (con 4 cifras) actual del Equipo

HORA_SISTEMA=$(date +"%H:%M")
# echo $HORA_SISTEMA
# Almacenar la Hora actual del Equipo

HORA_ACTUAL=$(date +"%H")
# echo $HORA_ACTUAL
# Almacenar la Hora actual del Equipo

MINUTOS_ACTUAL=$(date +"%M")
# echo $MINUTOS_ACTUAL
# Almacenar la Hora actual del Equipo

TIPO_S_O_L=$(uname -o)
# echo $TIPO_S_O_L
# Almacena el nombre largo del tipo de Sistema Operativo encontrado.

TIPO_S_O_C=$(uname -s)
# echo $TIPO_S_O_C
# Almacena el nombre corto del tipo de Sistema Operativo encontrado.

NOM_DISTRO_L=$(cat /etc/os-release | grep NAME | grep -v "VERSION" | sed -n '2p' | cut -f2 -d\")
# NOM_DISTRO_L=$(lsb_release -d | sed 's/Description://')
# echo $NOM_DISTRO_L
# Almacena el nombre largo de la Distro detectada.

NOM_DISTRO_C=$(cat /etc/os-release | grep NAME | grep -v "VERSION" | sed -n '2p' | cut -f2 -d\" | awk '{print $1}')
# NOM_DISTRO_C=$(lsb_release -d | sed 's/Description://' | awk '{print $1}')
# echo $NOM_DISTRO_C
# Almacena el nombre corto de la Distro detectada.

ID_DISTRO=$(cat /etc/os-release | grep ID | grep -v "VERSION_ID" | grep -v "ID_LIKE" | sed 's/ID=//' | sed 's/"//g')
# ID_DISTRO=$(lsb_release -i | awk '{print $3}')
# echo $ID_DISTRO
# Almacena el ID de la Distro detectada.

VER_DISTRO=$(cat /etc/os-release | grep VERSION= | sed -n '1p' | sed 's/VERSION=//' | sed 's/"//g')
# VER_DISTRO=$(lsb_release -c | sed 's/Codename://')
# echo $VER_DISTRO
# Almacena el nombre de la versión de la Distro detectada.

ID_VER_DISTRO=$(cat /etc/os-release | grep VERSION_ID= | sed -n '1p' | sed 's/VERSION_ID=//' | sed 's/"//g')
# ID_VER_DISTRO=$(lsb_release -r | sed 's/Release://')
# echo $ID_VER_DISTRO
# Almacena el ID de la versión de la Distro detectada.

ARQ_DISTRO_COD=$(uname -m)
# echo $ARQ_DISTRO_COD
# Almacenar el Tipo de Arquitectura de la Distro detectada en forma codificada.

ARQ_DISTRO_COD=$(uname -m) ; if [[ "$ARQ_DISTRO_COD" = "x86" ]]; then ARQ_DISTRO_HUM=32; else ARQ_DISTRO_HUM=64; fi
# echo $ARQ_DISTRO_HUM
# Convertir el Tipo de Arquitectura de la Distro detectada en forma codificada a forma humana.

VER_KERNEL=$(uname -r)
# echo $VER_KERNEL
# Almacenar el Nombre del Arquitectura de la Distro detectada.

NOM_HOST=$(cat /etc/hostname)
# echo $NOM_HOST
# Almacenar el Nombre del Host donde se ejecuta el Script.

IP_ETH0=$(ifconfig eth0 | grep inet | grep -v inet6 | cut -d ":" -f 2 | cut -d " " -f 1)
MAC_ETH0=$(ifconfig eth0 | sed -n '1p' | awk '{print $5}')
# IP_INTERNA=$(hostname -I)
# echo $IP_ETH0 $MAC_ETH0
# Almacenar la IP / MAC del Host donde se ejecuta el Script.

echo "Variables de entorno cargadas sin errores, en 5 segundos la aplicación continuará ejecutandose"
sleep 5

###############################################################################
# FINAL DEL MODULO DE VARIABLES DE ENTORNO DEL SCRIPT
###############################################################################

===============

Tabhair faoi deara: Ag brath ar do riachtanais nó do chur chun feidhme is féidir leat an t-ordú ordaithe a chur leis onnmhairiú my_variable faoi ​​bhun gach ceann de na hathróga roimhe seo a cruthaíodh nó a chruthaíonn agus a easpórtálann d’athróga féin a cruthaíodh go díreach leis an ordú ordaithe onnmhairiú my_variable = my_parameters

Níos déanaí, i bpoist amach anseo leanfaimid orainn ag feiceáil sampla de modúil (ailt) a chomhlíonann feidhmeanna mar:

  • MODÚL COSAINT FEIDHMIÚCHÁIN DUBLE nó FEIDHM FAILED
  • MODÚL ROGHNÚCHÁIN
  • MODÚL ÚDARÚ ÚSÁIDE LE PASSWORD
  • MODÚL MAIDIR LE hAGHAIDH ÁBHAR AN CHÓRAIS OIBRÍOCHTA
  • MODÚL COMHDHLÚTHÚ TEANGA
  • MODÚL COMHDHLÚTHÚ PROXY DON COMHSHAOL FEIDHMIÚCHÁIN

I measc go leor eile!

Is féidir leo dul féin-mhúinte faoi na horduithe: gksu, dialóg, gxmessage, zenity, espeak, play, i measc go leor eile chun comhéadain ghrafacha a chruthú de réir Críochfort nó do Dheasc an Úsáideora, le foláirimh sonic nó ilmheán, agus eolas a chur chun cinn a úsáidfidh siad níos déanaí.

Cuimhnigh go bhfuil siad seo agus aon mholtaí eile ar chuid acu modúl, feidhm, athróg, ordú nó gníomh go ginearálta is féidir é a dhéanamh go leor bealaí, agus ní rud níos mó ná a bealach simplí, de na go leor bealaí féideartha agus is dócha a dúirt is féidir nó a d’fhéadfaí gníomh a dhéanamh!

Díreach le críochnú fágaim tú, a Craoladh scáileáin déanta agam, chun a thaispeáint duit cad a bheifeá in ann, tar éis duit é seo a chríochnú Cúrsa ar líne Scripting Shell i DesdeLinux:

Scáileán Tástála LPI-SB8

(LINUX POST INSTALL - SCRIPT BICENTENNIAL 8.0.0) - Cuid 2

 


Cloíonn ábhar an ailt lenár bprionsabail eitic eagarthóireachta. Chun earráid a thuairisciú cliceáil anseo.

2 trácht, fág mise

Fág do thrácht

Ní thabharfar do sheoladh r-phoist a fhoilsiú.

*

*

  1. Freagrach as na sonraí: Miguel Ángel Gatón
  2. Cuspóir na sonraí: SPAM a rialú, bainistíocht trácht.
  3. Legitimation: Do thoiliú
  4. Na sonraí a chur in iúl: Ní chuirfear na sonraí in iúl do thríú páirtithe ach amháin trí oibleagáid dhlíthiúil.
  5. Stóráil sonraí: Bunachar sonraí arna óstáil ag Occentus Networks (EU)
  6. Cearta: Tráth ar bith is féidir leat do chuid faisnéise a theorannú, a aisghabháil agus a scriosadh.

  1.   gan ainm a dúirt

    Dáta do dhaoine:
    macalla -e «\ e [1; 32mDate:» $ (dáta «+% d-% m-% Y») «\ e [1; 32m Am:» $ (dáta «+% T»)

    Fíor "uname -s":
    cat / proc / sys / eithne / ostype

    Ainm Distro:
    cat / etc / * scaoileadh | gearrtha -f2 -d »| ceann -1

    Óstach:
    cat / proc / sys / eithne / óstainm

    Ailtireacht OS:
    [[-x / sbin / init]] && comhad / sbin / init | awk '{print $ 7}' | tr -d ',' || [[-x / lib / systemd / systemd]] && comhad / lib / systemd / systemd | awk '{print $ 7}' | tr -d ',' 2> / dev / null

    Leagan Eithne:
    cat / proc / sys / eithne / osrelease

  2.   Jose Albert a dúirt

    Thaitin sé go mór liom do chéad dáta “dáta do dhaoine” ós rud é go mbeadh an t-aschur mar shampla:

    Dáta: 11-02-2016 Am: 16:04:10

    Cé acu go héifeachtach i bhfuinneog dialóige, zenity nó gxmessage atá in-díleá ó thaobh amhairc de!

    Le do dhara moladh ba mhaith liom é a chur mar seo:

    más fíor "uname -s" && cat / proc / sys / eithne / ostype; ansin macalla "Córas oibriúcháin bailíochtaithe"; fi | tart 1d

    Agus ar deireadh, míle buíochas as do chuid ranníocaíochtaí saibhrithe mar i gcónaí!