FIX: Backup Restore was broken because rsync was missing
[discourse_docker.git] / scripts / mk_swapfile
CommitLineData
034f6554 1#!/bin/bash -e
8b9d6bff 2# This script adds a 1GB swapfile to the system
034f6554
MB
3
4function do_err() {
5 code=$?
6 echo "Command failed with code $code: $BASH_COMMAND"
7 exit $code
8
9}
10trap do_err ERR
11
12
13function set_swappiness() {
14 if ! grep -q '^vm.swappiness' /etc/sysctl.conf; then
15 echo -n 'Setting '
16 sysctl -w vm.swappiness=10
17 echo vm.swappiness = 10 >> /etc/sysctl.conf
18 fi
19}
20
21function get_new_swapfile() {
22 for i in `seq 0 99`; do
23 if [ ! -e /swapfile.$i ]; then
24 echo /swapfile.$i
25 return
26 fi
27 done
28 # Seriously? 100 swapfiles already exist?
29 echo "too many swapfiles"
30 exit 1
31}
32
33[ `id -u` -eq 0 ] || { echo "You must be root to run this script"; exit 1; }
d6da9cd2
MB
34
35# how big? default 1GB
36declare -i num_gb
37num_gb="${1-1}"
38[ $num_gb -lt 1 ] && { echo "Please specify an integer >= 1"; exit 1; }
39echo "Creating a ${num_gb}GB swapfile..."
40
034f6554
MB
41set_swappiness
42
43SWAPFILE=$(get_new_swapfile)
44
45umask 077
2bdc9167 46dd if=/dev/zero of=$SWAPFILE bs=1k count=$(($num_gb * 1024 * 1024)) conv=excl
034f6554
MB
47mkswap $SWAPFILE
48swapon $SWAPFILE
49echo "$SWAPFILE swap swap auto 0 0" >> /etc/fstab
50
8b9d6bff 51echo 1GiB swapfile successfully added