WalzoneInterview Prep
📞 Interviewing soon? Practice with a realistic AI mock phone interview — it calls you, then scores you. First 15 min FREE →

Linux · Advanced · question 58 of 100

How do you set up and manage log rotation in Linux, and what tools would you use for this purpose?

📕 Buy this interview preparation book: 100 Linux questions & answers — PDF + EPUB for $5

In Linux, log files are generated by various processes and services to record events and system activities. Over time, these log files can become quite large and consume a significant amount of disk space. Log rotation is the process of automatically managing log files by archiving and deleting them on a scheduled basis, thus preventing them from taking up too much disk space.

There are several tools that can be used to set up and manage log rotation in Linux, including logrotate and rsyslog.

Logrotate is a command-line tool that is widely used in Linux distributions. It works by examining a set of configuration files located in the /etc/logrotate.d directory, which specify which log files to rotate and how to rotate them. The configuration files can be customized to specify the rotation frequency, the number of rotated logs to keep, and other parameters. Here’s an example configuration file for logrotate:

    
    /var/log/myapp.log {
        weekly
        rotate 4
        compress
        delaycompress
        missingok
        notifempty
        create 0644 root root
    }

This configuration tells logrotate to rotate the file /var/log/myapp.log on a weekly basis, keeping up to four rotated logs. The logs are compressed using gzip and delayed compression is used to avoid compressing the latest log file immediately. The missingok option allows logrotate to continue even if the log file is missing, while the notifempty option prevents logrotate from rotating empty log files. Finally, the create option specifies the ownership and permissions of the newly created log file.

Rsyslog is another popular logging tool in Linux that provides more advanced features such as filtering, forwarding, and real-time processing. It also includes built-in log rotation capabilities that can be configured using the rsyslog.conf file located in the /etc directory. Here’s an example configuration for rsyslog:

    $ModLoad imfile
    
    $InputFileName /var/log/myapp.log
    $InputFileTag myapp:
    $InputFileStateFile myapp-state
    $InputFileSeverity info
    $InputFileFacility local6
    $InputRunFileMonitor
    
    local6.* /var/log/myapp.log

This configuration tells rsyslog to monitor the file /var/log/myapp.log and tag each log entry with "myapp:". The severity level is set to "info" and the facility is set to "local6". The $InputRunFileMonitor option tells rsyslog to start monitoring the file, and the last line specifies that all log entries with the "local6" facility should be logged to the file /var/log/myapp.log.

In summary, log rotation is an essential task for managing log files in Linux, and there are several tools available to help automate this process. Both logrotate and rsyslog provide customizable options for rotating logs and managing disk space, depending on the needs of the system administrator.

Reading is step one. Saying it out loud is the interview. Our AI interviewer calls your phone and runs a realistic Linux interview — then scores it.
📞 Practice Linux — free 15 min
📕 Buy this interview preparation book: 100 Linux questions & answers — PDF + EPUB for $5

All 100 Linux questions · All topics