We have an apache server running on linux writing to a log file that is getting really large (access_log). Our server will begin running out of space. Is there a way to delete or truncate the file without restarting the server (we don't want any down time).
Linux – way to delete/truncate a file while a process is writing to it
apache-2.2filesystemslinux
Related Topic
- Linux – How to find out the log file name that a currently running process is writing to
- Linux Web Server – Proper Permissions for Website Files and Folders
- Linux server out of space
- Find which files an apache process is writing to
- Linux – Deleting very large file without webserver freezing
- How to Extend an Ext4 Partition and Filesystem
Best Answer
How to reset your log files
Sooner or later, you'll want to reset your log files (
access_log
anderror_log
) because they are too big, or full of old information you don't need.access_log
typically grows by 1Mb for each 10,000 requests.Most people's first attempt at replacing the logfile is to just move the logfile or remove the logfile. This doesn't work.
Apache will continue writing to the logfile at the same offset as before the logfile moved. This results in a new logfile being created which is just as big as the old one, but it now contains thousands (or millions) of null characters.
The correct procedure is to move the logfile, then signal Apache to tell it to reopen the logfiles.
Apache is signaled using the SIGHUP (-1) signal. e.g.
Note:
httpd.pid
is a file containing the process id of the Apache httpd daemon, Apache saves this in the same directory as the log files.Many people use this method to replace (and backup) their logfiles on a nightly or weekly basis.
http://httpd.apache.org/docs/1.3/misc/howto.html#logreset