脚本开始抛出与无法初始化 I/O 插件 sudoers_io: (amazon linux) 相关的错误。
我无法删除一些日志,因为每次使用 sudo 命令时,它都无法记录我使用该命令的情况(我在这里猜测)。关于如何释放空间或删除/旋转日志有什么想法吗?
输出如下:
[ec2-user@ip-xx-xx-xx-xx log]$ sudo bash
sudo: unable to mkdir /var/log/sudo-io/00/2A: No space left on device
sudo: error initializing I/O plugin sudoers_io
[ec2-user@ip-xx-xx-xx-xx log]$ du -s * | sort -nr | head
du: cannot read directory ‘audit’: Permission denied
du: cannot read directory ‘sudo-io’: Permission denied
16092 secure
2188 secure-20180401
640 messages-20180325
640 messages-20180318
636 messages-20180401
636 messages-20180311
196 cloud-init.log
160 wtmp
132 messages
104 dracut.log
答案1
您显然已经在 sudo(ers) 中启用了完整的输出日志记录。
释放空间的最简单方法(可能是删除日志sudo
)是记录为root
或使用su
,如果您的配置允许的话。
根据/var/log
已满的程度,这些程序可能会成功,也可能不会成功。在最坏的情况下,以单一模式或从实时系统启动将允许您清理所有内容。
除非您有非常具体的需要记录如此多的sudo
操作,否则我会编辑/etc/sudoers
以更改日志记录设置。如此冗长的设置将再次快速耗尽可用空间。
答案2
您遇到的可能只是 sudoers 文件配置错误的症状。
如果您tail /var/log/sudo.log
始终看到相同的命令,则应该添加 sudo options NOLOG_INPUT: NOLOG_OUTPUT:
。
例子:
user ALL = (root) NOPASSWD: NOLOG_INPUT: NOLOG_OUTPUT: /usr/bin/mycommand, /usr/bin/secondcommand
但是,如果您管理具有许多服务器的大规模设置,我建议还在 /etc/sudoers 文件中设置以下内容:
Defaults maxseq=1000
警告:
- 仅1.8.7或更高版本支持此设置
- 这个选项在手册的“字符串”部分列出,这显然是错误的。这是您必须提供的整数值。
更多信息:
答案3
如果磁盘中有可用空间(您检查过吗df -h
?),则最有可能的原因是 inode 问题。只需运行df -i
以检查 inode 使用情况,例如检查此处的 var 分区...
[root@test-kompjuteras ~]# df -hi
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/VolGroup-lv_root 313K 9.5K 304K 4% /
tmpfs 984K 1 984K 1% /dev/shm
/dev/sda1 126K 44 125K 1% /boot
/dev/mapper/VolGroup-lv_var 250K 250K 0 100% /var
如果你在某个地方有 100% - 你将需要删除一些文件或将它们移动到其他分区或其他存储上。