31 lines
1 KiB
Bash
31 lines
1 KiB
Bash
#!/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-before" }}
|
|
{{ includeTemplate "universal/logg-before" }}
|
|
|
|
if [ ! -f /swapfile ]; then
|
|
MEMORY_IN_KB="$(grep MemTotal /proc/meminfo | sed 's/.* \(.*\) 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}G" /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
|
|
fi
|