Beyond Basics: Mastering Advanced Linux Shell Scripting for DevOps with User Control

Sourabh PalandeSourabh Palande
2 min read

Task 1: Creating Dynamic Directories

Here's a bash script for the first task, creating directories with a dynamic name:

#!/bin/bash 

if [ "$#" -ne 3 ]; then 
    echo "Usage: $0 <directory_name> <start_number> <end_number>" 
    exit 1 
fi

directory_name="$1" 
start_number="$2" 
end_number="$3" 

if [ "$start_number" -gt "$end_number" ]; then echo "Start number should be less than or equal to end number." exit 1 
fi 

for 
  ((i=start_number; i<=end_number; i++)); do         dir_name="${directory_name}${i}" 
mkdir "$dir_name" 
echo "Created directory: $dir_name" 
done

Save this script in a file, e.g., createDirectories.sh, and make it executable using chmod +x createDirectories.sh.

To run the script, use the following commands:

./createDirectories.sh day 1 90

This will create directories named day1, day2, day3, and so on up to day90.

Task 2: Backup Your Work

For the second task, creating a backup script, you can create a script like this:

#!/bin/bash 

# Set the source directory to backup source_directory="/path/to/your/source"

# Set the backup directory 
backup_directory="/path/to/your/backup"

# Create a timestamp to include in the backup folder name 
timestamp=$(date +%Y%m%d%H%M%S)

# Create a backup file with a timestamp 
final_file="$backup_directory/file_backup-$timestamp.tgz"

# Create the backup
if tar czf "$final_file" -C "$source_directory" .; then
  echo "Backup Complete"
else
  echo "Backup Failed"
fi

Save this script in a file, e.g., backup.sh, and make it executable using chmod +x backup.sh.

To automate this backup script using Cron, you can add an entry to your user's crontab by running crontab -e and adding a line like this to run the script daily at a specific time:

0 2 * * * /path/to/backup.sh

This will run the backup.sh script every day at 2:00 AM. Adjust the timing as needed.

Task 3: User Management in Linux

For the third task, you can create two users and display their usernames using the following commands:

# Create the first user 
sudo useradd user1 

# Set a password for the first user 
sudo passwd user1 

# Create the second user 
sudo useradd user2 

# Set a password for the second user 
sudo passwd user2 

# Display the usernames 
echo "User 1: user1" echo "User 2: user2"

This will create two users, user1 and user2, and display their usernames as specified.

I hope you found this blog helpful!

Happy learning!

Sourabh Palande

1
Subscribe to my newsletter

Read articles from Sourabh Palande directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Sourabh Palande
Sourabh Palande