كيفية تحقيق وحدة SysAdmin الطرفية لتطبيق Shell Scripting

El برمجة شل، فهو يشير إلى تنفيذ الأوامر المعقدة في محطة جنو / لينكس (وحدة التحكم) ، من المفيد جدًا أتمتة الأنشطة الروتينية والمهمة داخل نظام التشغيل جنو / لينكس ، مما يسمح لنا بتحسين الموارد والوقت.

Selección_007

لذلك ، يتيح لنا استخدامه من الجهاز الطرفي تنفيذ أوامر الأوامر المعقدة يدويًا أو تلقائيًا من خلال البرامج النصية أو كإجراءات مبرمجة داخل الملفات المحملة تلقائيًا أو المهام المجدولة داخل نظام التشغيل. جنو / لينكس. وللحصول على مستخدم متوسط ​​أو متقدم أو مسؤول مسؤول النظام el جدول (آلي) المهام والتنبيهات و / أو الإشعارات على مضيف (كمبيوتر / خادم) للحفظ ساعات العمل سواء كان التنفيذ يدويًا أو شخصيًا ، فهو شيء أساسي وضروري للأداء الجيد لعملك كمحترف رفيع المستوى.

بعد ذلك ، سنوضح كيف أ البيانات (القيمة / المعلمة) تم تخزينها مسبقًا في متغير بواسطة أمر باش شل أو متوافق ، يمكن عرضه في طرف نظام التشغيل 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\]# "

