シェルスクリプティングを適用してSysAdminターミナルを実現する方法

El シェルスクリプト、それは 複雑な注文の実行 上の GNU / Linuxターミナル(コンソール)、 私たちの中で日常的で重要な活動を自動化することは非常に便利です GNU / Linuxオペレーティングシステム、 これにより、最適化が可能になります リソースと時間.

Selection_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\]# "

`

XNUMX番目のステップ:ルート.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\]$ "

XNUMX番目のステップ:ルート.bashrcを編集します

ログアウトして端末。 もう一度開始して、変更を試してください。 次の画像では、次のように表示されます。

ステップ1:ターミナルの起動

ステップ2:ユーザー.bashrcを編集する

ステップ3:ユーザー.bashrcに挿入されたコンテンツ

ステップ4:ルートログイン

ステップ5:ルートログイン

手順6:ルート.bashrcファイルを編集する

手順7:ルート.bashrcファイルを編集する

手順8:ルート.bashrcファイルを編集する

ステップ9:新しいクライアント端末のデモンストレーション例

ステップ10:新しいクライアント端末のデモンストレーション例

ステップ11:新しいクライアント端末のデモンストレーション例

ステップXNUMX(オプション):エイリアスの調整

内でのエイリアスの使用を忘れないでください .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. データの目的:SPAMの制御、コメント管理。
  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 now'
    del = 'trash-put'(ファイルをゴミ箱に移動、trash-cliパッケージコマンド)

  2.   遠野

    昨年Redditでこのエイリアスを見たので、それは私のお気に入りです:
    エイリアスファック= 'sudo $(history -p !!)'

  3.   マーティン

    記事とそれがコンソールに与える外観はとても良いです。 いくつかの貢献:
    -Ubuntuでは、エイリアスは、私が知らない残りのディストリビューションの別のファイル(.bash_aliases)に配置できますが、.bashrcに次の行を追加することで配置できます。
    if [-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 | more '#すべてのプロセスをmoreで表示
    エイリアス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 "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 "キャッシュサイズ" / 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«>»
    echo "DISTRIBUTION:" $ SYSTEM_NAME "" $ SYSTEM_VERSION ""
    echo "CPU:" $ MODEL_CPU "、" $ NUCLEO_CPU "Nuclei、" $ CACHE_CPU "キャッシュ"
    エコー«使用済みスペース:«$ DATA_USUARIO
    printf%130s | tr»»«=»
    捨てた ""
    ####################
    エコー「便利なコマンド:」
    echo»-DEBパッケージシステムにRPMをインストールします:alien -c -ipackage.rpm»
    echo»-ユーザーとファイルのグループを再帰的に変更します:chown -hR user:group [file ordir]»
    エコー»-権限を保持したままコピー:cp -ax sourcedestination»
    echo»-アクティブなリポジトリを表示します:grep -i ppa.launchpad.net/etc/apt/sources.list.d/*.list»
    echo»-リポジトリを追加します: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.    アバドンs

      自分の記事を書いてみませんか?

  4.   アバドンs

    これらは私が好きなチュートリアルです!!!!!!!!!

  5.   Ing。JoseAlbert

    さて、あなたがそれを気に入って提供してくれてとてもうれしいです!

    明日は別の記事を公開したいと思います! 斜面。

  6.   ユーザーアーチ

    その情報を共有するための挨拶と無限の感謝。
    私はGNU / Linuxの管理についてあまり知識がありません(私は学術的なトレーニングを受けていない経験的で好奇心旺盛なユーザーです)が、特権のエスカレーションに伴うセキュリティの問題についていくつかのWebサイトで読んだことを覚えています。 .bashrcスクリプトのいくつかのコマンドとパイプは、ハッカーやクラッカーの作業を容易にする可能性があるように思われます。
    敬意を表して、そして非常に感謝しています。

  7.   Ing。JoseAlbert

    Shell Scriptingを使用すると、端末の最適化が簡単になります。適切なShellScriptingを実行することでどこまで進むことができるかを確認してください。

    LPI-SB8テストScreenCast(LINUX POST INSTALL-SCRIPT BICENTENARIO 8.0.0)
    (lpi_sb8_adecuación-audiovisual_2016.sh/ 43Kb)

    スクリーンキャストを参照してください。 https://www.youtube.com/watch?v=cWpVQcbgCyY

  8.   リー

    素晴らしいチュートリアル! シェルのスクリプト、構成、サーバーのセキュリティをよく学ぶためにLinuxで推奨する本はありますか? ありがとうございました