shell具体应用实例总结

Shell是一种命令解释器,linux版本都默认安装的通用程序脚本,值得使用它来做一些定时批量任务,但它还是有一定的局限性,

1、代码行大于100行就得考虑用其他的程序语言,比如python,因为shell调试比较困难;

2、如果是性能调优的话,就得考虑用其他的程序语言,因为shell更多执行命令行。

入门的书藉,我是看这本书:《高级Bash脚本编程指南(Advanced Bash-Scripting Guide)》 - 书栈网 · BookStack

下面介绍下几个应用场景:

1、tomcat的log文件定期清理:

#!/bin/bash
#tomcat的日志清理
logs_path="/usr/local/apache-tomcat-9.0.68/logs"
# 当前时间24*30小时前(30天前)
find $logs_path -mtime +5 -name "localhost.*.log" -exec rm -rf {} \;
find $logs_path -mtime +5 -name "localhost_access_log.*.txt" -exec rm -rf {} \;
find $logs_path -mtime +5 -name "catalina.*.log" -exec rm -rf {} \;
find $logs_path -mtime +5 -name "manager.*.log" -exec rm -rf {} \;
find $logs_path -mtime +5 -name "host-manager.*.log" -exec rm -rf {} \;
find $logs_path -mtime +5 -name "fileservice.log.*" -exec rm -rf {} \;
find $logs_path -mtime +1  -name "catalina.*.log" -exec rm -rf {} \;
>$logs_path/catalina.out;

2、数据库的每天备份:

#!/bin/bash
#decription:mysql-order automatically backup script

#文件名为database_db+日期,这里声明数据库名的变量
backupDatabase=database
fileName=${backupDatabase}`date +%Y%m%d`

#定义baseDir变量
baseDir=/backup/

#使用mysqldump备份数据库
mysqldump --defaults-extra-file=/etc/mysql/mariadb.conf.d/50-client.cnf ${backupDatabase} >${baseDir}${fileName}.sql

#压缩
tar -zcPvf ${baseDir}${fileName}.sql.tar.gz ${baseDir}${fileName}.sql

#删除刚备份的sql文件,留下压缩的
rm -f ${baseDir}${fileName}.sql;

#删除7天前备份的数据,只保留一周的数据
find ${baseDir} -mtime +3 -name "${backupDatabase}*.tar.gz" -exec rm -rf {} \;

#删除7天前的日志数据,只保留一周的日志数据 已在mysql设置失效时间,只保存30内的日志
#find /var/lib/mysql/ -mtime +7 -name "mariadb-relay-bin.*"  -exec rm -rf {} \;

3、nginx的log定时清理

#!/bin/bash
#nginx的日志清理
logs_path="/var/log/nginx/"
find $logs_path -name  access.log.* -exec rm -rf {} \;
find $logs_path -name  error.log.* -exec rm -rf {} \;

4、数据库定时推送excel文件

#!/bin/bash

sql_path=/usr/local/bin/demo.sql
db=database
csv_path=/backup/data.csv

mysql -uroot -p123456 ${db} < ${sql_path}  |sed -e  "s/\t/,/g" -e "s/NULL/  /g" -e "s/\n/\r\n/g"  ${csv_path} > 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个高效工作的家伙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值