The main aim here is to use a technique that will not slow down the system while removing a huge file, resulting in reasonable I/O. We can achieve this using the ionice command.
ionice is a useful program which sets or gets the I/O scheduling class and priority for another program. If no arguments or just -p is given, ionice will query the current I/O scheduling class and priority for that process.
If we give a command name such as rm command, it will run this command with the given arguments. To specify the process IDs of running processes for which to get or set the scheduling parameters, run this:
# ionice -p PID
To specify the name or number of the scheduling class to use (0 for none, 1 for real time, 2 for best-effort, 3 for idle) the command below.
This means that rm will belong to idle I/O class and only uses I/O when any other process does not need it:
---- Deleting Huge Files in Linux ----- # ionice -c 3 rm /var/logs/syslog # ionice -c 3 rm -rf /var/log/apache
If there won’t be much idle time on the system, then we may want to use the best-effort scheduling class and set a low priority like this:
# ionice -c 2 -n 6 rm /var/logs/syslog # ionice -c 2 -n 6 rm -rf /var/log/apache
Note: To delete huge files using a secure method, we may use the shred, wipe and various tools in the secure-deletion toolkit mentioned earlier on, instead of rm command.
For more info, look through the ionice man page:
# man ionice