如何使用Shell脚本实现SysAdmin终端

El Shell脚本,是指 执行复杂的订单GNU / Linux终端(控制台), 自动化我们日常工作和重要活动非常有用 GNU / Linux操作系统, 这使我们可以优化我们的 资源和时间.

Selección_007

因此,它在终端上的使用使我们能够手动或通过脚本自动执行复杂的命令命令,或者作为自动加载文件中的编程例程或操作系统中的计划任务来执行。 GNU / Linux的。 而对于 中级用户,高级或SysAdmin el 时间表(自动) 主机(PC /服务器)上的任务,警报和/或通知以保存 工时/人工 无论是手动执行还是亲自执行,对于高级专业人员来说,这都是基本和必不可少的工作。

接下来,我们将展示如何 数据(值/参数) 先前由命令存储在变量中 打击壳 或兼容,它可以以实用且简单的方式显示在您的GNU / linux操作系统的终端中。 除了调整终端提示。

第一步:编辑用户的.bashrc

使用您选择的编辑器(vi,nano等)编辑 .bashrc文件 必须位于同一用户之家中的用户数量,例如: “ /主页/ my_user”。

插入以下各行的内容以及在执行用户终端时您认为方便显示给用户的所有其他内容:

sleep 3

clear

########################### PARÁMETROS DE MONITOREO ###########################

