Swap
> Adding **swap** to the repo
This commit is contained in:
parent
fff595685f
commit
715940f9e8
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
|
Loading…
x
Reference in New Issue
Block a user