~/grkn/posts $ cat linux-nasil-dinamik-motd-olusturulur.md

· 2 min read · DevOps · Author: Gürkan Biçer

Linux: Dinamik MOTD Nasıl Oluşturulur

Read this in English →

Linux sunucularında dinamik motd nasıl oluşturulur, öğrenin.

Linux kullanıcıları konsollarında hayatın anlamını ararken, başka insanların sözlerinden ilham almak için motd’u icat ettiler ^^

MOTD, “message of the day” (günün mesajı) kelimelerinin kısaltmasıdır. /etc/motd dosyasının içeriği, başarılı bir girişten sonra, login shell çalıştırılmadan hemen önce login tarafından gösterilir.

Kullanılıp kullanılmaması büyük bir mesele değil. Ama motd dosyasını dinamik olarak oluşturmak için bir bash script’i yazmak istedim. Sunucuların konsollarında çok fazla zaman geçiriyorum. Bazen güzel bir söz ve sunucu hakkında biraz bilgi görmem gerekiyor.

İşte script:

#!/bin/bash
HOSTNAME=$(hostname)
MAINIP=$(hostname -i)
DATE=$(date)
KERNEL=$(uname -r)
UPTIME=$(uptime | sed 's/.*up \([^,]*\), .*/\1/')
IPS=$(hostname -I)
OSNAME=$(grep -E '^NAME=' /etc/os-release | awk -F'=' '{print $2}' | tr -d '"')
OSVERSION=$(grep -E '^VERSION=' /etc/os-release | awk -F'=' '{print $2}' | tr -d '"')
QUOTEAPI=$(curl https://zenquotes.io/api/random -s)
QUOTEQ=$(echo $QUOTEAPI | jq -r '.[] | .q')
QUOTEA=$(echo $QUOTEAPI | jq -r '.[] | .a')

echo -e "
* *******************************************************************************
MOTD: $QUOTEQ
Author: $QUOTEA
* *******************************************************************************
  o             o
 <|>          _<|>_
 / \
 \o/            o    \o__ __o    o       o   \o    o/ 
  |            <|>    |     |>  <|>     <|>   v\  /v  
 / \           / \   / \   / \  < >     < >    <\/>   
 \o/           \o/   \o/   \o/   |       |     o/\o   
  |             |     |     |    o       o    /v  v\  
 / \ _\o__/_   / \   / \   / \   <\__ __/>   />    <\ 
* *******************************************************************************
* Hostname   : $HOSTNAME
* Main IP    : $MAINIP
* OS         : $OSNAME $OSVERSION
* Kernel     : $KERNEL
* Uptime     : $UPTIME
* IP Addr    : $IPS
* ********************************************************************************
* Last Updt  : $DATE
* ********************************************************************************
" > /etc/motd

Script, çalıştırıldığında /etc/motd dosyasını değiştiriyor.

Bu script’i /usr/local/bin dizinine koyabilir ve ona +x izni verebilirsiniz. Ardından crontab’ınıza ekleyebilirsiniz.

*/5 * * * * /usr/local/bin/create-motd > /dev/null 2>&1

Anlamlı ve güzel sözler için bir API kullandım (zenquotes.io). İsterseniz sözleri kaldırabilir ya da bash script’ine başka değişkenler ekleyebilirsiniz. İstediğiniz gibi kullanın, hepsi sizin.

ASCII karakterlerini değiştirebilirsiniz. Bir ASCII banner oluşturmak için şu aracı kullandım: https://www.asciiart.eu/text-to-ascii-art

← all blog posts