`

الخطوة الثانية: قم بتحرير ملف root

مرة أخرى باستخدام المحرر المستخدم بالفعل ، قم بتحرير ملف ملف .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\]$ "

الخطوة الثالثة: قم بتحرير ملف root

تسجيل الخروج والمحطة. ابدأها مرة أخرى واختبر التغييرات. يجب أن يكون مشابهًا لما هو موضح أدناه ، في الصور التالية:

الخطوة 1: بدء تشغيل المحطة الطرفية

الخطوة الثانية: تعديل ملف المستخدم bashrc

الخطوة الثالثة: المحتوى مضمن في ملف المستخدم .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 واللغة قذيفة باش للحصول على مستوى أكثر تقدمًا للمحطة. يمكن تحقيق الشيء نفسه عند بدء الجلسات عن بُعد عبر ssh ، والتي يمكننا رؤيتها لاحقًا في المنشورات المستقبلية الأخرى.

آمل هؤلاء الصغار "نصائح" يسهل عليهم إجراء تحسينات أساسية ولكنها مفيدة ، والتي عادةً ما تكون محجوزة فقط للأشخاص الخبراء فيها التكنولوجيا والحاسوب والبرمجيات الحرة و GNU / Linux.

تذكير: إذا فشل أي سطر أوامر في تنفيذ أو عرض القيمة الصحيحة ، فتأكد من اختبار كل قسم من موجه الأوامر يدويًا لمحاولة تعديل القيم أو بناء جملة بعض المتغيرات.


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.

  1.   yippekay قال

    الأسماء المستعارة هي الأفضل. لا أظن سيئًا بشأن البعض الذي يتضمن افتراضيًا في bashrc: la (ls -a) و ll (ls -l). في النهاية أضفت المعلمة -h.

    الأسماء المستعارة العملية الأخرى:
    s = 'sudo'
    cd1 = 'cd ..'
    cd2 = 'cd ../ ..'
    rmd = 'rm -r' (أستخدمه لإزالة الدلائل بالملفات)
    الاغلاق = 'sudo shutdown -h now'
    del = 'trash-put' (نقل الملفات إلى سلة المهملات ، أمر حزمة trash-cli)

  2.   تونو قال

    منذ أن رأيت هذا الاسم المستعار العام الماضي على Reddit كان المفضل لدي:
    الاسم المستعار اللعنة = 'sudo $ (history -p !!)'

  3.   مارتن قال

    المقال والمظهر الذي يقدمه لوحدة التحكم جيد جدًا. بعض المساهمات:
    - في Ubuntu ، يمكن وضع الأسماء المستعارة في ملف منفصل (.bash_aliases) في باقي التوزيعات التي لا أعرفها ولكنها تفعل ذلك بإضافة الأسطر التالية في bashrc:
    إذا [-f ~ / .bash_aliases] ؛ ثم
    . ~ / .bash_aliases
    fi
    هذا يسمح بترتيب الأسماء المستعارة بشكل أكبر وللنسيان مثلي يمكنك إضافة هذا الاسم المستعار الذي يعرض الملف الذي يسرد الأسماء المستعارة:
    الاسم المستعار lsalias = "المزيد ~ / .bash_aliases"
    - لدي أيضًا ملف نصي غير متكرر (لا أتذكره عادةً) يسمى command_utiles.txt وهو جاهز بالاسم المستعار التالي: alias cutil = 'more ~ ​​/ command_utiles.txt'
    - المزيد من الأسماء المستعارة التي أستخدمها:
    الاسم المستعار cdu = 'cd ~'
    alias lof = 'ls -lSr | more' # يعرض الملفات بالتفصيل مرتبة حسب الحجم
    الاسم المستعار لود = 'du -sk * | Sort -rn '# إظهار الدلائل مرتبة حسب الحجم
    alias deo = 'du -sh' # تقدير المساحة التي يشغلها الدير المشار إليه
    الاسم المستعار بسا = '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 "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}')
    USER_Data = $ (du -sh ~ | Sort -r | awk '{print $ 1}')

    واضح
    printf٪ 130s | tr »» «=»
    رما - طرد - قذف ""
    صدى «التاريخ:«date +%c --date='+1 year'
    صدى «نواة:«uname -o»<«uname -r«> <«uname -m«>»
    صدى "DISTRIBUTION:" $ SYSTEM_NAME "" $ SYSTEM_VERSION ""
    صدى "CPU:" $ MODEL_CPU "،" $ NUCLEO_CPU "Nuclei" $ CACHE_CPU "Cache"
    صدى «المساحة المستخدمة:« $ DATA_USUARIO
    printf٪ 130s | tr »» «=»
    رما - طرد - قذف ""
    ############################
    صدى "أوامر مفيدة:"
    echo »- تثبيت RPM في نظام حزمة DEB: alien -c -i package.rpm»
    صدى »- تغيير المستخدم ومجموعة الملفات بشكل متكرر: chown -hR user: group [file or dir]»
    صدى »- نسخ مع الاحتفاظ بالأذونات: cp -ax source destination»
    صدى »- إظهار المستودعات النشطة: grep -i ppa.launchpad.net /etc/apt/sources.list.d/*.list»
    صدى »- إضافة مستودع: apt-add-repository ppa: repository»
    صدى صوت »- لرؤية المزيد من أوامر Cutil»
    صدى صوت »- لإظهار ALIAS 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.   المستخدم القوس قال

    تحياتي وامتنان لانهائي لمشاركة تلك المعلومات.
    ليس لدي الكثير من المعرفة حول إدارة جنو / لينكس (أنا مجرد مستخدم تجريبي وفضولي بدون تدريب أكاديمي) ، لكني أتذكر أنني قرأت في بعض المواقع الإلكترونية عن مشاكل الأمان مع تصعيد الامتيازات ؛ بعض الأوامر والأنابيب في البرنامج النصي .bashrc ، يبدو لي أنها يمكن أن تسهل عمل المتسلل أو المتسلل.
    بكل احترام وامتنان جدا.

  7.   المهندس خوسيه ألبرت قال

    باستخدام Shell Scripting ، يعد تحسين الجهاز أمرًا بسيطًا ، انظر إلى أي مدى يمكنك الذهاب من خلال إجراء برمجة جيدة لـ Shell.

    اختبار ScreenCast اختبار LPI-SB8 (LINUX POST INSTALL - SCRIPT BICENTENARIO 8.0.0)
    (lpi_sb8_adecuación-audiovisual_2016.sh / 43 كيلو بايت)

    انظر Screencast: https://www.youtube.com/watch?v=cWpVQcbgCyY

  8.   مرجة قال

    تعليمي رائع! أي كتاب تنصح به على نظام لينكس لتعلم البرمجة النصية للقذائف والتكوينات وأمن الخادم؟ شكرا