Operation not permitted错误通常是因为:+a只可追加属性)# 1. 查看文件的特殊属性
lsattr /var/log/messages
# 2. 如果看到有 'a' 属性(只可追加),需要先移除
chattr -a /var/log/messages
# 3. 清空文件
truncate -s 0 /var/log/messages
# 或者
> /var/log/messages
# 或者
cat /dev/null > /var/log/messages
# 4. 重新设置属性(如果需要)
chattr +a /var/log/messages# 1. 查看当前日志服务
systemctl list-units | grep -E "(log|journal|rsyslog|syslog)"
# 2. 停止相关日志服务(根据实际运行的服务选择)
systemctl stop rsyslog
# 或
systemctl stop syslog-ng
# 或
systemctl stop systemd-journald
# 3. 清空日志文件
truncate -s 0 /var/log/messages
# 4. 重启日志服务
systemctl start rsyslog# 1. 手动执行日志轮转
logrotate -f /etc/logrotate.conf
# 2. 或者针对特定配置
logrotate -f /etc/logrotate.d/syslog
# 3. 检查logrotate配置
cat /etc/logrotate.d/syslog# 1. 清理旧日志
journalctl --vacuum-size=1G
# 2. 查看当前日志占用
journalctl --disk-usage
# 3. 设置日志大小限制
journalctl --vacuum-size=2G# 1. 使用echo清空
echo -n > /var/log/messages
# 2. 或者通过/dev/null复制
cp /dev/null /var/log/messages# 查看当前logrotate配置
cat /etc/logrotate.d/syslog
# 如果没有配置,创建/编辑配置
vim /etc/logrotate.d/cloudos/var/log/messages
/var/log/syslog
/var/log/secure
/var/log/maillog
/var/log/cron
{
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 0640 root adm
sharedscripts
postrotate
systemctl restart rsyslog >/dev/null 2>&1 || true
endscript
}# 编辑journal配置
vim /etc/systemd/journald.conf
# 修改以下参数
SystemMaxUse=2G
RuntimeMaxUse=500M
MaxRetentiOnSec=1month#!/bin/bash
# cleanup_logs.sh
echo "开始清理系统日志..."
# 1. 停止日志服务
systemctl stop rsyslog 2>/dev/null || systemctl stop syslog-ng 2>/dev/null
# 2. 备份重要日志(可选)
# tar -czf /tmp/logs_backup_$(date +%Y%m%d_%H%M%S).tar.gz /var/log/*.log 2>/dev/null
# 3. 清空大日志文件
for logfile in /var/log/messages /var/log/syslog /var/log/secure /var/log/kern.log; do
if [ -f "$logfile" ]; then
echo "清理 $logfile"
truncate -s 0 "$logfile"
fi
done
# 4. 清理旧压缩日志
find /var/log -name "*.gz" -type f -mtime +30 -delete
find /var/log -name "*.1" -type f -mtime +7 -delete
find /var/log -name "*.2" -type f -mtime +7 -delete
# 5. 重启日志服务
systemctl start rsyslog 2>/dev/null || systemctl start syslog-ng 2>/dev/null
# 6. 清理journal日志
journalctl --vacuum-time=7d
journalctl --vacuum-size=500M
echo "日志清理完成!"
echo "当前磁盘使用情况:"
df -h /var/log# 添加定时任务
crontab -e
# 添加以下行(每周日凌晨2点执行清理)
0 2 * * 0 /usr/bin/find /var/log -name "*.log" -type f -size +100M -exec truncate -s 0 {} \;
0 2 * * 0 systemctl restart rsyslog
# 或者
0 2 * * 0 /path/to/cleanup_logs.sh# 1. 查看磁盘占用
df -h
du -sh /var/log/* | sort -rh | head -20
# 2. 查找大文件
find /var/log -type f -size +100M -exec ls -lh {} \;
# 3. 如果日志服务无法停止,尝试删除文件
# 注意:删除可能导致当前日志丢失
mv /var/log/messages /var/log/messages.old
touch /var/log/messages
systemctl restart rsyslog
rm -f /var/log/messages.old
# 4. 清理系统缓存
sync; echo 3 > /proc/sys/vm/drop_caches# 查看可用分区
lsblk
df -h# 设置日志转发到远程syslog服务器
vim /etc/rsyslog.conf
# 添加
*.* @remote-syslog-server:514cp /var/log/messages /var/log/messages.bak.$(date +%Y%m%d)# 查看哪个进程在大量写日志
lsof | grep /var/log/messages
# 监控实时日志增长
tail -f /var/log/messages# 检查文件系统
dmesg | grep -i error
# 重启服务器(最后手段)
rebootlsattr和 chattr -atruncate命令# 1. 系统信息
uname -a
cat /etc/os-release
# 2. 日志服务状态
systemctl status rsyslog
systemctl status systemd-journald
# 3. 文件属性
lsattr /var/log/messages
ls -la /var/log/messages
根据您提供的日志分析及CloudOS故障处理手册,清理 /var/log/messages 日志时报错
Operation not permitted 的解决步骤如下:
原因分析:
日志文件 messages 被设置了 a(append-only) 隐藏属性,此属性禁止删除或覆盖文件内容,仅允许追加写入(常见于系统关键日志)。
解决方法:
需临时移除 a 属性,清空文件后再恢复属性:
1. 查看文件隐藏属性(确认是否有 'a' 标志)
lsattr /var/log/messages
2. 移除 'a' 属性
chattr -a /var/log/messages
3. 安全清空文件(保留文件结构)
truncate -s 0 /var/log/messages 或使用:cat /dev/null >
/var/log/messages
4. 恢复 'a' 属性(确保日志继续受保护)
chattr +a /var/log/messages
关键说明:
1. lsattr 检查:
若输出包含 --a-,则确认 a 属性存在(如手册示例)。
2. truncate 优势:
比 > 操作更安全,避免因权限问题导致失败。
3. 清空后日志增长:
清空后若文件快速增大属正常现象(日志服务持续写入),不影响操作有效性。
预防建议(可选):
日志轮转配置:
检查 /etc/logrotate.conf 是否启用 messages 的定期轮转压缩,避免长期堆积。
空间监控:
使用巡检脚本监控 /var/log 分区,例如:
df -h /var/log | awk 'NR==2 {if ($5 > 80) print
"WARNING: Log partition over 80%"}'
> 注意:若操作后问题仍存在,请检查SELinux状态(getenforce)或联系H3C技术支持400-810-0504。
暂无评论
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论