Scenario: The server is running Apache and by mistake one of the log files gets deleted. How, we can recover it?
Currently, Apache server is working perfectly:
Login/Switch to as root user:
Move to the httpd in log directory:
Delete the log file:
rm -f access_log
So the log file has been deleted,now find the process number for main apache procees that owned by root:
ps aux | grep httpd
In this case, the pid for the main apache process is 1784.
Now lets list the file descriptors:
ls -lsa /proc/1784/fd
Stop the apache service:
service httpd stop
Now copy the access log file that is marked as deleted (In this case it is 7) into the log directory:
cp /proc/1784/fd/7 /var/log/httpd/access_log
Start the apache service again:
service httpd start
Access the webpage again from your server:
Verify the log file:
tail -f /var/log/httpd/access_log
Hope this will help you!