如何为快照创建Sudoer配置

使用LVM快照时,/ etc / sudoers文件中需要以下条目。 请执行“ visudo”来编辑/ etc / sudoers文件并添加这些条目以允许 MySQL的 用户运行所需的命令,而不会提示您输入密码,也不需要登录shell:

MySQL的= NOPASSWD:/ bin / mount,NOPASSWD:/ bin / umount,NOPASSWD:/ bin / df,NOPASSWD:/ usr / sbin / lvdisplay,NOPASSWD:/ usr / sbin / lvcreate,NOPASSWD:/ usr / sbin / lvremove默认值: %mysql!requiretty默认值:mysql!requiretty

切记要根据操作系统替换所有lvmtools的正确路径,因为根据您使用的Linux发行版的不同,路径可能会有所不同。

如果您的公司有更严格的政策,您可以微调sudoers文件,下面举个例子:

假设在MySQL服务器diamond.jewel.com上,存在3个卷组VolGroup00,vg1和vg2,以及逻辑卷LogVol00,lv1和lv2,每一个。 我们在Logvol00中具有mysql datadir,在lv1中具有innodb数据库,在lv2中具有innodb日志:
 

文件系统1K块已使用可用已使用%已安装在
/ dev / mapper / VolGroup00-LogVol00
7459216 3040728 4033464 43%/
/ dev / sda1 101086 10895 84972 12%/启动
tmpfs 127668 0 127668 0%/ dev / shm
/ dev / mapper / vg1-lv1 126931 11832 108546 10%/ l1
/ dev / mapper / vg2-lv2 126931 11833 108545 10%/ l2


/etc/my.cnf的内容如下

innodb_data_home_dir = / l1 / ibdata innodb_data_file_path = ibdata1:10M:autoextend innodb_log_group_home_dir = / l2 / iblogs


sudoer文件配置在上面的示例中应包含以下几行,如果只有一个卷组,则只需一行。

mysql diamond.jewel.com = NOPASSWD:/ bin / mount / dev / VolGroup00 / zrm * / tmp / zrm *,NOPASSWD:/ bin / umount / tmp / zrm *,NOPASSWD:/ bin / df,NOPASSWD:/ usr / sbin / lvdisplay,NOPASSWD:/ usr / sbin / lvcreate -L * -s -n zrm * / dev / VolGroup00 / LogVol00,NOPASSWD:/ usr / sbin / lvremove -f / dev / VolGroup00 / zrm * mysql diamond.jewel。 com = NOPASSWD:/ bin / mount / dev / vg1 / zrm * / tmp / zrm *,NOPASSWD:/ bin / umount / tmp / zrm *,NOPASSWD:/ bin / df,NOPASSWD:/ usr / sbin / lvdisplay,NOPASSWD :/ usr / sbin / lvcreate -L * -s -n zrm * / dev / vg1 / lv1,NOPASSWD:/ usr / sbin / lvremove -f / dev / vg1 / zrm * mysql diamond.jewel.com = NOPASSWD:/ bin / mount / dev / vg2 / zrm * / tmp / zrm *,NOPASSWD:/ bin / umount / tmp / zrm *,NOPASSWD:/ bin / df,NOPASSWD:/ usr / sbin / lvdisplay,NOPASSWD:/ usr / sbin / lvcreate -L * -s -n zrm * / dev / vg2 / lv2,NOPASSWD:/ usr / sbin / lvremove -f / dev / vg2 / zrm *


注意:请为lvm命令和df提供正确的路径。

如果您使用的是xfs文件系统,则必须指定

mysql diamond.jewel.com = NOPASSWD:/ bin / mount -o -nouuid / dev / VolGroup00 / zrm * / tmp / zrm *,NOPASSWD:/ bin / umount / tmp / zrm *,NOPASSWD:/ bin / df,NOPASSWD :/ usr / sbin / lvdisplay,NOPASSWD:/ usr / sbin / lvcreate -L * -s -n zrm * / dev / VolGroup00 / LogVol00,NOPASSWD:/ usr / sbin / lvremove -f / dev / VolGroup00 / zrm *

还请记住添加以下几行,以便不需要登录shell。 MySQL的 用户运行sudo命令:

默认值:%mysql!requiretty默认值:mysql!requiretty