Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #####################################################################################
- #####################################################################################
- #Script makes swapfile which can be used with other swapfiles at the same time
- #####################################################################################
- #####################################################################################
- #The following script was done for purpose of education. Licensed under the most free
- #license in the world WTFPL. See text below.
- #####################################################################################
- #####################################################################################
- # DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
- # Version 2, December 2004
- #
- # Copyright (C) 2015 Alexander Pinegin <darkbloodyfoxy # gmail,com>
- #
- # Everyone is permitted to copy and distribute verbatim or modified
- # copies of this license document, and changing it is allowed as long
- # as the name is changed.
- #
- # DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
- # TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
- #
- # 0. You just DO WHAT THE FUCK YOU WANT TO.
- #####################################################################################
- #####################################################################################
- # _____ _ _ ___ _____
- # / ___| | | |/ _ \|_ _|
- # \ `--.| | | / /_\ \ | |
- # `--. \ | | | _ | | |
- # /\__/ / |_| | | | |_| |_
- # \____/ \___/\_| |_/\___/
- #####################################################################################
- #####################################################################################
- # ___ _ _ ______ _ _
- # / _ \| | | | | ___ (_) (_)
- #/ /_\ \ | _____ ____ _ _ __ __| | ___ _ __ | |_/ /_ _ __ ___ __ _ _ _ __
- #| _ | |/ _ \ \/ / _` | '_ \ / _` |/ _ \ '__| | __/| | '_ \ / _ \/ _` | | '_ \
- #| | | | | __/> < (_| | | | | (_| | __/ | | | | | | | | __/ (_| | | | | |
- #\_| |_/_|\___/_/\_\__,_|_| |_|\__,_|\___|_| \_| |_|_| |_|\___|\__, |_|_| |_|
- # __/ |
- # |___/
- # _ ______ _ _ ______
- # | | | ___ \ | | | | ___|
- # __ _| | ____ _ | |_/ / | ___ ___ __| |_ _ | |_ _____ ___ _
- # / _` | |/ / _` | | ___ \ |/ _ \ / _ \ / _` | | | | | _/ _ \ \/ / | | |
- #| (_| | < (_| | | |_/ / | (_) | (_) | (_| | |_| | | || (_) > <| |_| |
- # \__,_|_|\_\__,_| \____/|_|\___/ \___/ \__,_|\__, | \_| \___/_/\_\\__, |
- # __/ | __/ |
- # |___/ |___/
- #####################################################################################
- #####################################################################################
- echo -ne "\e[36mSWAP FILE CREATOR SCRIPT"
- echo ""
- if [[ $EUID -ne 0 ]]; then
- echo -ne "\e[31m\e[44mThis script must be run as root"
- exit 1
- fi
- #Color back to default
- echo -ne "\e[39m\e[49m"
- while true; do
- echo "1) Create swap file"
- echo "2) Enable swap file"
- echo "3) Disable swap file"
- echo "4) Delete swap file"
- echo ""
- echo -ne "0) \e[31m\e[44mExit\e[39m\e[49m"
- echo ""
- echo "Enter number and confirm your input"
- read answer
- echo ""
- case "$answer" in
- 0)
- echo "Exiting..."
- exit 0
- ;;
- # "1) Create swap file"
- 1)
- while true; do
- echo "Where would you like to place swap file?"
- echo "Enter path or leave blank to use current directory"
- read DIRECTORY
- if [ "$DIRECTORY" == "" ]; then
- echo "Using current directory"
- DIRECTORY=$(pwd)
- fi
- if [ ! -d "$DIRECTORY" ]; then
- echo "Directory doesn't exist!"
- while true; do
- echo "1) Make directory"
- echo "2) Use current directory"
- echo "3) Try again"
- echo ""
- echo -ne "0) \e[31m\e[44mExit\e[39m\e[49m"
- echo ""
- read answer
- case $answer in
- 0)
- echo "Exiting..."
- exit 0
- ;;
- 1)
- mkdir $DIRECTORY
- break
- ;;
- 2)
- DIRECTORY=$(pwd)
- echo "Using current directory"
- echo ""
- break
- ;;
- 3)
- DIRECTORY="TRYAGAIN"
- break;
- ;;
- *)
- echo -ne "\e[31m\e[44mInvalid Input. Try again.\e[39m\e[49m"
- echo ""
- echo ""
- ;;
- esac
- done
- fi
- if [ "$DIRECTORY" == "TRYAGAIN" ]; then
- #Ask about swap place again
- continue
- fi
- #Setting SWAP size
- while true; do
- echo "Set swap size in MiBits (1 MiBit = 1024 KiBits (IEC), 1MB = 1000KB (Metric)"
- read answer
- re='^[0-9]+$'
- if [[ $answer =~ $re ]] ; then
- break
- else
- echo -ne "\e[31m\e[44Not a number, try again.\e[39m\e[49m"
- echo ""
- echo ""
- continue
- fi
- done
- #Time to create a swap file
- DIRECTORY+="/swap.img"
- dd if=/dev/zero of=$DIRECTORY bs=1M count=$answer > /dev/null 2>&1
- mkswap -L $USER $DIRECTORY > /dev/null 2>&1
- echo "Done"
- echo ""
- break;
- done
- ;;
- # "2) Enable swap file"
- 2)
- while true; do
- if [ "$DIRECTORY" == "" ]; then
- echo "No swap location specified. Enter swap directory or nothing to use current dir"
- read DIRECTORY
- if [ "$DIRECTORY" == "" ]; then
- echo "Using current directory"
- DIRECTORY=$(pwd)
- fi
- if [ ! -d "$DIRECTORY" ]; then
- echo "Directory doesn't exist!"
- echo -ne "\e[31m\e[44Try again.\e[39m\e[49m"
- echo ""
- echo ""
- continue
- fi
- fi
- break
- DIRECTORY+="/swap.img"
- done
- #If swap is active arror will occur. Anyway it's active (enabled).
- swapon $DIRECTORY > /dev/null 2>&1
- echo "Swap enabled"
- echo ""
- ;;
- # "3) Disable swap file"
- 3)
- while true; do
- if [ "$DIRECTORY" == "" ]; then
- echo "No swap location specified. Enter swap directory or nothing to use current dir"
- read DIRECTORY
- if [ "$DIRECTORY" == "" ]; then
- echo "Using current directory"
- DIRECTORY=$(pwd)
- fi
- if [ ! -d "$DIRECTORY" ]; then
- echo "Directory doesn't exist!"
- echo -ne "\e[31m\e[44Try again.\e[39m\e[49m"
- echo ""
- echo ""
- continue
- fi
- fi
- break
- DIRECTORY+="/swap.img"
- done
- #If swap is not active arror will occur. Anyway it's disabled.
- swapoff $DIRECTORY
- echo "Swap disabled" > /dev/null 2>&1
- echo ""
- ;;
- # "4) Delete swap file"
- 4)
- while true; do
- if [ "$DIRECTORY" == "" ]; then
- echo "No swap location specified. Enter swap directory or nothing to use current dir"
- read DIRECTORY
- if [ "$DIRECTORY" == "" ]; then
- echo "Using current directory"
- DIRECTORY=$(pwd)
- fi
- if [ ! -d "$DIRECTORY" ]; then
- echo "Directory doesn't exist!"
- echo -ne "\e[31m\e[44Try again.\e[39m\e[49m"
- echo ""
- continue
- fi
- fi
- break
- DIRECTORY+="/swap.img"
- done
- if [ -f "$DIRECTORY" ]; then
- rm -f $DIRECTORY
- echo "Swap removed"
- else
- echo "No swap file found"
- echo ""
- fi
- ;;
- *)
- echo -ne "\e[31m\e[44mInvalid Input. Try again.\e[39m\e[49m"
- echo ""
- echo ""
- ;;
- esac
- done
- exit 0
Advertisement
Add Comment
Please, Sign In to add comment