DEV Community

Janak Shrestha
Janak Shrestha

Posted on

System Cleanup: Removing Unnecessary Packages Across Multiple Linux Servers

During recent servers audit, its was observed that some cleanup is needed on all app servers in Stratos Datacenter. Find below more details:

Remove logrotate package from all app servers in Stratos Datacenter.


Solution

Step 1: Connect to Each App Server and Remove logrotate

App Server 1 (stapp01) - User: tony

ssh tony@stapp01
# Password: Ir0nM@n
sudo su -
# Password: Ir0nM@n
yum remove -y logrotate
exit
exit
Enter fullscreen mode Exit fullscreen mode

App Server 2 (stapp02) - User: steve

ssh steve@stapp02
# Password: Am3ric@
sudo su -
# Password: Am3ric@
yum remove -y logrotate
exit
exit
Enter fullscreen mode Exit fullscreen mode

App Server 3 (stapp03) - User: banner

ssh banner@stapp03
# Password: BigGr33n
sudo su -
# Password: BigGr33n
yum remove -y logrotate
exit
exit
Enter fullscreen mode Exit fullscreen mode

One-Line Commands

App Server 1 (stapp01):

echo 'Ir0nM@n' | ssh tony@stapp01 "sudo -S yum remove -y logrotate"
Enter fullscreen mode Exit fullscreen mode

App Server 2 (stapp02):

echo 'Am3ric@' | ssh steve@stapp02 "sudo -S yum remove -y logrotate"
Enter fullscreen mode Exit fullscreen mode

App Server 3 (stapp03):

echo 'BigGr33n' | ssh banner@stapp03 "sudo -S yum remove -y logrotate"
Enter fullscreen mode Exit fullscreen mode

Automated Script (Run from Jump Host)

#!/bin/bash

# Define servers with their credentials
declare -A SERVERS=(
    ["stapp01"]="tony:Ir0nM@n"
    ["stapp02"]="steve:Am3ric@"
    ["stapp03"]="banner:BigGr33n"
)

echo "========================================="
echo "Removing logrotate from all App Servers"
echo "========================================="

for server in "${!SERVERS[@]}"; do
    IFS=':' read -r user pass <<< "${SERVERS[$server]}"
    echo ""
    echo "-----------------------------------------"
    echo "Processing $server (User: $user)"
    echo "-----------------------------------------"

    sshpass -p "$pass" ssh -o StrictHostKeyChecking=no $user@$server "sudo -S bash -c '
        echo \"Checking if logrotate is installed...\"
        rpm -qa | grep logrotate

        echo \"Removing logrotate package...\"
        yum remove -y logrotate

        echo \"Verifying removal...\"
        rpm -qa | grep logrotate || echo \"✓ logrotate removed successfully\"

        echo \"✓ logrotate removed from $server\"
    '"

    if [ $? -eq 0 ]; then
        echo "✅ $server completed successfully"
    else
        echo "❌ Failed to remove logrotate on $server"
    fi
done

echo ""
echo "========================================="
echo "✅ logrotate removed from all App servers!"
echo "========================================="
Enter fullscreen mode Exit fullscreen mode

Expected Output

[root@stapp01 ~]# yum remove -y logrotate
Loaded plugins: fastestmirror
Resolving Dependencies
--> Running transaction check
---> Package logrotate.x86_64 0:3.14.0-4.el8 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package          Arch          Version                 Repository        Size
================================================================================
Removing:
 logrotate        x86_64        3.14.0-4.el8            @base            163 k

Transaction Summary
================================================================================
Remove  1 Package

Installed size: 163 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Erasing    : logrotate-3.14.0-4.el8.x86_64                             1/1 
  Verifying  : logrotate-3.14.0-4.el8.x86_64                             1/1 

Removed:
  logrotate.x86_64 0:3.14.0-4.el8                                           

Complete!

[root@stapp01 ~]# rpm -qa | grep logrotate
[root@stapp01 ~]# 
Enter fullscreen mode Exit fullscreen mode

Verification Commands

# Check if logrotate is installed
rpm -qa | grep logrotate

# Check for logrotate binary
which logrotate

# Check if logrotate command exists
logrotate --version 2>&1 | head -1
Enter fullscreen mode Exit fullscreen mode

Alternative Method (Using dnf if available)

dnf remove -y logrotate
Enter fullscreen mode Exit fullscreen mode

Summary

  • logrotate removed from stapp01
  • logrotate removed from stapp02
  • logrotate removed from stapp03
  • ✅ Package removal verified on all servers

The logrotate package has been successfully removed from all App servers in the Stratos Datacenter.

Top comments (0)