1.循环语句之for循环基本概述
for 变量 in 取值列表
do
循环体
done
当条件为真,则执行循环体,如果条件为假,则结束循环。
[root@shell /scripts/shell07]
#!/bin/bash
for i in file1 file2 file3
do
echo "$i"
echo "########################"
done
[root@shell /scripts/shell07]
file1
file2
file3
[root@shell /scripts/shell07]
#!/bin/bash
for i in 'file1 test' file2 file3
do
echo "$i"
echo "########################"
done
[root@shell /scripts/shell07]
file1 test
file2
file3
[root@shell /scripts/shell07]
#!/bin/bash
for i in file1 \( file2 file3
do
echo "$i"
echo "########################"
done
[root@shell /scripts/shell07]
file1
(
file2
file3
[root@shell /scripts/shell07]
#!/bin/bash
List="file1 file2 file3"
for i in $List
do
echo "$i"
echo "########################"
done
[root@shell /scripts/shell07]
file1
file2
file3
[root@shell /scripts/shell07]
#!/bin/bash
for i in $(cat /etc/hosts)
do
echo "$i"
echo "########################"
done
[root@shell /scripts/shell07]
127.0.0.1
localhost
localhost.localdomain
localhost4
localhost4.localdomain4
::1
localhost
localhost.localdomain
localhost6
localhost6.localdomain6
IFS=:
[root@shell /scripts/shell07]
#!/bin/bash
IFS=:
for i in $(cat /etc/passwd | head -1)
do
echo "$i"
done
[root@shell /scripts/shell07]
root
x
0
0
root
/root
/bin/bash
IFS=':;/'
[root@shell /scripts/shell07]
#!/bin/bash
IFS=':;/'
for i in $(cat test.txt)
do
echo $i
done
[root@shell /scripts/shell07]
root
oldboy
qiudao
admin
IFS=$'\n'
[root@shell /scripts/shell07]
#!/bin/bash
IFS=$'\n'
for i in $(cat /etc/hosts)
do
echo $i
done
[root@shell /scripts/shell07]
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@shell /scripts/shell07]
#!/bin/bash
for i in {1..10}
do
echo $i
done
[root@shell /scripts/shell07]
1
2
3
4
5
6
7
8
9
10
[root@shell /scripts/shell07]
#!/bin/bash
for ((i=0;i<10;i++))
do
echo $i
done
[root@shell /scripts/shell07]
0
1
2
3
4
5
6
7
8
9
C语言风格
[root@shell /scripts/shell07]
#!/bin/bash
for ((a=1,b=9;a<10;a++,b--))
do
echo $a $b
done
[root@shell /scripts/shell07]
1 9
2 8
3 7
4 6
5 5
6 4
7 3
8 2
9 1
正常怎么写
[root@shell /scripts/shell07]
#!/bin/bash
a=0
b=10
for i in {1..9}
do
let a++
let b--
echo $a $b
done
[root@shell /scripts/shell07]
1 9
2 8
3 7
4 6
5 5
6 4
7 3
8 2
9 1
2. For循环场景示例
1. 通过一个文件,进行批量创建用户
1. for循环根据文件内容进行取值
2. 判断该用户是否存在,存在则提示已存在,无需创建
3. 不存在则创建
4. 提示创建结果
[root@shell /scripts/shell08]
#!/bin/bash
for i in $(cat user.txt)
do
id $i &>/dev/null
if [ $? -eq 0 ];then
echo "用户${i}已经存在该系统!无需再次创建!"
else
useradd $i &>/dev/null
if [ $? -eq 0 ];then
echo "用户${i}创建成功!"
else
echo "用户${i}创建失败!"
fi
fi
done
[root@shell /scripts/shell08]
用户abc创建成功!
用户abd创建成功!
用户abe创建成功!
用户abf创建成功!
[root@shell /scripts/shell08]
uid=1005(abc) gid=1005(abc) groups=1005(abc)
[root@shell /scripts/shell08]
用户abc已经存在该系统!无需再次创建!
用户abd已经存在该系统!无需再次创建!
用户abe已经存在该系统!无需再次创建!
用户abf已经存在该系统!无需再次创建!
[root@shell /scripts/shell08]
[root@shell /scripts/shell08]
用户abc已经存在该系统!无需再次创建!
用户abd已经存在该系统!无需再次创建!
用户abe已经存在该系统!无需再次创建!
用户abf已经存在该系统!无需再次创建!
用户abg创建成功!
2. 根据读入文件内容,进行批量创建用户,user:pass 创建用户并创建相对应的密码
1. 从文件中进行取值
2. 先把用户调用出来,判断用户是否存在
3. 存在则提示已经存在,不要再去设置密码
4. 不存在则进行创建,再创建密码
5. 显示创建结果
[root@shell /scripts/shell08]
aaa:thjoirt
bbb:rgtgtrh
ccc:khguth
ddd:fuihhg
[root@shell /scripts/shell08]
#!/bin/bash
for i in $(cat user.txt)
do
User=$(echo $i | awk -F: '{print $1}')
Pass=$(echo $i | awk -F: '{print $2}')
id $User &>/dev/null
if [ $? -eq 0 ];then
echo "用户${User}已经存在!"
else
useradd $User &>/dev/null && echo $Pass |passwd --stdin $User &>/dev/null
if [ $? -eq 0 ];then
echo "用户${User}创建成功!并且密码初始化成功!"
else
echo "用户${User}创建失败!"
fi
fi
done
[root@shell /scripts/shell08]
用户aaa创建成功!并且密码初始化成功!
用户bbb创建成功!并且密码初始化成功!
用户ccc创建成功!并且密码初始化成功!
用户ddd创建成功!并且密码初始化成功!
[root@shell /scripts/shell08]
用户aaa已经存在!
用户bbb已经存在!
用户ccc已经存在!
用户ddd已经存在!
3. 批量创建用户,首先需要用户输入前缀,前缀由字母组成如:oldboy 后缀为数字,同时也为创建用户的数量 如果是:10,那么就需要创建10个用户:如:oldboy1 oldboy2....oldboy10.
1. 提示用户输入前缀,且为字母
2. 判断用户输入的是否是字母
3. 提示用户输入数字,创建用户的数量,必须是整数
4. 判断用户输入的是否是整数
5. 提示用户接下来要创建哪些用户
6. 提示用户是否确认创建这些用户
7. 判断这个用户是否存在,存在则不创建
8. 不存在则进行创建
9. 输出创建结果
[root@shell /scripts/shell08]
#!/bin/bash
read -p "请输入你要创建用户的前缀:" Qz
if [[ ! $Qz =~ ^[a-Z]+$ ]];then
echo "你输入的前缀不符合要求!前缀必须是字母组成的!"
exit
fi
read -p "请输入你要创建用户的数量:" Num
if [[ ! $Num =~ ^[0-9]+$ ]];then
echo "你输入的不符合要求!必须要输入整数!"
exit
fi
echo "你接下来要创建的用户为:${Qz}1..${Qz}${Num}"
read -p "是否确认要创建上方的这些用户[Yes|No]:" Qr
case $Qr in
Yes|y|Y|yes)
for i in $(seq ${Num})
do
User=${Qz}${i}
id $User &>/dev/null
if [ $? -eq 0 ];then
echo "用户${User}已经存在!"
else
useradd $User &>/dev/null
if [ $? -eq 0 ];then
echo "用户${User}创建成功.............."
else
echo "用户${User}创建失败.............."
fi
fi
done
;;
No|n|N|no)
echo "你想好了再创建!"
exit
;;
*)
echo "你输入的不符合要求!请按照要求输入!"
exit
esac
[root@shell /scripts/shell08]
请输入你要创建用户的前缀:ad3
你输入的前缀不符合要求!前缀必须是字母组成的!
[root@shell /scripts/shell08]
请输入你要创建用户的前缀:aaa
请输入你要创建用户的数量:g
你输入的不符合要求!必须要输入整数!
[root@shell /scripts/shell08]
请输入你要创建用户的前缀:oldboy
请输入你要创建用户的数量:10
你接下来要创建的用户为:oldboy1..oldboy10
是否确认要创建上方的这些用户[Yes|No]:n
你想好了再创建!
[root@shell /scripts/shell08]
请输入你要创建用户的前缀:oldboy
请输入你要创建用户的数量:10
你接下来要创建的用户为:oldboy1..oldboy10
是否确认要创建上方的这些用户[Yes|No]:y
用户oldboy1创建成功..............
用户oldboy2创建成功..............
用户oldboy3创建成功..............
用户oldboy4创建成功..............
用户oldboy5创建成功..............
用户oldboy6创建成功..............
用户oldboy7创建成功..............
用户oldboy8创建成功..............
用户oldboy9创建成功..............
用户oldboy10创建成功..............
[root@shell /scripts/shell08]
请输入你要创建用户的前缀:oldboy
请输入你要创建用户的数量:10
你接下来要创建的用户为:oldboy1..oldboy10
是否确认要创建上方的这些用户[Yes|No]:y
用户oldboy1已经存在!
用户oldboy2已经存在!
用户oldboy3已经存在!
用户oldboy4已经存在!
用户oldboy5已经存在!
用户oldboy6已经存在!
用户oldboy7已经存在!
用户oldboy8已经存在!
用户oldboy9已经存在!
用户oldboy10已经存在!
4. 创建用户,首先需要用户输入前缀,前缀由字母组成如:oldboy 后缀为数字,同时也为创建用户的数量 如果是:10,那么就需要创建10个用户:如:oldboy1 oldboy2....oldboy10. 创建用户必须要有root权限才能执行,创建的用户设置一个随机10位密码,将用户对应的随机密码统一保存到一个密码文件中,密码文件生成成功之后,密码文件的权限是400.
测试用户和密码是否可以登录
1. 只有root用户才有权限执行脚本
2. 随机的10位密码
3. 把用户和相对应的密码统一的追加到一个文件中
4. 密码文件的权限是400
[root@shell /scripts/shell08]
#!/bin/bash
if [ ! $USER == "root" -a ! $UID -eq 0 ];then
echo "该用户${USER}对此脚本没有执行权限!只有超级管理员才有执行权限!"
exit
fi
read -p "请输入你要创建用户的前缀:" Qz
if [[ ! $Qz =~ ^[a-Z]+$ ]];then
echo "你输入的前缀不符合要求!前缀必须是字母组成的!"
exit
fi
read -p "请输入你要创建用户的数量:" Num
if [[ ! $Num =~ ^[0-9]+$ ]];then
echo "你输入的不符合要求!必须要输入整数!"
exit
fi
echo "你接下来要创建的用户为:${Qz}1..${Qz}${Num}"
read -p "是否确认要创建上方的这些用户[Yes|No]:" Qr
case $Qr in
Yes|y|Y|yes)
for i in $(seq ${Num})
do
User=${Qz}${i}
id $User &>/dev/null
if [ $? -eq 0 ];then
echo "用户${User}已经存在!"
else
Pass=$(echo $RANDOM |md5sum |cut -c 1-10)
useradd $User &>/dev/null && echo "$Pass" |passwd --stdin $User &>/dev/null
if [ $? -eq 0 ];then
echo "用户${User}创建成功,并且密码也设置成功!"
echo -e "User:$User \tPass:$Pass" >>pass.txt
chmod 400 pass.txt
else
echo "用户${User}创建失败.............."
fi
fi
done
echo "用户名及密码都保存在pass.txt文件中!需要密码时,可查看此文件!"
;;
No|n|N|no)
echo "你想好了再创建!"
exit
;;
*)
echo "你输入的不符合要求!请按照要求输入!"
exit
esac
午休作业:
5. 编写一个脚本:批量删除用户。根据之前创建的用户,进行删除
1. 提示用户输入用户的前缀,
2. 判断用户的前缀是否为字母
3. 提示要删除输入用户的数量
4. 判断用户输入的后缀是否为整数
5. 提示用户接下来要删除哪些用户
6. 提示用户是否确认删除用户
7. 如果用户存在则删除
8. 不存在则提示退出。
[root@shell /scripts/shell08]
#!/bin/bash
read -p "请输入你要删除用户的前缀:" Qz
if [[ ! $Qz =~ ^[a-Z]+$ ]];then
echo "你输入的前缀不符合要求!前缀必须是字母组成!"
exit
fi
read -p "请输入你要删除用户的数量:" Num
if [[ ! $Num =~ ^[0-9]+$ ]];then
echo "你输入的数字不是整数!"
exit
fi
echo "你要删除的用户为${Qz}1...${Qz}${Num}"
read -p "你是否确认删除以上的这些用户:" Qr
case $Qr in
Y|Yes|y|yes)
for i in $(seq $Num)
do
User=${Qz}${i}
id $User &>/dev/null
if [ $? -eq 0 ];then
userdel -r $User &>/dev/null
if [ $? -eq 0 ];then
echo "用户$User 删除成功!"
else
echo "用户$User 删除失败!"
fi
else
echo "用户$User 不存在!无需进行删除!"
fi
done
;;
N|No|n|no)
echo "你选择不删除这些用户!你可以手动删除!"
exit
;;
*)
echo "请按照要求进行输入!"
exit
esac
[root@shell /scripts/shell08]
请输入你要删除用户的前缀:aaa
请输入你要删除用户的数量:5
你要删除的用户为aaa1...aaa5
你是否确认删除以上的这些用户:y
用户aaa1 删除成功!
用户aaa2 删除成功!
用户aaa3 删除成功!
用户aaa4 删除成功!
用户aaa5 删除成功!
[root@shell /scripts/shell08]
请输入你要删除用户的前缀:aaa
请输入你要删除用户的数量:5
你要删除的用户为aaa1...aaa5
你是否确认删除以上的这些用户:y
用户aaa1 不存在!无需进行删除!
用户aaa2 不存在!无需进行删除!
用户aaa3 不存在!无需进行删除!
用户aaa4 不存在!无需进行删除!
用户aaa5 不存在!无需进行删除!
6. 批量的探测主机是否在存活状态及22端口是否开放
1. 使用到循环,进行批量探测1..254的主机位
2. 将能连通的主机追加到一个文件中
3. 根据这个文件中可连通的IP地址,再次进行测试22的远程端口是否开放
4. 将22端口开放的主机也追加到一个文件中,以备查看
[root@shell /scripts/shell08]
#!/bin/bash
[ -f /etc/init.d/functions ] && source /etc/init.d/functions || echo "函数库文件不存在!"
Ip_log=/tmp/ip.log
Port_log=/tmp/port.log
>$Ip_log
>$Port_log
for i in {1..254}
do
{
Ip=10.0.0.$i
ping -c1 -W1 $Ip &>/dev/null
if [ $? -eq 0 ];then
action "$Ip is OK!" /bin/true
echo "$Ip is OK!" >>$Ip_log
fi
} &
sleep 0.03
done
wait
echo "IP地址扫描完毕......................"
echo "端口扫描开始........................"
for i in $(awk '{print $1}' $Ip_log)
do
State=$(nmap -p22 $i |grep -w 22 | awk '{print $2}')
if [ $State == "open" ];then
action "$i 的22端口是开放的................." /bin/true
echo "$i Port 22 is Open!" >>$Port_log
else
action "$i 的22端口是没有开放的..............." /bin/false
fi
done
[root@shell /scripts/shell08]
10.0.0.51 is OK! [ OK ]
10.0.0.52 is OK! [ OK ]
10.0.0.170 is OK! [ OK ]
10.0.0.254 is OK! [ OK ]
IP地址扫描完毕......................
端口扫描开始........................
10.0.0.51 的22端口是没有开放的............... [FAILED]
10.0.0.52 的22端口是开放的................. [ OK ]
10.0.0.170 的22端口是开放的................. [ OK ]
10.0.0.254 的22端口是没有开放的............... [FAILED]
3. 数据库分库分表备份
[root@shell /scripts/shell09]
[root@shell /scripts/shell09]
/backup/数据库名/
库名_时间.sql
库名_表名_时间.sql
[root@shell /scripts/shell09]
mysql
test
wordpress
world
[root@shell /scripts/shell09]
wp_commentmeta
wp_comments
wp_links
wp_options
wp_postmeta
wp_posts
wp_term_relationships
wp_term_taxonomy
wp_termmeta
wp_terms
wp_usermeta
wp_users
1. 定义变量 用户名 密码 时间 数据库名 表名
2. 判断备份的目录是否存在
3. 备份数据库
4. 判断是否备份成功
5. 备份表
6. 判断是否备份成功
[root@shell /scripts/shell09]
#!/bin/bash
Db_User=root
Db_Pass=123
Date=$(date +%F)
Db_name=$(mysql -u$Db_User -p$Db_Pass -e "show databases;" |sed 1d | grep -v ".*_schema")
for Database_Name in $Db_name
do
Back_Dir=/backup/$Database_Name
[ -d $Back_Dir ] || mkdir -p $Back_Dir
mysqldump -u$Db_User -p$Db_Pass --single-transaction -B $Database_Name >$Back_Dir/${Database_Name}_${Date}.sql
if [ $? -eq 0 ];then
echo -e "\033[42;37m${Database_Name}数据库备份成功!\033[0m"
else
echo -e "\033[41;37m${Database_Name}数据库备份失败!\033[0m"
fi
Tb_name=$(mysql -u$Db_User -p$Db_Pass -e "use $Database_Name;show tables;" |sed 1d)
for Table_Name in $Tb_name
do
mysqldump -u$Db_User -p$Db_Pass --single-transaction $Database_Name $Table_Name >$Back_Dir/${Database_Name}_${Table_Name}_${Date}.sql
if [ $? -eq 0 ];then
echo -e "\033[42;37m${Database_Name}数据库下的${Table_Name}表备份成功!\033[0m"
else
echo -e "\033[41;37m${Database_Name}数据库下的${Table_Name}表备份失败!\033[0m"
fi
done
done
[root@shell /scripts/shell09]
mysql数据库备份成功!
mysql数据库下的columns_priv表备份成功!
mysql数据库下的db表备份成功!
mysql数据库下的event表备份成功!
mysql数据库下的func表备份成功!
mysql数据库下的general_log表备份成功!
mysql数据库下的help_category表备份成功!
mysql数据库下的help_keyword表备份成功!
mysql数据库下的help_relation表备份成功!
mysql数据库下的help_topic表备份成功!
mysql数据库下的host表备份成功!
mysql数据库下的ndb_binlog_index表备份成功!
mysql数据库下的plugin表备份成功!
mysql数据库下的proc表备份成功!
mysql数据库下的procs_priv表备份成功!
mysql数据库下的proxies_priv表备份成功!
mysql数据库下的servers表备份成功!
mysql数据库下的slow_log表备份成功!
mysql数据库下的tables_priv表备份成功!
mysql数据库下的time_zone表备份成功!
mysql数据库下的time_zone_leap_second表备份成功!
mysql数据库下的time_zone_name表备份成功!
mysql数据库下的time_zone_transition表备份成功!
mysql数据库下的time_zone_transition_type表备份成功!
mysql数据库下的user表备份成功!
test数据库备份成功!
wordpress数据库备份成功!
wordpress数据库下的wp_commentmeta表备份成功!
wordpress数据库下的wp_comments表备份成功!
wordpress数据库下的wp_links表备份成功!
wordpress数据库下的wp_options表备份成功!
wordpress数据库下的wp_postmeta表备份成功!
wordpress数据库下的wp_posts表备份成功!
wordpress数据库下的wp_term_relationships表备份成功!
wordpress数据库下的wp_term_taxonomy表备份成功!
wordpress数据库下的wp_termmeta表备份成功!
wordpress数据库下的wp_terms表备份成功!
wordpress数据库下的wp_usermeta表备份成功!
wordpress数据库下的wp_users表备份成功!
world数据库备份成功!
world数据库下的city表备份成功!
world数据库下的country表备份成功!
world数据库下的countrylanguage表备份成功!
[root@shell /scripts/shell09]
total 8
drwxr-xr-x 2 root root 4096 2020-03-02 09:39 mysql
drwxr-xr-x 2 root root 33 2020-03-02 09:39 test
drwxr-xr-x 2 root root 4096 2020-03-02 09:39 wordpress
drwxr-xr-x 2 root root 147 2020-03-02 09:39 world
[root@shell /scripts/shell09]
total 940
-rw-r--r-- 1 root root 462530 2020-03-02 09:39 wordpress_2020-03-02.sql
-rw-r--r-- 1 root root 2081 2020-03-02 09:39 wordpress_wp_commentmeta_2020-03-02.sql
-rw-r--r-- 1 root root 3301 2020-03-02 09:39 wordpress_wp_comments_2020-03-02.sql
-rw-r--r-- 1 root root 2483 2020-03-02 09:39 wordpress_wp_links_2020-03-02.sql
-rw-r--r-- 1 root root 19399 2020-03-02 09:39 wordpress_wp_options_2020-03-02.sql
-rw-r--r-- 1 root root 38251 2020-03-02 09:39 wordpress_wp_postmeta_2020-03-02.sql
-rw-r--r-- 1 root root 394390 2020-03-02 09:39 wordpress_wp_posts_2020-03-02.sql
-rw-r--r-- 1 root root 2051 2020-03-02 09:39 wordpress_wp_termmeta_2020-03-02.sql
-rw-r--r-- 1 root root 2208 2020-03-02 09:39 wordpress_wp_term_relationships_2020-03-02.sql
-rw-r--r-- 1 root root 2200 2020-03-02 09:39 wordpress_wp_terms_2020-03-02.sql
-rw-r--r-- 1 root root 2366 2020-03-02 09:39 wordpress_wp_term_taxonomy_2020-03-02.sql
-rw-r--r-- 1 root root 4743 2020-03-02 09:39 wordpress_wp_usermeta_2020-03-02.sql
-rw-r--r-- 1 root root 2831 2020-03-02 09:39 wordpress_wp_users_2020-03-02.sql
4. 随机点名脚本
1. 要有名单
2. 随机的打印这些名单
3. 打印出最后一个人员出现的名单
4. 找一个随机数,随机数是整数,且不能小于1和大于人员总数
[root@shell /scripts/shell09]
26
[root@shell /scripts/shell09]
#!/bin/bash
Number=$(wc -l student.txt |awk '{print $1}')
read -p "请输入你要对及脚本进行循环多少次:" Num
for i in $(seq $Num)
do
Stu_Num=$((RANDOM % $Number + 1))
sed -n "${Stu_Num}p" student.txt
sleep 0.5
done
Stu_Name=$(sed -n "${Stu_Num}p" student.txt)
echo -e "天选子:\033[32m$Stu_Name\033[0m"
5. 判断数据库的主从复制的脚本
1. 主从复制的环境
2. 进行判断主从
3. 主从正常,输出
4. 不正常发邮件报警
5. 简单处理一些故障
[root@db02 ~]
#!/bin/bash
IO_Status=$(mysql -uroot -p123 -e "show slave status\G" | grep "Slave_IO_Running" | awk '{print $2}')
SQL_Status=$(mysql -uroot -p123 -e "show slave status\G" | grep "Slave_SQL_Running" | awk '{print $2}')
if [[ $IO_Status == "Yes" && $SQL_Status == "Yes" ]];then
echo "数据库主从复制正常!"
else
if [ ! $IO_Status == "Yes" ];then
mysql -uroot -p123 -e "show slave status\G" | grep "Last_IO" >/tmp/mysql_io_err.log
mail -s "数据库主从复制IO线程出错!$(date +%F-%H:%M) " 1176494252@qq.com < /tmp/mysql_io_err.log
if [ $? -eq 0 ];then
echo "数据库主从复制IO线程报错邮件发送成功!"
else
echo "数据库主从复制IO线程报错邮件发送失败!"
fi
fi
if [ ! $SQL_Status == "Yes" ];then
SQL_Err_State=$(mysql -uroot -p123 -e "show slave status\G" | grep "Last_SQL_Errno" | awk '{print $2}')
case $SQL_Err_State in
1007)
echo "数据库主从复制SQL线程出现1007错误!脚本尝试跳过这次错误!"
mysql -uroot -p123 -e "stop slave;set global sql_slave_skip_counter=1;start slave;"
sleep 3
SQL_Status=$(mysql -uroot -p123 -e "show slave status\G" | grep "Slave_SQL_Running" | awk '{print $2}')
if [ $SQL_Status == "Yes" ];then
echo "尝试跳过了一次错误!数据库主从复制恢复正常!"
else
mysql -uroot -p123 -e "show slave status\G" | grep "Last_SQL" >/tmp/mysql_sql_err.log
mail -s "数据库主从复制SQL线程出错!$(date +%F-%H:%M) " 1176494252@qq.com < /tmp/mysql_sql_err.log
if [ $? -eq 0 ];then
echo "数据库主从复制SQL线程报错邮件发送成功!"
else
echo "数据库主从复制SQL线程报错邮件发送失败!"
fi
fi
;;
1032)
mysql -uroot -p123 -e "show slave status\G" | grep "Last_SQL" >/tmp/mysql_sql_err.log
mail -s "数据库主从复制SQL线程出错!$(date +%F-%H:%M) " 1176494252@qq.com < /tmp/mysql_sql_err.log
if [ $? -eq 0 ];then
echo "数据库主从复制SQL线程报错邮件发送成功!"
else
echo "数据库主从复制SQL线程报错邮件发送失败!"
fi
;;
*)
mysql -uroot -p123 -e "show slave status\G" | grep "Last_SQL" >/tmp/mysql_sql_err.log
mail -s "数据库主从复制SQL线程出错!$(date +%F-%H:%M) " 1176494252@qq.com < /tmp/mysql_sql_err.log
if [ $? -eq 0 ];then
echo "数据库主从复制SQL线程报错邮件发送成功!"
else
echo "数据库主从复制SQL线程报错邮件发送失败!"
fi
exit
esac
fi
fi