1 检查大小
bash ls -lh /var/log/syslog
检查大小
bash sudo truncate -s 0 /var/log/syslog
清空
2. Systemd定时器用于定时清除/var/log/syslog
1.清除脚本
#!/bin/bash
# 设置文件路径
LOG_FILE="/var/log/syslog"
MAX_SIZE=1073741824 # 1GB = 1073741824 字节
# 获取文件大小
FILE_SIZE=$(stat --format=%s "$LOG_FILE")
# 如果文件大小超过1GB
if [ "$FILE_SIZE" -gt "$MAX_SIZE" ]; then
# 清空日志文件
sudo truncate -s 0 "$LOG_FILE"
echo "clear $LOG_FILE, MAX_SIZE > 1GB"
fi
2.创建服务文件
sudo vi /etc/systemd/system/clear-syslog.service
[Unit]
Description=Clear syslog if it exceeds 1GB
[Service]
Type=oneshot
ExecStart=/home/ido/chenFan/clear_syslog.sh
3.创建定时任务
sudo vi /etc/systemd/system/clear-syslog.timer
[Unit]
Description=Run clear-syslog.service daily
[Timer]
#OnCalendar=*:*:00
OnCalendar=daily
Unit=clear-syslog.service
[Install]
WantedBy=timers.target
OnCalendar=daily
表示每天执行一次。如果需要更频繁的执行,可以使用类似 OnCalendar=hourly 或者设置自定义的时间格式(例如,OnCalendar=--* 00:00:00 每天午夜)。
Unit=clear-syslog.service
表示该定时任务将触发 clear-syslog.service 服务单元。
3. 重新加载 systemd 配置并启动定时器
sudo systemctl daemon-reload
sudo systemctl enable clear-syslog.timer
sudo systemctl start clear-syslog.timer
4. 检查定时器状态
sudo systemctl status clear-syslog.timer
sudo systemctl list-timers
5. 测试
sudo dd if=/dev/urandom of=/var/log/syslog bs=1M count=1024 这个命令会从/dev/urandom生成随机数据并将其写入/var/log/syslog,总量为1GB