DEV Community


Posted on

A Personal MOTD

A custom MOTD

Today, we are going to modify the MOTD that appears when we connect SSH to our server. Generally, it gives you some general information about your machine. You can display the server's uptime, RAM consumption, ...

Personally, I did something simple. It only displays me a logo and text.
To make a custom MOTD, there are many different ways to do it. Personally, I chose the method where we write a basic script that we execute so that it can edit the /etc/motd file alone.

Writing the script

As said above, I wrote a small script (koff, koff,... it's internet that wrote it for me) that I saved in a file If you want the same MOTD as I do, you can find the code here:

A custom MOTD: code

I slightly modified the script as explained in the comments below. You just have to change the line 20 echo "$logo" > /etc/motd.tail to echo "$logo" > /etc/motd.

Then I saved the file and executed it. Being a beginner with Linux, I had a little trouble running the file. Finally, two solutions are offered to me.
Allow the script to run,
run it with bash /path/to/ command

I first chose the first option (hehey I said I didn't understand anything) and then I thought it was time to try the second one anyway. (spoiler! The second one is faster)

First solution:
chmod +x gives the script execution rights script is executed
Second solution
bash simply execute the script

A custom MOTD: bash

Unfortunately, I have a small error, because it doesn't find the bootlogs file in /etc/init.d/ but no worries it still works. Finally, all you need to do is reconnect and the custom MOTD will appear.


L4p1n's blog
Source code
How to run. sh file


By myself

Top comments (2)

moopet profile image
Ben Sinclair

I run something like

hostname | figlet | lolcat | sudo tee /etc/motd

where figlet and lolcat may or may not come with your distro.

felnasa profile image
Ahmed Ben Abid

About the /etc/init.d/bootlogs error you need to verify if the file exists and executable. And if it does, execute the script:
[ -x /etc/init.d/bootlogs ] && /etc/init.d/bootlogs