Shell脚本应用1
实验一
实验目的:远程备份mysql数据库
实验环境:一台mysql服务器,ip地址为192.168.1.1;一台linux客户机,ip地址为192.168.1.2
实验要求:编写shell脚本,实现批量备份数据库
实验步骤:
1在服务器上安装mysql
2开启服务
3创建两个示例数据库
4创建远程备份的授权用户
mysql> grant select,lock tables on *.* to 'user'@'%' identified by '123123';
5在客户机上安装mysqldupm备份工具支持并测试手动备份
没有报错即连接正常
查看备份的文件
或直接远程登录测试,能登录几连接正常
6编写脚本
#!/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执行脚本
8产看备份文件
实验二
实验目的:制作root用户登录欢迎脚本
实验要求:要求当root用户登录系统后显示正在运行的进程数、当前登录的用户个数、根分区占用情况
实验步骤:
1分析如何查看当前进程以及计算当前进程数
2分析如何查看当前登录的用户以及计算当前登录的用户个数
3分析如何查看根分区占用情况,并显示出来
根分区占用情况
分析出可以使用grep过滤和awk分段来获取指定内容
4开始编写脚本
5运行脚本测试
6设置开机自启动
增加可执行权限,添加自启动调用
7重启测试(切换终端也可)
实验三
实验目的:简化start、stop、status命令
实验要求:使用status crond 即可查看服务状态,其他类似
实验步骤:
1 分析查服务状态的原命令
2使用位置变量代替服务名称,再使用脚本名称代替目录,于是在/root/bin下编写脚本为
Vim status 没有后缀(脚本名称后面的第一个参数为$1)
3赋予x权限
4测试