Shell脚本应用1

实验一

实验目的:远程备份mysql数据库

实验环境:一台mysql服务器,ip地址为192.168.1.1;一台linux客户机,ip地址为192.168.1.2

实验要求:编写shell脚本,实现批量备份数据库

实验步骤:

1在服务器上安装mysql

9.2 Shell脚本应用1_脚本

2开启服务

9.2 Shell脚本应用1_批量处理_02

3创建两个示例数据库

9.2 Shell脚本应用1_脚本_03

4创建远程备份的授权用户

mysql> grant select,lock tables on *.* to 'user'@'%' identified by '123123';

5在客户机上安装mysqldupm备份工具支持并测试手动备份

9.2 Shell脚本应用1_马向军_04

没有报错即连接正常

9.2 Shell脚本应用1_批量处理_05

查看备份的文件

9.2 Shell脚本应用1_批量处理_06

或直接远程登录测试,能登录几连接正常

9.2 Shell脚本应用1_shell脚本_07

6编写脚本

9.2 Shell脚本应用1_shell脚本_08

#!/bin/bash

# 这是一个简化的MySQL数据库逻辑备份脚本

#定义参数变量

MY_USER="user"

MY_PASS="123123"

MY_HOST="192.168.1.100"

#定义命令格式变量(连接数据库命令格式)

MY_CONN="-u $MY_USER -p$MY_PASS -h $MY_HOST"

#定义数据库变量        

MY_DB1="li"

MY_DB2="mi"

# 定义备份目录变量

BF_DIR="/root/Desktop/"

#定义备份工具变量

BF_CMD="mysqldump"

#定义时间变量

BF_TIME=`date +%Y%m%d-%H%M`

#定义备份名称变量,调用了数据库名称变量和时间变量

NAME_1="$MY_DB1-$BF_TIME"

NAME_2="$MY_DB2-$BF_TIME"

#进入备份目录,调用备份工具变量备份(备份命令的格式)

cd $BF_DIR/

$BF_CMD $MY_CONN --databases $MY_DB1 > $NAME_1.sql

$BF_CMD $MY_CONN --databases $MY_DB2 > $NAME_2.sql

#压缩并删除源文件

/bin/tar zcf $NAME_1.tar.gz $NAME_1.sql --remove &> /dev/null

/bin/tar zcf $NAME_2.tar.gz $NAME_2.sql --remove &> /dev/null

7执行脚本

9.2 Shell脚本应用1_批量处理_09

8产看备份文件

9.2 Shell脚本应用1_批量处理_10

实验二

实验目的:制作root用户登录欢迎脚本

实验要求:要求当root用户登录系统后显示正在运行的进程数、当前登录的用户个数、根分区占用情况

实验步骤:

1分析如何查看当前进程以及计算当前进程数

9.2 Shell脚本应用1_马向军_11

2分析如何查看当前登录的用户以及计算当前登录的用户个数

9.2 Shell脚本应用1_shell脚本_12

3分析如何查看根分区占用情况,并显示出来

根分区占用情况

9.2 Shell脚本应用1_马向军_13

分析出可以使用grep过滤和awk分段来获取指定内容

9.2 Shell脚本应用1_马向军_14

4开始编写脚本

9.2 Shell脚本应用1_shell脚本_15

5运行脚本测试

9.2 Shell脚本应用1_脚本_16

6设置开机自启动

增加可执行权限,添加自启动调用

9.2 Shell脚本应用1_批量处理_17

9.2 Shell脚本应用1_批量处理_18

7重启测试(切换终端也可)

9.2 Shell脚本应用1_批量处理_19

实验三

实验目的:简化start、stop、status命令

实验要求:使用status crond 即可查看服务状态,其他类似

实验步骤:

1 分析查服务状态的原命令

9.2 Shell脚本应用1_脚本_20

2使用位置变量代替服务名称,再使用脚本名称代替目录,于是在/root/bin下编写脚本为

Vim status    没有后缀(脚本名称后面的第一个参数为$1)

9.2 Shell脚本应用1_马向军_21

3赋予x权限

4测试

9.2 Shell脚本应用1_shell脚本_22