כיצד להשיג מסוף SysAdmin באמצעות יישום Shell Scripting

El מעטפת Scripting, זה מתייחס ל ביצוע פקודות מורכבות על מסוף GNU / Linux (מסוף), זה מאוד שימושי לאוטומציה של פעילויות שגרתיות וחשובות במסגרת שלנו מערכת הפעלה GNU / Linux, מה שמאפשר לנו לייעל את שלנו משאבים וזמן.

בחירה_007

לכן השימוש בו מהטרמינל מאפשר לנו לבצע פקודות פקודה מורכבות באופן ידני או אוטומטי באמצעות סקריפטים או כשיגורים מתוכנתים בתוך קבצי טעינה אוטומטיים או משימות מתוזמנות בתוך מערכת ההפעלה. גנו / לינוקס. ובשביל א משתמש בינוני, מתקדם או SysAdmin el תזמון (אוטומציה) משימות, התראות ו / או הודעות על מארח (PC / Server) לשמירה שעות / עבודה של ביצוע ידני או באופן אישי, זה משהו בסיסי וחיוני לביצועים הטובים של עבודתך כמקצוען ברמה גבוהה.

לאחר מכן, נראה כיצד א נתונים (ערך / פרמטר) נשמר בעבר במשתנה על ידי פקודה מעטפת בש או תואם, זה יכול להיות מוצג במסוף של מערכת ההפעלה GNU / linux שלך, בצורה מעשית ופשוטה. בנוסף לכוונון הפקודה טרמינל.

שלב ראשון: ערוך את ה- .bashrc של המשתמש שלך

עם העורך שבחרת (vi, nano וכו ') ערוך את קובץ .bashrc של המשתמש שלך שחייב להיות ממוקם בתוך הבית של אותו, כלומר, למשל: "/ Home / 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: ערוך את קובץ ה- root .bashrc

שלב 7: ערוך את קובץ ה- root .bashrc

שלב 8: ערוך את קובץ ה- root .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 והשפה מעטפת bash לרמה מתקדמת יותר של הטרמינל. ניתן להשיג את אותו הדבר כאשר מתחילים הפעלות מרחוק באמצעות ssh, אותם נוכל לראות מאוחר יותר בפרסומים עתידיים אחרים.

אני מקווה שהקטנים האלה "טיפים" להקל עליהם לבצע אופטימיזציות בסיסיות אך שימושיות, אשר בדרך כלל שמורות רק למומחים בתחום טכנולוגיה, מחשוב, תוכנה חופשית ו- GNU / Linux.

תִזכּוֹרֶת: אם שורת פקודה כלשהי אינה מצליחה לבצע או להציג את הערך הנכון, הקפד לבדוק ידנית כל קטע בשורת הפקודה כדי לנסות ולהתאים את הערכים או התחביר של משתנים מסוימים.


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  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' (אני משתמש בה כדי להסיר ספריות עם קבצים)
    כיבוי = 'כיבוי סודו -ה עכשיו'
    del = 'trash-put' (העבר קבצים לאשפה, פקודת החבילה trash-cli)

  2.   טוֹן דיג'ו

    מאז שראיתי את הכינוי הזה בשנה שעברה ב- Reddit זה היה המועדף עלי:
    alias fuck = 'sudo $ (history -p !!)'

  3.   סנונית דיג'ו

    המאמר והמראה שהוא מעניק למסוף הם טובים מאוד. כמה תרומות:
    - באובונטו ניתן למקם את הכינויים בקובץ נפרד (.bash_aliases) בשאר ההפצות שאני לא מכיר אבל זה עושה זאת על ידי הוספת השורות הבאות ב- .bashrc:
    אם [-f ~ / .bash_aliases]; לאחר מכן
    . ~ / .bash_aliases
    fi
    זה מאפשר להזמין את הכינויים יותר ולשכחים כמוני תוכלו להוסיף את הכינוי הזה שמציג את הקובץ שמפרט את הכינויים:
    alias lsalias = 'עוד ~ / .bash_aliases'
    - יש לי גם קובץ טקסט פקודה שנמצא בשימוש לעתים רחוקות (שאני בדרך כלל לא זוכר) שנקרא command_utiles.txt וזה מוכן עם הכינוי הבא: alias cutil = 'more ~ ​​/ command_utiles.txt'
    - כינויים נוספים בהם אני משתמש:
    alias cdu = 'cd ~'
    alias lof = 'ls -lSr | more' # מציג קבצים בסדר גודל לפי גודל
    alias lod = 'du -sk * | sort -rn '# הצגת ספריות ממוינות לפי גודל
    alias deo = 'du -sh' # העריך את השטח שתופס הכוונת
    alias psa = 'ps -eafw | עוד '# הצג את כל התהליכים עם עוד
    alias 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 '{הדפס $ 3}' | הד expr $NUM_CPU + 1)
    NUCLEO_CPU = $ (grep "ליבות מעבד" / proc / cpuinfo | sed q | awk '{print $ 4}')
    CACHE_CPU = $ (grep "cache size" / proc / cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $ 0}')
    USER_DATA = $ (du -sh ~ | מיין -r | awk '{הדפס $ 1}')

    ברור
    printf% 130s | tr »» «=»
    זרק ""
    הד «תאריך:«date +%c --date='+1 year'
    הד «KERNEL:«uname -o»<«uname -r«> <«uname -m«>»
    הד "DISTRIBUTION:" $ SYSTEM_NAME "" $ SYSTEM_VERSION ""
    הד "מעבד:" $ MODEL_CPU "," $ NUCLEO_CPU "גרעינים," $ CACHE_CPU "מטמון"
    הד «מרחב משומש:« $ DATA_USUARIO
    printf% 130s | tr »» «=»
    זרק ""
    ############################
    הד "פקודות שימושיות:"
    הד »- התקן סל"ד במערכת חבילות DEB: alien -c -i package.rpm»
    הד »- שנה משתמש וקבוצת קבצים באופן רקורסיבי: chown-user user: group [file or dir]»
    הד »- העתקת שמירת ההרשאות: יעד מקור 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.   אינג 'חוסה אלברט דיג'ו

    ובכן, אני שמח מאוד שאהבתם והגשתם אותו!

    מחר אני מקווה לפרסם מאמר נוסף! מדרונות.

  6.   משתמש-קשת דיג'ו

    ברכות ותודה אינסופית על שיתוף המידע הזה.
    אין לי ידע רב על ניהול GNU / Linux (אני פשוט משתמש אמפירי וסקרן ללא הכשרה אקדמית), אך אני זוכר שקראתי באתר כלשהו אודות בעיות אבטחה עם הסלמת זכויות יתר; כמה פקודות וצינורות בתסריט .bashrc, נראה לי שהם יכולים להקל על העבודה של האקר או קרקר.
    בכבוד ובתודה רבה.

  7.   אינג 'חוסה אלברט דיג'ו

    עם מעטפת סקריפטים אופטימיזציה של הטרמינל היא פשוטה, ראה כמה רחוק אתה יכול להגיע על ידי ביצוע סקריפט טוב של Shell.

    LPI-SB8 ScreenCast (LINUX POST INSTALL - SCRIPT BICENTENARIO 8.0.0)
    (lpi_sb8_adaptation-audiovisual_2016.sh / 43Kb)

    ראה Screencast: https://www.youtube.com/watch?v=cWpVQcbgCyY

  8.   אפר דיג'ו

    הדרכה נהדרת! כל ספר שאתה ממליץ עליו בלינוקס ללמוד סקריפטים של מעטפת, תצורות, אבטחת שרתים? תודה