Split logs automatically every day

最初发布于 blog.hackerpie.com

Related resource(s):

“linuxcommand: logrotate”:http://linuxcommand.org/man\_pages/logrotate8.html logrotate is designed to ease administration of systems that generate large numbers of log files. Normally, logrotate is run as a daily cron job.

Some important knowledges:

  • Any number of config files may be given. Later config files may override the options given in earlier files, so the order in which the logrotate config files are listed in is important. Normally, a single config file which includes any other config files which are needed should be used. If a directory is given, every file in that directory is used as a config file.
  • Default config file: /etc/logrotate.conf. You can include other config files within it using include directive.


  1. Your site is example.com
  2. The site is located in /var/www/example/
  3. Your site is deployed by Capistrano, so you can find your logs in /var/www/example/shared/log/
  4. Your static contents server is Nginx , and its logs are located in /var/www/example/shared/log/ and their names start with nginx_

How to do

1. Login your server

2. Make sure that “include /etc/logrotate.d” is existed in default config file and not commented:

You should be able to find the directive shown below, if not, append it manully.

3.Create new logrotate config files for your site’s logs

A. Create new rotate config file for application log:

Type following contents, and save.

B. Create new rotate config file for server log:

Type following contents, and save.

Attention: /var/run/nginx.pid is your nginx pid file path, but someone may use default nginx pid path( /opt/nginx/logs/nginx.pid ). You have two solutions to solve this conflict:

A. Change /var/run/nginx.pid to /opt/nginx/logs/nginx.pid or other path you have defined in your nginx config file. B. Set your “pid” directive to expected path:

pid /var/run/nginx.pid;

in your nginx config file(such as, /opt/nginx/conf/nginx.conf), and then restart your server.

If the above work are all finished, everything done! You should remember to check if everything runs normally at other days.

社区准则 博客 联系 反馈 状态