#!/usr/bin/env bash # TODO - make equivalent to https://gitlab.com/megabyte-labs/gas-station/-/blob/master/roles/system/common/tasks/linux/swap.yml {{ includeTemplate "universal/profile" }} {{ includeTemplate "universal/logg" }} MEMORY_IN_KB="$(grep MemTotal /proc/meminfo | sed 's/.* \(\d+\) kB/\1/')" MEMORY_IN_GB="$((MEMORY_IN_KB / 1024 / 1024))" if [ "$MEMORY_IN_GB" -gt 64 ]; then SWAP_SPACE="$((MEMORY_IN_GB / 10))" elif [ "$MEMORY_IN_GB" -gt 32 ]; then SWAP_SPACE="$((MEMORY_IN_GB / 8))" elif [ "$MEMORY_IN_GB" -gt 8 ]; then SWAP_SPACE="$((MEMORY_IN_GB / 4))" else SWAP_SPACE="$MEMORY_IN_GB" fi logg info "Creating a $SWAP_SPACE GB /swapfile" sudo fallocate -l "$SWAP_SPACE" /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile if cat /etc/fstab | grep "/swapfile"; then sudo sed -i '/\/swapfile/\/swapfile none swap sw 0 0/' /etc/fstab else echo "/swapfile none swap sw 0 0" | sudo tee -a /etc/fstab fi