NOMBRE_SISTEMA=$(cat /etc/os-release | grep NAME | grep -v "VERSION" | sed -n '2p' | cut -f2 -d\")
VERSION_SISTEMA=$(cat /etc/os-release | grep VERSION= | sed -n '1p' | sed 's/VERSION=//' | sed 's/"//g')

FABRICANTE_CPU=$(grep "vendor_id" /proc/cpuinfo | sed q | awk '{print $3}')
MODELO_CPU=$(grep "model name" /proc/cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $0}')
NUM_CPU=$(grep "processor" /proc/cpuinfo | sort -r | sed q | awk '{print $3}' | echo `expr $NUM_CPU + 1`)
NUCLEO_CPU=$(grep "cpu cores" /proc/cpuinfo | sed q | awk '{print $4}')
CACHE_CPU=$(grep "cache size" /proc/cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $0}')

clear

printf %80s |tr " " "="
echo ""
echo "      ADVERTENCIA - USTED HA INICIADO SESIÓN EN EL EQUIPO SERVIDOR DE LA      "
echo "                             EMPRESA INSTITUCIÓN XYZ                                "
echo "       RECUERDE TENER EXTREMO CUIDADO CON CUALQUIER CAMBIO A REALIZAR        "
printf %80s |tr " " "="
echo ""
printf %80s |tr " " "="
echo ""
echo "                         ESTE EQUIPO TIENE INSTALADO                         "
echo "                                                                             "
echo "TIPO DE S.O.: <"`uname -o`">                                                 "
echo "NOMBRE / VERSIÓN DEL S.O.: &lt;"$NOMBRE_SISTEMA"&gt; / &lt;"$VERSION_SISTEMA"&gt;        "
echo "KERNEL / ARQUITECTURA: <"`uname -r`"> / <"`uname -m`">                       "
echo "INFO DEL CPU: ("$FABRICANTE_CPU") / ("$MODELO_CPU") / ("$NUM_CPU") / ("$NUCLEO_CPU") / ("$CACHE_CPU")"
printf %80s |tr " " "="
echo ""
echo ""

PS1="\[\e[33;1m\]┌─( \[\e[34;1m\]\u@\h\[\e[37;1m\] ) * * * * \d - \t * * * * { \[\e[31;1m\]\w\[\e[33;1m\] }\n└──┤ \[\e[32m\]# "

`

第二步:编辑根.bashrc

再次使用已经使用的编辑器编辑 .bashrc文件超级用户根 必须位于其路径/根目录中。

插入以下各行的内容以及在执行用户终端时您认为方便显示给用户的所有其他内容:

########################### PARÁMETROS DE MONITOREO ###########################

alias cc='clear'

PROXY=$(route -n | sed -n '3p' | awk '{print $2}')

IP_SERVIDOR_DNS=$(cat /etc/resolv.conf | sed '1 d' | grep nameserver | sed -n '1p' | awk '{print $2}')
DOMINIO=$(cat /etc/resolv.conf | sed '1 d' | grep search | sed -n '1p' | awk '{print $2}')

DATA_USUARIO1=$(du -sh /home/ | sort -r | awk '{print $1}')
DATA_ROOT=$(du -sh /root | awk '{print $1}')
DATA_VAR=$(du -sh /var | awk '{print $1}')

MEM_TOTAL=$(free -h | sed '1 d' | grep Mem: | awk '{print $2}')
MEM_USADA=$(free -h | sed '1 d' | grep Mem: | awk '{print $3}')
MEM_LIBRE=$(free -h | sed '1 d' | grep Mem: | awk '{print $4}')
MEM_COMPARTIDA=$(free -h | sed '1 d' | grep Mem: | awk '{print $5}')
MEM_ALMACENADA=$(free -h | sed '1 d' | grep Mem: | awk '{print $6}')
MEM_CACHEADA=$(free -h | sed '1 d' | grep Mem: | awk '{print $7}')

PART1_TOTAL=$(df -h | sed '1 d' | grep disk | awk '{print $2}')
PART1_USADO=$(df -h | sed '1 d' | grep disk | awk '{print $3}')
PART1_DISPONIBLE=$(df -h | sed '1 d' | grep disk | awk '{print $4}')
PART1_PORCENTAJE=$(df -h | sed '1 d' | grep disk | awk '{print $5}')
PART1_PUNTOMONTAJE=$(df -h | sed '1 d' | grep disk | awk '{print $6}')

CARGA_1MIN=$(top -n 1 -b | grep "load average:" | awk '{print $12}' | sed 's/,//2')

CARGA_5MIN=$(top -n 1 -b | grep "load average:" | awk '{print $13}' | sed 's/,//2')
CARGA_15MIN=$(top -n 1 -b | grep "load average:" | awk '{print $14}' | sed 's/,//2')

USER_ONLINE=$(top -n 1 -b | grep "load average:" | awk '{print $8}')
PROC_ZOMBIE=$(top -n 1 -b | grep "zombie" | awk '{print $10}')

TIEMPO_ENCENDIDO=$(uptime | awk '{print $3,$4}' | cut -f1 -d,)

FABRICANTE_CPU=$(grep "vendor_id" /proc/cpuinfo | sed q | awk '{print $3}')
MODELO_CPU=$(grep "model name" /proc/cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $0}')
NUM_CPU=$(grep "processor" /proc/cpuinfo | sort -r | sed q | awk '{print $3}' | echo `expr $NUM_CPU + 1`)
NUCLEO_CPU=$(grep "cpu cores" /proc/cpuinfo | sed q | awk '{print $4}')
CACHE_CPU=$(grep "cache size" /proc/cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $0}')

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}')

###############################################################################

if ping -c 1 8.8.8.8 &amp;&gt; /dev/null; then CONEXION_INTERNET=Habilitado; else CONEXION_INTERNET=Deshabilitado; fi

set -o vi

printf %80s |tr " " "="
echo ""
echo "      ADVERTENCIA - USTED HA INICIADO SESIÓN EN EL EQUIPO SERVIDOR DE LA      "
echo "                             EMPRESA INSTITUCIÓN XYZ                                "
echo "       RECUERDE TENER EXTREMO CUIDADO CON CUALQUIER CAMBIO A REALIZAR        "
printf %80s |tr " " "="
echo ""
printf %80s |tr " " "="
echo ""
echo "                    PARÁMETROS ACTUALES DE FUNCIONAMIENTO                    "
echo "                                                                             "
echo "MEMORIA TOTAL: ("$MEM_TOTAL") - MEMORIA USADA: ("$MEM_USADA") - MEMORIA LIBRE: ("$MEM_LIBRE")"
echo "DISCO PRINCIPAL: ("$PART1_TOTAL") - ESPACIO USADO: ("$PART1_USADO") - ESPACIO LIBRE: ("$PART1_DISPONIBLE") - %: ("$PART1_PORCENTAJE") - PARTICION: ("$PART1_PUNTOMONTAJE")"
echo "CARGA PROMEDIO DEL SISTEMA: 1 MIN ("$CARGA_1MIN") -  5 MIN ("$CARGA_5MIN") - 15 MIN ("$CARGA_15MIN")"
echo "USUARIOS CONECTADOS: ("$USER_ONLINE") -  PROCESOS ZOMBIES: ("$PROC_ZOMBIE")"
echo "TIEMPO ARRANQUE/ENCENDIDO: ("$TIEMPO_ENCENDIDO")                             "
echo "ESPACIO USADO: /home = ("$DATA_USUARIO1") /root = ("$DATA_ROOT") /var = ("$DATA_VAR")"
printf %80s |tr " " "="
echo ""
echo ""
PS1="\[\e[33;1m\]┌─( \[\e[34;1m\]\u@\h\[\e[37;1m\] ) * * * * \d - \t * * * * { \[\e[31;1m\]\w\[\e[33;1m\] }\n└──┤ \[\e[32m\]$ "

第三步:编辑根.bashrc

注销并显示终端。 重新启动并体验更改。 在以下图像中,它看起来应该类似于以下所示:

步骤1:终端启动

步骤2:编辑用户.bashrc

步骤3:将内容插入用户.bashrc

步骤4:根登录

步骤5:根登录

步骤6:编辑根.bashrc文件

步骤7:编辑根.bashrc文件

步骤8:编辑根.bashrc文件

步骤9:新客户终端的演示示例

步骤10:新客户终端的演示示例

步骤11:新客户终端的演示示例

第四步(可选):调整别名

请记住,在 的.bashrc 它还可以为您节省大量的写作时间。 取消注释.bashrc中默认出现的注释,例如:

alias ls='ls $LS_OPTIONS'
<strong>alias ll='ls $LS_OPTIONS -l'
<strong>alias l='ls $LS_OPTIONS -lA'

alias rm='rm -i'

并添加您认为必要的命令,因为它们是常用的命令,例如:

alias cc='clear'

重要的是要以自学的方式了解更多 变量,别名,.bashrc 和语言 打击壳 以获得更高级别的终端。 通过ssh启动远程会话时,可以达到相同的目的,我们稍后会在其他出版物中看到。

我希望这些小孩子 “提示” 使他们易于执行基本但有用的优化,这些优化通常只保留给 技术,计算,自由软件和GNU / Linux.

提醒: 如果任何命令行执行失败或显示正确的值,请确保手动测试命令提示符的每个部分以尝试调整某些变量的值或语法。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   伊佩凯

    别名是最好的。 对于默认情况下包含在bashrc中的某些文件,我并不认为不好:la(ls -a)和ll(ls -l)。 最后,我添加参数-h。

    其他实用别名:
    s ='sudo'
    cd1 ='cd ..'
    cd2 ='cd ../ ..'
    rmd ='rm -r'(我用它来删除包含文件的目录)
    shutdown ='sudo shutdown -h现在'
    del ='trash-put'(将文件移至垃圾桶,trash-cli package命令)

  2.  

    自从我去年在Reddit上看到这个别名以来,它一直是我的最爱:
    别名fuck ='sudo $(history -p !!)'

  3.   马丁

    文章及其对控制台的外观非常好。 一些贡献:
    -在Ubuntu中,别名可以放置在我不知道的其他发行版中的单独文件(.bash_aliases)中,但是可以通过在.bashrc中添加以下行来实现:
    如果[-f〜/ .bash_aliases]; 然后
    。 〜/ .bash_aliases
    fi
    这样可以使别名更加有序,对于像我这样健忘的人,您可以添加此别名,以显示列出别名的文件:
    别名lsalias ='more〜/..bash_aliases'
    -我还有一个不常用的命令文本文件(我通常不记得了),名为command_utiles.txt,并准备好以下别名:alias cutil ='more〜/ command_utiles.txt'
    -我使用的更多别名:
    别名cdu ='cd〜'
    alias lof ='ls -lSr | more'#按大小显示文件详细信息
    别名lod ='du -sk * | sort -rn'#显示按大小排序的目录
    alias deo ='du -sh'#估计指定目录所占用的空间
    别名psa ='ps -eafw | 更多'#显示更多内容的所有流程
    别名psg ='ps -eafw | grep'#显示所指示的过程
    -最后,我做过的另一种选择:
    SYSTEM_NAME = $(cat / etc / os-release | grep NAME | grep -v“ VERSION” | sed -n'1p'| cut -f2 -d \»)
    SYSTEM_VERSION = $(cat / etc / os-release | grep VERSION = | sed -n'1p'| sed's / VERSION = //'| sed's /»// g')
    MANUFACTURER_CPU = $(grep“ vendor_id” / proc / cpuinfo | sed q | awk'{print $ 3}')
    CPU_MODEL = $(grep“型号名称” / proc / cpuinfo | sed q | cut -d“:”-f 2 | awk'{print $ 0}')
    NUM_CPU = $(grep“处理器” / proc / cpuinfo | sort -r | sed q | awk'{print $ 3}'| echo expr $NUM_CPU + 1)
    NUCLEO_CPU = $(grep“ cpu cores” / proc / cpuinfo | sed q | awk'{print $ 4}')
    CACHE_CPU = $(grep“缓存大小” / proc / cpuinfo | sed q | cut -d“:” -f 2 | awk'{print $ 0}')
    USER_DATA = $(du -sh〜| sort -r | awk'{print $ 1}')

    清除
    printf%130s | tr»»«=»
    扔出去 ””
    回应«DATE:«date +%c --date='+1 year'
    回声«内核:«uname -o»<«uname -r«> <«uname -m«>»
    echo“ DISTRIBUTION:” $ SYSTEM_NAME“” $ SYSTEM_VERSION“”
    echo“ CPU:” $ MODEL_CPU“,” $ NUCLEO_CPU“ Nuclei,” $ CACHE_CPU“ Cache”
    回声«USED SPACE:«$ DATA_USUARIO
    printf%130s | tr»»«=»
    扔出去 ””
    ###########################
    回显“有用的命令:”
    回声»-在DEB软件包系统中安装RPM:Alien -c -i package.rpm»
    echo»-递归更改用户和文件组:chown -hR用户:组[文件或目录]»
    echo»-复制保留权限:cp -ax源目标»
    回声»-显示活动存储库:grep -i ppa.launchpad.net /etc/apt/sources.list.d/*.list»
    回声»-添加存储库:apt-add-repository ppa:存储库»
    回声»-查看更多Cutil命令»
    回声»-显示别名lsalias»
    printf%130s | tr»»«=»
    扔出去 ””
    扔出去 ””
    #PS1 =»[\ e [33; 1m]┌─([\ e [34; 1m] \ u @ \ h [\ e [37; 1m])* * * * \ d-\ t * * * * {[\ e [31; 1m] \ w [\ e [33; 1m]} \n└──┤[\ e [32m]#»
    PS1=»[\e[33;1m]┌─([\e[34;1m]\u@\h[\e[37;1m])>{ [\e[31;1m]\w[\e[33;1m] }\n└──┤ [\e[32m]# «

    1.    亚巴顿

      为什么最好不写自己的文章?

  4.   亚巴顿

    这些是我喜欢的教程!

  5.   Ing。Jose Albert

    好吧,我很高兴您喜欢它并为您服务!

    明天我希望发表另一篇文章! 连续下坡。

  6.   用户架构

    问候和无限感激分享这些信息。
    我对GNU / Linux的管理了解不多(我只是一个没有经验的经验丰富的经验丰富的好奇用户),但是我记得在一些网站上阅读了有关特权升级的安全性问题。 .bashrc脚本中的一些命令和管道,在我看来,它们可以促进黑客或黑客的工作。
    谨此致谢。

  7.   Ing。Jose Albert

    使用Shell脚本优化终端非常简单,看看做一个好的Shell脚本可以走多远。

    LPI-SB8测试ScreenCast(LINUX POST安装-脚本BICENTENARIO 8.0.0)
    (lpi_sb8_adecuación-audiovisual_2016.sh/ 43Kb)

    参见截屏视频: https://www.youtube.com/watch?v=cWpVQcbgCyY

  8.   LEA

    很棒的教程! 您是否推荐任何有关Linux的书,以更好地学习Shell脚本,配置和服务器安全性? 谢谢