Table of Contents
The system’s root partition (also known as / or slash) is the partition where the operating system’s base is installed.
Every other user files should be located in a sub-directory of /home.
When the root partition is near or reach its maximum capacity it can translate into an array of hard to diagnose problems on your server.
- The system is unstable
- Apache cannot be restarted
- Email server cannot fetch emails
- Impossible to install new software or updates
With a simple SSH command:
df -h Filesystem Size Used Avail Use% Mounted on /dev/hda1 1.9G 981M 887M 53% / /dev/hda2 34G 3.8G 29G 12% /home none 61M 0 61M 0% /dev/shm
Or if you are using Webmin:
- With SSL: https://nsXXXXXXX.ip-XXX-XXX-XXX.net:10000/fdisk/
- Without SSL: http://nsXXXXXXX.ip-XXX-XXX-XXX.net:10000/fdisk/
You must replace nsXXXXXXX.ip-XXX-XXX-XXX.net with the hostname of your server.
They are many:
- Backup of your sites in a directory other than a /home sub-directory;
- Big archives extracted in the /root directory;
- Setup of massive software (for example online game server) in a directory belonging to the system partition (for example /usr),
- Bug of mod_gzip;
- Overflow of the email queue
- Old logs piled up
For the first two cases, you just need to move the files/directories in a /home sub-directory.
First we need to find large files that need to be moved elsewhere. For this you can use the command du.
Here’s some examples of how du can be used:
ls a.log b.log c.log d.log
du 3411980 .
du -chs 3.3G . 3.3G total
du -chs * 2.0M a.log 30M b.log 301M c.log 3.0G d.log 3.3G total
To find the five most massive files in a directory, you can execute the following command:
ls -lh --sort=size | head -n 5 total 20M -rw-r--r-- 1 root root 2.6M may 1 18:00 vim-common-6.1-18.7x.2.i386.rpm -rw-r--r-- 1 root root 2.5M jui 22 10:15 mutt-1.4.1-1.src.rpm -rw-r--r-- 1 root root 2.5M jui 22 10:33 mutt-1.4.1i-2mdk.src.rpm -rw-r--r-- 1 root root 1.7M apr 9 2003 bind-9.2.1-1.7x.2.i386.rpm -rw-r--r-- 1 root root 1.5M jui 18 14:25 tin-current.tar.gz
Here, we note that:
There is a 20MB file in this directory (the sub directories are not taken into account) The more massive file is vim-common-6.1-18.7x.2.i386.rpm: its size is 2.6MB
To solve the problem, we are going to place the bulky files in a directory on /home.
Visibly, these are .rpm and .tar.gz (softwares archives). You are not obliged to keep them in /root. Therefore, we are going to creae a directory on /home to store them.
mkdir /home/archives mv *.tar.gz *.rpm /home/archives
For example, you have installed a HLDS server (Half-Life Dedicated Server) in /usr/local/game/hlds. This directory is on the system partition, thus you have to move it on /home and create a symbolic link in order the path to remain valid.
Make sure you stop the HLDS server before the operation!
mv /usr/local/game/hlds /home/ ln -s /home/hlds /usr/local/game/hlds
It may happen that mod_gzip doesn’t delete its temporary files located in /tmp and that they reach an important size (several GB). To realise it:
ls -l /tmp/*.wrk -rwx------ 1 nobody nobody 53695415 sep 30 00:10 _11831_132_33.wrk -rwx------ 1 nobody nobody 0 sep 3 00:10 _12954_120_21.wrk -rwx------ 1 nobody nobody 0 sep 7 00:10 _14733_110_11.wrk -rwx------ 1 nobody nobody 0 sep 21 00:10 _16191_106_7.wrk -rwx------ 1 nobody nobody 0 aoû 19 00:10 _16585_123_24.wrk -rwx------ 1 nobody nobody 0 aoû 25 00:10 _16693_152_53.wrk -rwx------ 1 nobody nobody 0 oct 5 00:10 _17282_110_11.wrk -rwx------ 1 nobody nobody 0 sep 14 00:10 _17792_106_7.wrk -rwx------ 1 nobody nobody 0 oct 7 00:10 _18056_108_9.wrk
To delete them:
rm -rf /tmp/*.wrk
This bug is known but its origin is not. For the moment, the only one solution to avoid it is to deactivate mod_gzip in httpd.conf. Look for mod_gzip yes line and replace it by mod_gzip no. Then restart Apache that way:
This bug only occurs for some site (probably due to a PHP or CGI script).