


Methods and steps for implementing log rotation using Systemd and Crontab in Linux
Sep 26, 2023 pm 07:04 PMTitle: Methods and steps to implement log rotation using Systemd and Crontab in Linux
Text:
In the Linux system, the log file records Important events and error information that occur in the system, log files will become larger and larger as time goes by, not only occupying hard disk space, but also making it difficult to view the logs. In order to solve this problem, we can use Systemd and Crontab to implement log rotation, that is, regularly back up and archive log files. This article will introduce how to use Systemd and Crontab to implement log rotation methods and steps, and provide specific code examples.
1. Use Systemd to implement log rotation
- Create a log rotation configuration file
First, we need to create a Systemd log rotation configuration file. Enter the following command in the terminal to create a configuration file named "myapp-logrotate.conf":
sudo nano /etc/systemd/journald.conf.d/myapp-logrotate.conf
Add the following content in the configuration file:
[Journal] Storage=persistent MaxFileSec=1month
Among them, "Storage The "parameter specifies the storage method of the log file. "persistent" means that the log file will be persisted on the disk. The "MaxFileSec" parameter specifies the retention time of log files, which is set to 1 month here.
Save and exit the configuration file.
- Restart Systemd log service
Enter the following command in the terminal to restart Systemd log service:
sudo systemctl restart systemd-journald.service
Now, Systemd will rotate logs according to the settings in the configuration file document.
2. Use Crontab to implement log rotation
- Create a log rotation script
Next, we need to create a Crontab log rotation script. Enter the following command in the terminal to create a script file named "logrotate-script.sh":
sudo nano /usr/local/bin/logrotate-script.sh
Paste the following code into the script file:
#!/bin/bash # 日志文件路径 logfile="/var/log/myapp/myapp.log" # 归档目录路径 archive_dir="/var/log/myapp/archive" # 归档文件名 archive_file="myapp_$(date +'%Y%m%d%H%M%S').log" # 压缩归档文件 tar -czvf $archive_dir/$archive_file $logfile # 清空日志文件 > $logfile
Save and exit script file.
- Grant script execution permission
Enter the following command in the terminal to grant script execution permission:
sudo chmod +x /usr/local/bin/logrotate-script.sh
- Create Crontab task
Finally, we A Crontab task needs to be created to execute the log rotation script regularly. Enter the following command in the terminal to edit Crontab:
crontab -e
Add the following content in the Crontab file:
# 每天的凌晨0点执行日志轮转脚本 0 0 * * * /usr/local/bin/logrotate-script.sh
Save and exit the Crontab file.
Now, Crontab will execute the log rotation script at 0 am every day to archive and clear the log files.
Summary:
Through the above methods and steps, we can use Systemd and Crontab to implement log rotation. Use Systemd to set the retention time of log files, and use Crontab to regularly execute log rotation scripts to archive and clear log files. Through reasonable configuration and use, we can effectively manage and maintain system log files.
The above is the detailed content of Methods and steps for implementing log rotation using Systemd and Crontab in Linux. For more information, please follow other related articles on the PHP Chinese website!

Hot Article

Hot tools Tags

Hot Article

Hot Article Tags

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Do you know some reasons why crontab scheduled tasks are not executed?

In-depth understanding of log4j configuration: implementing log rotation and backup strategies

How to use Systemd and Crontab to implement parallel execution of tasks in Linux systems

How to solve the pitfalls of commenting crontab files and crontab executing sh in Linux

How to compile Mysql5.7.11 through Systemd

How to use Systemd and Crontab to set the priority of scheduled tasks in Linux system

How to automatically restart applications in Linux using Systemd and Crontab
