一、故障描述
统信UOS终端登录图形界面(即下图),输入正确的域用户名和密码,无法正常登录。即使使用本地用户也无法登录,点击登录后自动退回到登录界面。
因域管环境下统信UOS禁用了本地root用户,统信技术支持建议恢复系统解决,但是恢复系统后,需要重新配置各种软件程序,且该问题发生频率较高,恢复系统费时费力。
经过我公司技术专家的反复诊断研究,发现该问题是由于日志文件过大导致,可以通过单用户登录,清空文件内容的方式解决问题。
二、故障分析
在统信UOS系统长期运行中,有程序报错,持续写系统日志,输出的错误信息过于频繁,这导致日志文件疯狂增长,最终致使根目录空间被占满,系统没有剩余空间,用户无法登录。
三、故障解决
进入到单用户模式,将日志文件清空。
1)在开机grub菜单处,按方向“↓”键,将光标定位至Uniontech OS Backup & Restore菜单;
2)按下E键进入grub菜单编辑模式;
3) splash quite修改为systemd.unit=multi-user.target,然后按CTRL+X进入到单用户模式;
4)查找大日志文件:
a.输入sudo -s切换到root用户;
b.输入fdisk -l 查看磁盘分区,发现sda5分区50G;
c.查找挂载根分区;
使用命令将sda5分区挂载到/mnt目录上,并确认/mnt下有var、lib、usr目录,则可以确认sda5是根分区,如没有则需要尝试其他分区。
mount /dev/sda5 /mnt
ls -l /mnt
输入df -h查看文件系统使用情况。
d. 查找/mnt目录下的大目录;
使用如下命令:
du --max-depth=1 -BM /mnt/ | sort -nk1
输出结果显示/mnt/var目录很大,查找/mnt/var目录下的大于5G的文件。
cd /mnt/var
du --max-depth=1 -BM /mnt/var | sort -nk1
输出结果显示/mnt/var/log目录很大,查找/mnt/var/log下面大于5G的文件。
du -sh /mnt/var/log/*;
注意:kern.log.1这个文件超过了5G,已经达到41G。
使用命令将查找到的大于5G的日志文件清空(文件名以find输出的大文件为准)。
truncate -s 0 /mnt/var/log/<日志文件名>
使用df -h命令查看空间被释放情况,如下图。
e. 输入reboot命令重新启动机器可以正常登录国产统信UOS系统。
四、经验总结
1、当出现统信UOS因文件系统占满,导致用户无法登录,且有重要文件,不能重置系统的情况时,可以使用此方法进行解决;
2、用户每次登录域用户后,会拉取域管平台内的基线检查脚本。可追加如下命令到基线检查脚本中,在每次登录后自动清空日志文件,以避免此类问题发生;
find /var/log -type f -name \*.log -size +5G -exec truncate -s 0 {}\;
3、若无法控制基线检查脚本,也可通过域管平台下发脚本功能,将如下命令下发到终端,修改计划任务以进行避免。
#/bin/bash
set -x
cat << EOF >> /var/spool/cron/crontabs/root
0 9 */1 * * find /var/log -type f -name \*.log -size +5G -exec truncate -s 0 {}\;
EOF
如欲了解更多,请登录安图特官方网站:www.antute.com.cn