【博学谷学习记录】超强总结,用心分享|狂野大数据课程 【Shell实战】学习笔记

文章介绍了如何在Linux环境中通过bash脚本实现一键安装JDK以及设置数据库MySQL的定时备份。脚本包括删除旧版JDK、创建安装目录、解压安装包、设置环境变量等步骤。此外,还详细说明了数据库的定时备份脚本,包括备份路径、时间命名、备份提示、打包和删除旧备份的过程。最后提到了使用crontab进行定时任务调度,确保每天凌晨1:15自动备份数据库。
摘要由CSDN通过智能技术生成

一、一键安装jdk

vim jdk_install.sh

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

执行脚本

chmod +x jdk_install.sh

. /jdk_install.sh

二、数据库定时备份

需求

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

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

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

2020-05-12_021501.tar.gz

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

vim mysqldump_demo.sh

#!/bin/bash
#完成数据库定时备份
#备份路径
BACKUP=/export/data/db
#当前时间作为文件名
DATETIME=$(date +%Y_%m_%d_%H%M%S)
#可以通过输出变量来调试
#echo $DATETIME
#使用变量的时候,可以用花括号{}把变量名包起来,如下:
#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} -p${DB_PWD} --host=${HOST} ${DATABASE} > ${BACKUP}/${DATETIME}/${DATETIME}.sql
#打包备份文件
cd ${BACKUP}
tar -czvf ${DATETIME}.tar.gz ${DATETIME}
#删除临时目录
rm -rf ${BACKUP}/${DATETIME}
#删除10天前的备份文件
find ${BACKUP} -mtime +10 -name "*.tar.gz" -exec rm -rf {} ;
echo "-------------------------备份成功-------------------------"

命令解析:

rpm -e --nodeps 删除某个软件包,并且忽略软件包的依赖关系

mysqldump -u[用户名] -h[ip] -p[密码] -P[端口号] 数据库名 表名 >导出的文件名.sql

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

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

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

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

三、定时执行

3.1Linux的定时工具crontab

注意:“?”字符仅被用于天(月)和天(星期)两个子表达式,表示不指定值,且只能出现一个

逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”

中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”

正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

分(0~59)

时(0~23)

日(0~31,但是你需要考虑你月的天数)

月(1~12)

周(0~6 0=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)

3.2 实现步骤

  1. 命令行输入crontab -e 进入编辑模式

  1. 编辑,写入以下内容

15 1 * * * /export/data/shell/mysqldump_demo.sh

  1. wq保存退出即可

  1. 配置定时任务调度成功!这样的话,每天的凌晨1:15就会自动的备份数据库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值