十七. [博学谷学习记录]|超强总结,用心分享|大数据 Linux(十七)

93 阅读1分钟
#!/bin/bash#生成100以内的随机数 提示用户猜测 猜对为止#random 系统自带,值为0-32767任意数#随机数1-100num**=** [RANDOM[RANDOM** **%** 100 **+** 1 **]**#read 提示用户猜数字#if判断**while**   **:****do****read** -p "计算机生成了一个 1‐100 的随机数,你猜: " cai    **if**  **[**   **cai **-**eq num ]    then       echo "恭喜,猜对了"       exit    elif [ num**  **]**    **then**        **echo** "恭喜,猜对了"        **exit**     **elif**  **[**   **cai **-**gt $num  ]     then            echo "不巧,猜大了"       else            echo "不巧,猜小了"   fi done

 

1.1.1. 一键安装jdk

1.1.1.1. 准备

 在做这个案例之前,将之前安装的JDK全部删除:

1: 删除jdk安装目录

rm  / export / server / jdk1.8.0_241 /  **-**fr

 

2:删除/etc /profile中的JDK环境变量配置内容

 

3:让修改生效

source /etc/profile****

 

1.1.1.2. 代码

jdk_install.sh

| #!/bin/bash# 1.提示安装jdkecho "现在开始安装jdk"sleep 1     # 休眠1秒钟# 2.删除centos自带的jdkoldjava**=** (rpmqagrepjava)for oldin (** **rpm -qa | grep java** **)****for** old **in** {oldjava}do   # echo old  rpm enodepsold**   **rpm** -e **--**nodeps **old****done# 3.创建安装目录/export/server, 进入安装目录java_path="/export/server"if  [   !  -d  javapath  ]then  mkdir pjava_path**   **]****then**   **mkdir** -p **java_path****fi #4:解压jdk安装包tar** -xvf / export / software / jdk-8u241-linux-x64.tar.gz  -C java_path** # 6.设置环境变量JAVA_HOME**=**"/export/server/jdk1.8.0_241"grep "JAVA_HOME"  **/** etc **/** profile**i** **f** [ ? -ne 0 ]then  # JAVA_HOME  echo "--------------JAVA_HOME------------------"  echo 'export JAVA_HOME=/export/server/jdk1.8.0_241'  >>   / etc / profile  # PATH  echo "--------------PATH------------------------"  echo 'export PATH=:JAVAHOME/bin:JAVA_HOME/bin:PATH'  >>   / etc / profilefi# 7.加载环境变量source / etc / profile# 8.提示用户安装成功,查看jdk安装版本echo** "恭喜您,jdk安装成功!"java **-**version | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

 

执行该脚本

chmod +x jdk_install.sh./jdk_install.sh

 

 

1.1.2. 数据库定时备份

1.1.2.1. 需求

1)每天凌晨1:15备份 数据库 itcast_shop到 /export/data/db目录

2)备份开始和备份结束能够给出相应的提示信息

3)备份后的文件要求以备份时间为文件名,并打包成 .tar.gz 的形式,比如:

2020-05-12_021501.tar.gz

  1. 在备份的同时,检查是否有10天前备份的数据库文件,如果有就将其删除

 

1.1.2.2. 代码

mysqldump_demo.sh

#!/bin/bash#完成数据库的定时备份#备份的路径BACKUP**=/** export / data / db#当前时间作为文件名DATETIME**=** (date+(date +%Y_%m_%d_%H%M%S)**#可以通过输出变量来调试**#** **echo**  **DATETIME#使用变量的时候,也可以用{}花括号的方式把变量名包起来,如下:# echo DATETIME echo "开始备份数据库"echo "备份的路径是{DATETIME} **echo** "---------------------开始备份数据库---------------------"**echo** "---------------------备份的路径是BACKUP/DATETIME.tar.gz---------------------"#主机ip地址HOST**=**192 **.** 168 **.** 88 **.** 161#数据库用户名DB_USER**=**root#数据库密码DB_PWD**=**123456#数据库名DATABASE**=**itcast_shop#创建备份路径#如果备份的文件夹路径存在的话,就直接使用,否则就创建**[**   **!**  **-d** "{BACKUP}/{DATETIME}"  **]**   **&&**  **mkdir** -p "{BACKUP}/{DATETIME}"#执行mysql的备份数据库的指令mysqldump -u{DB_USER} -pDBPWD host={DB_PWD} **--**host**=**{HOST} DATABASE > {DATABASE}  **>**  {BACKUP} / DATETIME/{DATETIME} **/** {DATETIME} . sql#打包备份文件cd BACKUPtar czvf{BACKUP}**tar** **-**czvf {DATETIME} . tar.gz {DATETIME}#删除临时目录**rm** **-**rf {BACKUP} / {DATETIME}#删除10天前的备份文件**find** {BACKUP} **-**mtime + 10 **-**name "*.tar.gz" **-**exec rm **-**rf {}  ;echo "-------------------------备份成功-------------------------"

代码说明:

1. 代码中HOS、DB_USER、DB_PWD这三个变量的值要根据自己的情况来设置

2. mysqldump就是系统内置的用来备份数据库的工具

3. 语句find ${BACKUP} -mtime +10 -name "*.tar.gz" -exec rm -rf {} ; 解释:

  1)find命令只是来查找匹配的文件,如果查到文件之后还需要进一步的操作,则需要添加-exec参数,{}表示find查询出来的文件名字。

2)-exec 参数后面跟的是要执行的command命令,它的终止是以;为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。

3)-mtime 文件状态修改时间 ,**-**mtime +10:表示10天前的文件