Skip to main content

Command Palette

Search for a command to run...

Shell Scripting you must know about it!

Published
β€’3 min readβ€’View as Markdown
Shell Scripting you must know about it!
M

Tech enthusiast | Code craftsman | DevOps explorer | Turning bugs into features one line at a time πŸš€

About

This project gives detailed information about the server who is the user, date and time, Server Uptime, last login activities, Disk utilization, RAM utilization, and Top CPU Processes Running. This project is made using Shell-Scripting, the script can be executed using the bash. I've also taken a backup of this script in the form of a zip file. Some extra commands are also used just to beautify the project.

Prerequisite

  1. Linux

  2. Shell Scripting

Things to Remember

Before diving into the project, there're a few commands that are required to be discussed just for having a simple understanding of the project.

  • whoami - allows Linux users to see the currently logged-in user.

  • echo - is used to display the text passed in as an argument.

  • echo -e - allows escape sequences within its operands.

  • date - displays the current time and date (of the system) in the given FORMAT.

  • xargs - converts the statements into arguments.

  • awk - a utility that enables a programmer to write tiny but effective programs in the form of statements

  • top - a commonly used tool for displaying system-performance information.

  • last - used to display a list of users who have previously logged in to the system.

  • uptime - an important metric that shows how long the system has been running or how much time has passed since the system last rebooted.

  • df -h - displays information about total space and available space on a file system.

  • free -h - displays the total amount of free and used physical and swap memory in the system, as well as the buffers used by the kernel.

Script

  1. Create a shell script.

    Copy

      vim server_details.sh
    
  2. Add production house at the top, which means mention the shell you'll be using for the execution of the script.

    Copy

      #!/bin/bash
    
  3. Start writing the script in the way you like by not conflicting with the syntax.

  4. The final script looks something like this. πŸ‘‡

Copy

#!/bin/bash

RED="31"
GREEN="32"
YELLOW="33"
MAGENTA="35"
GRAY="90"
WHITE="97"
ITALICRED="\e[3;${RED}m"
ITALICYELLOW="\e[3;${YELLOW}m"
ITALICWHITE="\e[3;${WHITE}m"
ITALICGREEN="\e[3;${GREEN}m"
BOLDGRAY="\e[1;${GRAY}m"
BOLDYELLOW="\e[1;${YELLOW}m"
BOLDMAGENTA="\e[1;${MAGENTA}m"
ENDCOLOR="\e[0m"


echo -e "${BOLDMAGENTA}\n---------------------------WELCOME----------------------------------\n${ENDCOLOR}"
echo -e "${BOLDYELLOW}\nHey $(whoami), Welcome to the server details corner :-)\n${ENDCOLOR}"

echo -e "${BOLDGRAY}----------------------------***----------------------------------${ENDCOLOR}"
echo -e "${ITALICWHITE}        Current date and Time is : $(date | xargs | awk '{print $3"/"$2"/"$6,$1,$4,$5}')${ENDCOLOR}"
echo -e "${BOLDGRAY}----------------------------***----------------------------------\n${ENDCOLOR}"

echo -e "${BOLDYELLOW}******************************************************************${ENDCOLOR}"
echo -e "${BOLDGRAY}Server Uptime is   : ${ENDCOLOR} ${ITALICWHITE} $(uptime) ${ENDCOLOR}"
echo -e  "${BOLDGRAY}\nLast login details :${ENDCOLOR} ${ITALICWHITE} \n$(last -a | head -5) ${ENDCOLOR}"
echo -e "${BOLDYELLOW}******************************************************************${ENDCOLOR}"

echo -e "${ITALICRED}\n###################################################################${ENDCOLOR}"
echo -e "${ITALICYELLOW}    Disk Space available :${ENDCOLOR} ${ITALICWHITE} $(df -h | xargs | awk '{print $11"/"$9}')${ENDCOLOR}"
echo -e "${BOLDGRAY}\n------------------------------------------------------------------\n${ENDCOLOR}"

echo -e "${ITALICYELLOW}    RAM utilization      :${ENDCOLOR} ${ITALICWHITE} $(free -h | xargs | awk '{print $10"/"$8}')${ENDCOLOR}"
echo -e "${ITALICRED}##################################################################${ENDCOLOR}"

echo -e "${BOLDMAGENTA}\n----------------------------***----------------------------------\n${ENDCOLOR}"
echo -e "${ITALICYELLOW}Top CPU Processes running : ${ENDCOLOR}${ITALICWHITE}"  && top -b | head -10
echo -e "${BOLDMAGENTA}\n----------------------------***---------------------------------\n${ENDCOLOR}"

Note: I've used some variables here just to beautify the project, they're optional to use. "${}" is used for mentioning variables in arguments. If you want to learn more about styling the text in bash script then Click here.

Output πŸŽ‰

More from this blog

Untitled Publication

78 posts