My server was clogged up and had no space.

At first, I thought there was something wrong with my api code, as I was unable to make requests and kept recieving 500 errors from nginx.

Upon further investagion, my /tmp file was absolutely full (Bare in mind I am using a $5 Digital ocean droplet). I learnt that linux servers clears the /tmp folder upon restart, however my api needs to handle large files constantly. And restarting my server contstantly was not an option.

After some research, I found out that there was linux package called tmpreaper, which helps clear folders with files which are older than a specified time. For example:

tmpreaper 1d /tmp

This will clear all files within the /tmp folder which is a day old.

By default, tmpreaper adds a daily cron job which will clear all temporary files within the /tmp folder everyday. For my instance, this was not sufficient, I would need files removed that 3-5 minutes old (I wouldn’t need these files after that).

In order to do this, I need to create a bash script:

#! /bin/bash
tmpreaper 3m /tmp

Then, after running crontab -e, I added a job to execute this:

* * * * * bash /path/to/script.sh

Note: It’s important to make sure your bash scripts are executable using the following command:

chmod +x /path/to/script.sh

Now, my temporary folder is always cleared ready for new content.

I hope this helps.