17.1 为什么要学习Shell编程
17.2 Shell是什么
17.3 Shell脚本的执行方式
17.4 Shell的变量
17.5 设置环境变量
17.6 位置参数变量
17.7 预定义变量
17.8 运算符
17.9 条件判断
17.10 流程控制
17.10.1 if判断
17.10.2 case语句
17.10.3 for循环
17.10.4 while循环
17.11 read读取控制台输入
17.11.1 基本语法
17.11.2 应用实例 testRead.sh
17.12 函数
17.12.1 函数介绍
17.12.2 系统函数
17.12.3 自定义函数
17.13 Shell编程综合案例
17.13.1 需求分析
shell脚本放在/usr/sbin目录下,因为此目录下是root用户执行的权限,而且将来会用root身份设置任务调度
17.13.2 代码 /usr/sbin/mysql_db.backup.sh
#!/bin/bash
#备份目录
BACKUP=/data/backup/db
#当前时间
DATETIME=$(date +%Y-%m-%d_%H%M%S)
echo $DATETIME
#数据库的地址
HOST=localhost
#数据库用户名
DB_USER=root
#数据库密码
DB_PW=hspedu100
#备份的数据库名
DATABASE=hspedu
#创建备份目录,如果不存在,就创建
[ ! -d "${BACKUP}/${DATETIME}" ] && mkdir -p "${BACKUP}/${DATETIME}"
#备份数据库
mysqldump -u${DB_USER} -p${DB_PW} --host=${HOST} -q -R --databases ${DATABASE} | gzip > ${BACKUP}/${DATETIME}/${DATETIME}.sql.gz
#将文件处理成 tar.gz
cd ${BACKUP}
tar -zcvf $DATETIME.tar.gz ${DATETIME}
#删除对应的备份目录
rm -rf ${BACKUP}/${DATETIME}
#删除10天前的备份文件
find ${BACKUP} -atime +10 -name "*.tar.gz" -exec rm -rf {} \;
echo "备份数据库${DATABASE} 成功"
凌晨2.30定时调度:
crontab -e
crontab -l