diff --git a/disk-check.sh b/disk-check.sh deleted file mode 100644 index 8548903..0000000 --- a/disk-check.sh +++ /dev/null @@ -1,91 +0,0 @@ -#!/bin/bash - -echo "Starting disk space report... This may take a few minutes." - -# Function to estimate the size of the apt cache -estimate_apt_cache_size() { - echo "Estimating the size of the apt cache:" - sudo du -sh /var/cache/apt - echo -} - -# Function to estimate the size of old installed packages -estimate_old_packages_size() { - echo "Estimating the size of old installed packages:" - sudo du -sh /var/lib/apt/lists /var/lib/apt/lists/partial - echo -} - -# Function to estimate the size of journal logs -estimate_journal_size() { - echo "Estimating the size of journal logs:" - sudo journalctl --disk-usage - echo -} - -# Function to estimate the size of temporary files -estimate_tmp_size() { - echo "Estimating the size of temporary files:" - sudo du -sh /tmp /var/tmp - echo -} - -# Function to estimate the size of unused Docker volumes -estimate_docker_volumes_size() { - echo "Estimating the size of unused Docker volumes:" - docker volume ls -qf dangling=true | xargs -I {} docker volume inspect --format '{{ .Mountpoint }}' {} | xargs -I {} sudo du -sh {} | awk '{ sum += $1 } END { print sum "B" }' - echo -} - -# Function to check and suggest logrotate for large Docker logs -check_docker_logs() { - echo "Checking Docker logs for large files..." - large_logs=$(docker ps -q --filter "status=exited" | xargs -I {} docker inspect --format '{{.LogPath}}' {} | xargs -I {} sudo find {} -type f -size +1G) - if [ -n "$large_logs" ]; then - echo "The following Docker logs are larger than 1GB:" - echo "$large_logs" - echo - echo "Consider setting up logrotate to manage Docker logs." - echo "To truncate all Docker logs, run:" - echo 'sudo find /var/lib/docker/containers/ -type f -name "*.log" -exec truncate -s 0 {} \;' - echo - else - echo "No large Docker logs found." - echo - fi -} - -# Function to list directories consuming more than a specified size -list_large_directories() { - local directory=$1 - local size_limit=$2 - echo "Directories in $directory consuming more than ${size_limit}GB:" - sudo du -ahx $directory 2>/dev/null | awk -v limit=$size_limit '{ - size=$1; unit=substr(size, length(size)); - size_val=substr(size, 1, length(size)-1); - if ((unit=="G" && size_val+0 > limit) || (unit=="T" && size_val*1024 > limit)) { - print - } - }' - echo -} - -# Estimate storage savings -echo "Estimating potential storage savings..." -estimate_apt_cache_size -estimate_old_packages_size -estimate_journal_size -estimate_tmp_size -estimate_docker_volumes_size - -# Check Docker logs -check_docker_logs - -# List large directories -echo "Listing directories consuming more than 5GB and 10GB:" -list_large_directories / 5 -list_large_directories /home 5 -list_large_directories / 10 -list_large_directories /home 10 - -echo "Storage savings estimation and large directory listing completed." diff --git a/swap.sh b/swap.sh new file mode 100644 index 0000000..400d16b --- /dev/null +++ b/swap.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +# Detect the main disk by finding the partition mounted on root ('/') +main_disk=$(df / | tail -1 | awk '{print $1}') +mount_point=$(df / | tail -1 | awk '{print $6}') + +# Get available space on the partition in GB +available_space=$(df -BG $mount_point | tail -1 | awk '{print $4}' | sed 's/G//') + +# Calculate 5% of the available space, and ensure it's within the limits (max 30GB) +swap_size=$((available_space * 5 / 100)) +if [ $swap_size -gt 30 ]; then + swap_size=30 +elif [ $swap_size -lt 1 ]; then + echo "Not enough disk space to create a swap file." + exit 1 +fi + +echo "Creating a ${swap_size}GB swap file at /swapfile..." + +# Create the swap file +sudo fallocate -l ${swap_size}G /swapfile +sudo chmod 600 /swapfile +sudo mkswap /swapfile +sudo swapon /swapfile + +echo "Swap file of ${swap_size}GB created and activated." + +# Ask if the user wants to persist the swap after reboot +read -p "Do you want to persist the swap file after reboot? (y/n): " persist_swap + +if [[ "$persist_swap" == "y" || "$persist_swap" == "Y" ]]; then + echo "/swapfile none swap sw 0 0" | sudo tee -a /etc/fstab + echo "Swap file added to /etc/fstab." +else + echo "Swap file will not persist after reboot." +fi + +# Show swap summary +sudo swapon --show