..
How to Allocate swap in GNU/Linux?
#!/usr/bin/env bash
set -euo pipefail
SIZE="1G" # To be determined by the user: either B or G
SWAP_ADDR="/swapfile"
FSTAB="/etc/fstab"
if [ ${UID} -ne 0 ]; then
echo "Must run as root" >&2
exit 1
fi
if [ -e "${SWAP_ADDR}" ]; then
echo "Swapfile already exists" >&2
exit 1
fi
echo "Allocating ${SIZE} at ${SWAP_ADDR}..."
fallocate -l "${SIZE}" "${SWAP_ADDR}"
echo "Setting permissions..."
chmod 600 "${SWAP_ADDR}"
echo "Enabling swap..."
mkswap "${SWAP_ADDR}"
swapon "${SWAP_ADDR}"
if grep -qF "${SWAP_ADDR}" "$FSTAB"; then
echo "Entry already present"
else
echo "Adding the entry to ${FSTAB}"
printf "%s\t\tnone\t\tswap\t\trkswap\t0\t0\n" "$SWAP_ADDR" >> "$FSTAB"
echo "Added."
fi
echo "Current status:"
swapon --show