1。 修改 “/etc/logrotate.d/rsyslog”
 (解决权限问题和添加大小限制)
 添加:su root syslog
 和
 size <最大的size>
 例如 200M
/var/log/syslog
{su root syslogrotate 7dailymissingoknotifemptydelaycompresscompresssize 500Kpostrotate/usr/lib/rsyslog/rsyslog-rotateendscript
}
2。 修改 /etc/crontab
添加:
*/2  *    * * *   root  logrotate /etc/logrotate.d/rsyslog
如上为两分钟,轮询一次。每20分钟一次为:
*/20  *    * * *   root  logrotate /etc/logrotate.d/rsyslog
每分钟一次为
*  *    * * *   root  logrotate /etc/logrotate.d/rsyslog
3。 改完后,需要更改相对应的服务
 systemctl restart cron
 sudo service logrotate restart
4。如何调试
 (1)编写一个一直向syslog中写入信息的脚本
 #root@localhost:~# cat ./pushsys.sh
#!/bin/bash# Initialize sequence number
seq_number=1# Log messages cyclically
while true; do# Log message with sequence numberlogger "[$seq_number] Cyclic log message. $(date)"# Increment the sequence number((seq_number++))#sleep 1  # Sleep for 1 second before the next iteration
done(2) 编写一个cron的脚本
 cat /home/cron_check.sh
#!/bin/bash# Specify the file path
file_path="/home/cron_check.txt"# Touch the file if it doesn't exist
touch "$file_path"# Append the current date and time to the file
echo "$(date) - Cron job called" >> "$file_path"logrotate -v /etc/logrotate.d/rsyslog >> "$file_path" 2>&1
(3) 在crontab中添加
*  *    * * *   root /home/cron_check.sh
(4) 重启两个服务
 systemctl restart cron
sudo service logrotate restart
 (5)启动 /home/pushsys.sh
 (6)启动查看log
 tail -f /home/check_cron.txt
 (7) 在 /var/log目录,不断执行 ls -l , 查看变更情况
5。 总结
 (1)su root syslog
 (2)size 1M
 (3)网上说的增加一个minutely的方式,看来是不能成功的。应该改成自己写的脚本。
 (4)如果要变更syslog的路径,则两个文件都需要变更
 “/etc/logrotate.d/rsyslog”
 /etc/rsyslog.d/50-default.conf
 (5)重点是学会如何调试logrotate的服务
 (6)因为我也没有完全搞清楚,所以,文章中没有说,但实际上,一半的时间还是花在权限上。linux体系对syslog的权限做了特殊的处理。倒不是有多少高深的技术,主要是管理思想。基本的思想是,syslog由syslog用户来控制。这个用户在adm组中。要注意root并不在这个组中。而且,人家也不建议将root放到adm组中。相当于记log的要有独立性。root用户在这里,也是一个普通的用户。
 所以,即使你将syslog和其parent目录,设置为root可以操作,重启之后,还是会被刷回来,然后你就能看到一长串错误。
 所以,有第一条:su root syslog,意思是建一个临时的session,将root用户加入到syslog组中,执行。
 当然,是不是/etc/logrotate.conf 中那一段,就是为了确保每次重启,syslog和syslog的parent都被重刷成syslog的用户作为owner,我没有进一步试。
 另外,即使,你将syslog,设置到别的目录,别的名字,也没有用的,操作系统还是会将之权限刷回去(重启之后)。