Advanced Linux Shell Scripting for DevOps Engineers with User management

Day 5 of #90DaysOfDevOps Challenge

Advanced Linux Shell Scripting for DevOps Engineers with User management

Introduction

Welcome to the world of DevOps, where automation and efficiency reign supreme. As a DevOps engineer, your proficiency in Linux shell scripting is like a superpower that can simplify complex tasks and streamline your workflow. In this blog, we're going to dive deep into advanced Linux shell scripting techniques, focusing on user management and automation. So, fasten your seatbelts and get ready to elevate your DevOps game!

  1. Dynamic Directory Creation

Managing directories can be a tedious task, especially when you're dealing with a large number of them. But fear not, for shell scripting is here to save the day. We'll create a nifty bash script named createDirectories.sh that takes three arguments - directory name, start number, and end number. When executed, this script will generate a specified range of directories with dynamically generated names.

bashCopy code#!/bin/bash

directory_name=$1
start=$2
end=$3

for ((i = start; i <= end; i++)); do
  mkdir "${directory_name}_${i}"
done

echo "Directories created successfully!"

To use the script, simply execute the following command:

bashCopy codebash createDirectories.sh mydir 1 5

This will create directories named mydir_1, mydir_2, up to mydir_5.

  1. Backup Your Work

Regular backups are the safety net of every responsible DevOps engineer. Let's create a script that backs up all your hard work in a snap.

bashCopy code#!/bin/bash

backup_dir="/path/to/backup"
timestamp=$(date +%Y%m%d%H%M%S)
backup_filename="backup_$timestamp.tar.gz"

tar -czvf "$backup_dir/$backup_filename" /path/to/your/work

echo "Backup completed: $backup_filename"

Replace /path/to/backup and /path/to/your/work with appropriate paths. Running this script with bash backup.sh will create a timestamped compressed backup file.

  1. Automate Your Backup

Manually running the backup script can be tiresome. Let's automate it using a cron job. Open your crontab configuration with crontab -e and add the following line to run the backup script every day at midnight:

bashCopy code0 0 * * * /bin/bash /path/to/backup.sh

This will ensure your work is backed up seamlessly without lifting a finger.

  1. User Management

User management is a crucial aspect of DevOps. Let's create two users and display their usernames using a script.

bashCopy code#!/bin/bash

user1="devuser1"
user2="devuser2"

useradd "$user1"
useradd "$user2"

echo "Usernames: $user1, $user2"

Executing this script (bash userManagement.sh) will create two users, and you'll see their usernames displayed on the screen.

Conclusion :

With these advanced Linux shell scripting techniques, you're well on your way to becoming a DevOps virtuoso. You've learned how to dynamically create directories, automate backups, and manage users with elegance and efficiency. Harness the power of shell scripting to supercharge your DevOps journey!

Happy scripting, fellow DevOps superheroes!