Laravel Forge server with a huge /var/spool/mqueue-client folder size
Published 15 March 2021 08:15 (2-minute read)
When you have provisioned your server using Laravel Forge (or Ploi) and are running cronjobs on it, it could be that your /var/spool/mqueue-client folder contains a lot of files. In my case, the server had around 4GB of files in that folder.
Note: this doesn't mean it is by every server, but some had multiple cron-schedules. That's the reason why it could be that many files in the folder.
What is mqueue-client?
The /var/spool/mqueue directory contains temporary files associated with the messages in the mail queue and may contain the log file.
https://sites.ualberta.ca/dept/chemeng/AIX-43/share/man/info/C/a_doc_lib/files/aixfiles/mqueue.htm
How big is your folder?
To see how big your folder is, you can run the following command:
du -sh /var/spool/mqueue-client
In my case, the folder was around 4GB:
forge@my-server:/var/spool/mqueue-client# du -sh /var/spool/mqueue-client/
4.3G /var/spool/mqueue-client/
How to clear it?
You can use a command, like rm, to remove the files:
rm /var/spool/mqueue-client/*
But when there are too many files in it, you could get an error like:
-bash: /bin/rm: Argument list too long
This folder can be huge. To clear it, you could use a script like:
#!/usr/bin/env bash
cd /var/spool/mqueue-client
echo "Starting..."
echo "Checking the amount of files in the folder..."
deleted=0
totalFiles=$(ls | wc -l)
echo "Found $totalFiles, time to delete..."
for i in `ls`
do
rm -f $i
percentage=$(bc <<< "scale=2; ($deleted / $totalFiles) * 100")
((deleted++))
echo "Deleted $i. Files deleted $deleted / $totalFiles. $percentage% complete."
done
It will log all deleted files; this could take a while:
...
Deleted df12A8K182014661. Files deleted 491. 0% complete.
Deleted df12A8K183014661. Files deleted 492. 0% complete.
Deleted df12A8K184014661. Files deleted 493. 0% complete.
Deleted df12A8K185014661. Files deleted 494. 0% complete.
Deleted df12A8K186014661. Files deleted 495. 0% complete.
Deleted df12A8K187014661. Files deleted 496. 0% complete.
Deleted df12A8K188014661. Files deleted 497. 0% complete.
Deleted df12A8K189014661. Files deleted 498. 0% complete.
...
Source: https://serverfault.com/a/593953
How to prevent it?
You can disable the emails by setting the output of a cronjob to "/dev/null".
For example:
0 1 5 10 * /path/to/script.sh > /dev/null
It's also possible to add an extra variable to your crontab configuration:
MAILTO=""