按照端口进入mysql并打印要求的用户权限并且按照端口命名文件或者写到同一个文件中

#!/bin/bash


#创建文件的存储目录
mkdir -p /home/mysql/opdir/zfy/privileges


#排除了5开头的端口,因为我们这边5开头是从库的端口

for port in `ps -ef|grep mysqld|grep "\-\-port"|awk -F'--port=' '{print $2}'|grep  -v '^5'`



#循环进入mysql实例,查询结果,这个查询可以按照实际的情况方便命名
   do 

  for  i  in `/home/mysql/mysql_${
     
     port}/bin/mysql --defaults-file=/home/mysql/mysql_${
     
     port}/etc/user.root.cnf -Ne  "SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;"|grep -Evi "root|databus_r|bigdata_r|mysqlsync|admin"|awk -F 'User:'  '{print $2}'`

      do

   /home/mysql/mysql_${port}/bin/mysql --defaults-  file=/home/mysql/mysql_${port}/etc/user.root.cnf -Ne  "show grants for $i;"|grep -Evi "USAGE"  >>  /home/mysql/opdir/zfy/privileges/${port}.sql

     done
done

echo good job!!

写到同一个文件中,并在文件中标明端口

#!/bin/bash

mkdir -p /home/mysql/opdir/zfy/privileges

for port in `ps -ef|grep mysqld|grep "\-\-port"|awk -F'--port=' '{print $2}'|grep  -v '^5'`


do

/home/mysql/mysql_${port}/bin/mysql --defaults-file=/home/mysql/mysql_${port}/etc/user.root.cnf -Ne "select @@port;" >>/home/mysql/opdir/zfy/privileges/zonghe4.sql

for  i  in `/home/mysql/mysql_${
     
     port}/bin/mysql --defaults-file=/home/mysql/mysql_${
     
     port}/etc/user.root.cnf -Ne  "SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;"|grep -Evi "root|databus_r|bigdata_r|mysqlsync|admin"|awk -F 'User:'  '{print $2}'`

do

/home/mysql/mysql_${port}/bin/mysql --defaults-file=/home/mysql/mysql_${port}/etc/user.root.cnf -Ne  "show grants for $i;"|grep -Evi "USAGE"  >> /home/mysql/opdir/zfy/privileges/zonghe4.sql

done



done

echo good job!!

猜你喜欢

转载自blog.csdn.net/shunnianlv/article/details/106660276