Swap
> Adding **swap** to the repo
This commit is contained in:
		
							
								
								
									
										92
									
								
								swap/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								swap/README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,92 @@ | ||||
| <h1 align="center">Swap</h1> | ||||
|  | ||||
| <p align="center"> | ||||
|     A bash script that will kill the <strong>swap file</strong>, wait for the swap to flush.<br/> | ||||
|     Then bring the <strong>swap file</strong> back up. | ||||
| </p> | ||||
|  | ||||
| ## Folder Structure | ||||
|  | ||||
| If you have not done so already, create a new folder called `scripts` in your **~home** folder. This is where all your scripts will go. | ||||
|  | ||||
| Inside your `scripts` folder create a new folder called `swap` | ||||
|  | ||||
| When done your folders structure should look like this: `/home/[USERNAME]/scripts/swap` | ||||
|  | ||||
| ## Set Up | ||||
|  | ||||
| The script will need elevated permissions in order to execute with out human intervention. To do so we need to make some changes to the `sudoers` file. | ||||
|  | ||||
| Here is how you do it: | ||||
|  | ||||
| 1. Open terminal, type: `sudo visudo` to open the file. | ||||
|  | ||||
| 2. Add these commands to second to last section. | ||||
|     | ||||
|    ```bash | ||||
|    # | ||||
|    # Locations to swap files. | ||||
|    # Change [USERNAME] to your own | ||||
|    # | ||||
|    ALL     ALL =(ALL) NOPASSWD: /home/[USERNAME]/scripts/swap.sh | ||||
|    ALL     ALL =(ALL) NOPASSWD: /home/[USERNAME]/Desktop/swap.sh | ||||
|    ``` | ||||
|  | ||||
| 3. Exit and Save file.  | ||||
|     | ||||
|    * `CTRL + X` to exit file | ||||
|    * `Y` to save file | ||||
|    * `ENTER` to write file | ||||
|  | ||||
| ## Script | ||||
|  | ||||
| ### **`swap.sh`** | ||||
|  | ||||
| Get the source code from this repo and save it as `swap.sh` in the **swap** folder created in the previous step. | ||||
| Next we need to change the permissions of this file so that the server can read it. | ||||
|  | ||||
| 1. Right click on `swap.sh` then Properties. | ||||
|  | ||||
| 2. Click on `Permissions` tab at top. | ||||
|  | ||||
| 3. Make sure Owner & Group reflect your `username` with `Read and Write` access to all. | ||||
|  | ||||
| 4. Check the `Execute` box to allow executing the file as a program. | ||||
|  | ||||
| 5. Close out the window. | ||||
|  | ||||
| ### **`swap.desktop`** | ||||
|  | ||||
| Now we need to make the `swap.sh` script act like a regular application. Here is how you do it: | ||||
|  | ||||
| Get the source code from this repo and save it as `swap.desktop` in the **swap** folder created in the previous step. | ||||
|  | ||||
| Next we need to change the permissions of this file so that the server can read it. | ||||
|  | ||||
| 1. Right click on `swap.desktop` then Properties. | ||||
|  | ||||
| 2. Click on `Permissions` tab at top. | ||||
|  | ||||
| 3. Make sure Owner & Group reflect your `username` with `Read and Write` access to all. | ||||
|  | ||||
| 4. Check the `Execute` box to allow executing the file as a program. | ||||
|  | ||||
| 5. Close out the window. | ||||
|  | ||||
| ## Link | ||||
|  | ||||
| We now can create a link to this new application and put it anywhere we want. Here is how you do it: | ||||
|  | ||||
| 1. Single click on the new **swap** application. It should be activated and indicated by changing to a new color. | ||||
|  | ||||
| 2. While **swap** is activated/highlighted, go to `Edit` > `Make Link` | ||||
|  | ||||
| You should now see a new icon with an arrow on it. That is your new link that you can then place on your desktop. Thats where mine is. | ||||
|  | ||||
| ## Execute | ||||
|  | ||||
| If you placed your linked file on the desktop all you have to do is **double click** the icon and the script will will call and execute `swap.sh`. | ||||
|  | ||||
| The script will open a terminal and print out each step. While the script is running, (if you have **System Monitor** open) you will see the Swap line spike for a few seconds. Then it will die out. Once its dead the script waits 30 seconds for everything to flush out the system and then the script will enable **swap**. | ||||
|  | ||||
| At this point swap should be at zero or super low, basically how it would be after a full system reboot. | ||||
							
								
								
									
										16
									
								
								swap/swap.desktop
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								swap/swap.desktop
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | ||||
| # | ||||
| # Change [USERNAME] to your own name.  | ||||
| # | ||||
| # | ||||
|  | ||||
| [Desktop Entry] | ||||
| Name=Swap | ||||
| Comment=clear the swap memory. | ||||
|  | ||||
| # This version will prompt user to close window | ||||
| #Exec=gnome-terminal -- bash -c '/home/[USERNAME]/scripts/swap/swap.sh; read -p "Press enter to close..."' | ||||
| Exec=gnome-terminal -- bash -c '/home/[USERNAME]/scripts/swap/swap.sh' | ||||
|  | ||||
| Icon=bash | ||||
| Terminal=false | ||||
| Type=Application | ||||
							
								
								
									
										19
									
								
								swap/swap.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										19
									
								
								swap/swap.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,19 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| # Turn off swap | ||||
| echo "Executing swapoff..." | ||||
| sudo /sbin/swapoff -a | ||||
|  | ||||
| # Wait until swap is fully off | ||||
| while [ $(free | grep Swap | awk '{print $3}') -gt 0 ]; do | ||||
|     echo "Waiting for swapoff to complete..." | ||||
|     sleep 5 | ||||
| done | ||||
|  | ||||
| # Wait an additional 30 seconds | ||||
| echo "Swapoff completed. Waiting for 30 seconds..." | ||||
| sleep 30 | ||||
|  | ||||
| # Turn swap back on | ||||
| echo "Executing swapon..." | ||||
| sudo /sbin/swapon -a | ||||
		Reference in New Issue
	
	Block a user