commit b25dfe4e394d2342c1770a5c8cfcc2f38ea1ffef Author: arul Date: Wed Mar 12 12:59:01 2025 +0530 linux server disk cleaner sccripts diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/clean-disk b/clean-disk new file mode 100755 index 0000000..1f82afa --- /dev/null +++ b/clean-disk @@ -0,0 +1,4 @@ +#!/bin/bash + +journalctl --disk-usage #checks disk size used by journal +journalctl --vacuum-time=3d #deletes journal older than 3 days diff --git a/clean_old_kernals.sh b/clean_old_kernals.sh new file mode 100644 index 0000000..911ce6f --- /dev/null +++ b/clean_old_kernals.sh @@ -0,0 +1,63 @@ +#!/bin/bash + +# Get currently running kernel version +current_kernel=$(uname -r) +echo "Currently running kernel: $current_kernel" + +# Get all installed kernels +installed_kernels=$(dpkg --list | grep linux-image | awk '{print $2}') + +# Determine the latest kernel version installed +kernel_versions=$(echo "$installed_kernels" | grep -Eo '6.1.0-[0-9]+-cloud-amd64' | sort -V) + +latest_kernel=$(echo "$kernel_versions" | tail -n 1) +second_latest=$(echo "$kernel_versions" | tail -n 2 | head -n 1) +third_latest=$(echo "$kernel_versions" | tail -n 3 | head -n 1) + +echo -e "\nKernels that will be KEPT:" +echo "$current_kernel (currently running)" +echo "$latest_kernel (latest installed)" +echo "$second_latest (second latest)" +echo "$third_latest (third latest)" + +# Prepare a list of kernels to remove +echo -e "\nKernels that will be REMOVED:" +kernels_to_remove=() +for kernel in $installed_kernels; do + if [[ "$kernel" != *"$current_kernel"* ]] && \ + [[ "$kernel" != *"$latest_kernel"* ]] && \ + [[ "$kernel" != *"$second_latest"* ]] && \ + [[ "$kernel" != *"$third_latest"* ]]; then + echo "$kernel" + kernels_to_remove+=("$kernel") + fi +done + +# Confirm before removing +echo -e "\nDo you want to proceed with the removal? (y/N): " +read -r confirm +if [[ "$confirm" != "y" && "$confirm" != "Y" ]]; then + echo "Aborted." + exit 0 +fi + +# Remove old kernels +if [ ${#kernels_to_remove[@]} -eq 0 ]; then + echo "No old kernels to remove." +else + echo "Removing old kernels..." + sudo apt-get purge -y "${kernels_to_remove[@]}" + sudo apt-get autoremove --purge -y + sudo apt-get clean +fi + +# Update GRUB +echo "Updating GRUB..." +sudo update-grub + +# Display remaining disk space +echo -e "\nDisk space after cleanup:" +df -h / + +echo "Cleanup completed!" + diff --git a/remove-big-folders-unused-docker.sh b/remove-big-folders-unused-docker.sh new file mode 100644 index 0000000..da05315 --- /dev/null +++ b/remove-big-folders-unused-docker.sh @@ -0,0 +1,52 @@ +#!/bin/bash + +echo "Displaying the 20 largest files on the system:" +find / -xdev -type f -exec du -h {} + 2>/dev/null | sort -rh | head -n 20 + +echo -e "\nThe following files are safe to remove and will free up space:" +SAFE_TO_REMOVE=( + "/var/log/btmp" + "/usr/local/nginx/logs/access.log" + "/usr/local/nginx/logs/error.log" + "/var/log/nginx/access.log" + "/var/log/letsencrypt/letsencrypt.log" + "/var/log/nginx/yarr_access.log" + "/var/lib/apt/lists/*" +) + +for file in "${SAFE_TO_REMOVE[@]}"; do + if [ -e "$file" ] || [ -d "$file" ]; then + echo "$file" + fi +done + +read -p "Do you want to proceed with the removal? (y/N): " CONFIRM +if [[ "$CONFIRM" =~ ^[Yy]$ ]]; then + echo -e "\nRemoving files..." + for file in "${SAFE_TO_REMOVE[@]}"; do + if [ -f "$file" ]; then + > "$file" + echo "Truncated: $file" + elif [ -d "$file" ]; then + rm -rf "$file" + echo "Removed directory: $file" + fi + done + + echo -e "\nCleaning APT cache..." + apt clean + + echo -e "\nPruning Docker (if installed)..." + if command -v docker >/dev/null 2>&1; then + docker system prune -af + docker volume prune -f + fi + + echo -e "\nCleaning journal logs..." + journalctl --vacuum-size=50M + + echo -e "\nCleanup completed." +else + echo "Operation cancelled." +fi + diff --git a/remove-heavy-packages.sh b/remove-heavy-packages.sh new file mode 100644 index 0000000..16e1ce2 --- /dev/null +++ b/remove-heavy-packages.sh @@ -0,0 +1,52 @@ +#!/bin/bash + +# Display the 20 heaviest installed packages +echo "Top 20 heaviest installed packages:" +echo "-----------------------------------" +dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -rn | awk '{printf "%d. %.3f MB\t%s\n", NR, $1/1024, $2}' | head -n 20 + +# Prompt user for input +echo -e "\nDo you want to remove any of these packages? (y/N): " +read -r confirm + +if [[ "$confirm" =~ ^[Yy]$ ]]; then + echo -e "\nEnter the numbers of the packages to remove (e.g., 1 3 5), or press Enter to skip: " + read -r choices + + if [ -n "$choices" ]; then + # Get the package names for the chosen numbers + packages_to_remove=() + for choice in $choices; do + package=$(dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -rn | awk '{print $2}' | head -n 20 | sed -n "${choice}p") + if [ -n "$package" ]; then + packages_to_remove+=("$package") + else + echo "Invalid choice: $choice" + fi + done + + # Confirm and remove the selected packages + if [ ${#packages_to_remove[@]} -gt 0 ]; then + echo -e "\nThe following packages will be removed: ${packages_to_remove[*]}" + echo -e "Are you sure? (y/N): " + read -r final_confirm + + if [[ "$final_confirm" =~ ^[Yy]$ ]]; then + apt remove --purge "${packages_to_remove[@]}" + apt autoremove -y + echo "Selected packages removed successfully." + else + echo "Operation cancelled." + fi + else + echo "No valid packages selected for removal." + fi + else + echo "No packages selected. Exiting." + fi +else + echo "No action taken. Exiting." +fi + + +