首页 > 其他分享 >常用脚本1

常用脚本1

时间:2023-06-24 10:01:17浏览次数:47  
标签:脚本 -% 常用 log db days test dir

Linux运维常用脚本总结

原创 小驿 数据与共享 2023-06-13 19:30 发表于陕西 收录于合集#项目运维9个 1.日志切割
# nginx 日志分割日志#!/bin/bash --loginshopt -s expand_aliasesdatestr=$(date -d "-1 days" +%Y-%m-%d)echo $datestr;mv /test/log/nginx/access.log /test/log/nginx/access_${datestr}.logmv /test/log/nginx/error.log /test/log/nginx/error_${datestr}.logsleep 1service nginx reload

2.删除日志脚本

#!/bin/bash --loginshopt -s expand_aliases
#日志保留天数log_max_stay_days=7
# 根据时间删除指定路径下的log文件function del_log_by_time(){ dir=$1 days=$2 filePattern=$3 if [ -d ${dir} ] && [ ${#dir} -gt 2 ]; then rm -f ${dir}/*.`date -d '-'${days}' days' +%Y-%m-%d`.* find ${dir} -mtime +$((days-1)) -name "${filePattern}" -exec rm -f {} \; fi}
function del_log(){ # 删除tomcat日志 del_log_by_time "/test/tomcat/logs" $log_max_stay_days "*.*" # 删除nginx日志 del_log_by_time "/test/log/nginx" $log_max_stay_days "*.log" # 删除redis日志 del_log_by_time "/test/log/redis" $log_max_stay_days "*.log"}
del_log $@

3.数据备份

# 临时备份,通常用xtrabackup做全量和增量备份。#!/bin/bashDB_USER=rootDB_PWD=123DB_PORT=3306DB_HOST=127.0.0.1
# 本机部署时,请将MEDIA_SERVER改为localhost或者置为空MEDIA_SERVER=SSH_PORT=22
BACKUP_BIZ=1
#数据库名称DATABASE_BIZ="db1,db2,db3"
back_path=/test/backup/A_db_bak_noce_a_week/
#备份最少保留天数file_backup_max_stay_days=7
function get_databases(){ DATABASES="" if [ "$BACKUP_BIZ" == "1" ];then DATABASES=$DATABASE_BIZ fi DATABASES=${DATABASES##,} if [ "$DATABASES" == "" ];then ERROR_INFO="配置了不导出BIZ及STAT" return 1 fi return 0}# 根据时间删除指定路径下的log文件function del_log_by_time(){ dir=$1 days=$2 filePattern=$3 dirFlag=$4 if [ -d ${dir} ] && [ ${#dir} -gt 2 ]; then if [ "${dirFlag}" == "1" ];then find ${dir} -mtime +$((days-1)) -type d -name "${filePattern}" -exec rm -rf {} \; else find ${dir} -mtime +$((days-1)) -name "${filePattern}" -exec rm -f {} \; fi fi}
#复制到多媒体路径function move_to_media_server(){ to_move_file=$1
if [ "$MEDIA_SERVER" == "localhost" ] || [ `ifconfig |grep "$MEDIA_SERVER "|wc -l` -gt 0 ];then ERROR_INFO="多媒体服务即本机,无需上传" return 1 fi if [ "$MEDIA_SERVER" == "" ];then ERROR_INFO="未能获取多媒体服务器" return 1 fi
# 判断免密状态,无则不复制 if [ `cat /root/.ssh/known_hosts |grep -E "$MEDIA_SERVER |$MEDIA_SERVER," |wc -l` -lt 1 ];then ERROR_INFO="未设置免密登录到$MEDIA_SERVER" return 1 fi
hostname=$(hostname) ssh -p $SSH_PORT -o "StrictHostKeyChecking no" root@$MEDIA_SERVER "mkdir -p $back_path/${hostname}" scp -r -P $SSH_PORT $to_move_file root@$MEDIA_SERVER:$back_path/${hostname}/ return 0}
# 全量备份function backup_full(){ echo "开始全量备份...." get_databases if [ "$DATABASES" == "" ];then SUCCESS_FLAG=0 else OLD_IFS=$IFS IFS="," db_arr=($DATABASES) cd $back_path for dbname in ${db_arr[@]} do mydumper -h $DB_HOST -u $DB_USER -p $DB_PWD -P $DB_PORT -G -E -R -B $dbname -o ${dbname}_$(date +%Y-%m-%d)/ -v 3 -t 3 -k SUCCESS_FLAG=$? tar czf ${dbname}_$(date +%Y-%m-%d).tar.gz ${dbname}_$(date +%Y-%m-%d)/ rm -rf ${dbname}_$(date +%Y-%m-%d)/ move_to_media_server ${back_path}/${dbname}_$(date +%Y-%m-%d).tar.gz if [ $? -eq 1 ];then echo $ERROR_INFO fi del_log_by_time "${back_path}" $file_backup_max_stay_days "${dbname}_*.tar.gz" del_log_by_time "${back_path}" $file_backup_max_stay_days "${dbname}_*.log" done fi echo "结束备份!"}
function run(){ if [ "$DB_PORT" == "" ];then DB_PORT=3306 fi backup_full}run $@

4.过滤大表导出数据库

#!/bin/bash#execute all script in specified directorydt=`date +%Y%m%d%H%M`db_IP=127.0.0.1   # 测试库IPdb_pass=abc@123   # 测试库密码db_name=test      # 测试库名称db_port=3306      # 测试库端口
MAX=100 #大表定义,将不会导出超过100MB的表
dir=exp_$dt #导出目录cd /testmkdir $dir
# 导出echo "查询 测试库大于$MAX的大表,并存入big_test.txt"mysql -uroot -h$db_IP -p$db_pass -P$db_port -N -e "select concat('$db_name.', TABLE_NAME) from (SELECT TABLE_NAME,DATA_LENGTH,INDEX_LENGTH,(DATA_LENGTH+INDEX_LENGTH) as length,TABLE_ROWS,round((DATA_LENGTH+INDEX_LENGTH)/1024/1024,3) as total_size FROM information_schema.TABLES WHERE TABLE_SCHEMA='$db_name' ) a where a.total_size>$MAX;" >>/test/$dir/big_test.txtecho "已找到"#排除大表导出mydumper -h $db_IP -u root -p $db_pass -P $db_port -G -E -R -B $db_name -O /test/$dir/big_test.txt -o /test/$dir/test -v 3 -t 4 -k#单独导出大表结构,无数据cat /test/$dir/big_test.txt |while read linedomysqldump -h$db_IP -uroot -p$db_pass -d $db_name ${line#*.} >> /test/$dir/$line.sqlecho $linedoneecho "导出 测试库成功!"

 

图片*欢迎关注*

 

收录于合集 #项目运维  9个 上一篇网络基本常识总结 阅读 4008   数据与共享 64篇原创内容       写下你的留言 精选留言
  • ℡._落oο   来自浙江   再来多点脚本~   数据与共享   (作者)   可以,抽时间整理一下。  
已无更多数据    

标签:脚本,-%,常用,log,db,days,test,dir
From: https://www.cnblogs.com/cherishthepresent/p/17500725.html

相关文章

  • golang 常用控制协程的三种方式
    waitGroupwaitGroup这种方式适用于一个任务可以被拆分成几个子任务,并且子任务之间的关联程度不高,全部的子任务都完成,才会进行下一阶段的任务。packagemainimport( "fmt" "sync" "time")funcmain(){ varwgsync.WaitGroup wg.Add(3) gofunc(){ deferwg.Do......
  • 用applescript脚本实现检测手机号码是否注册imessage的原理
    一、检测数据的两种方式:1.人工筛选,将要验证的号码输出到文件中,以逗号分隔。再将文件中的号码粘贴到iMessage客户端的地址栏,iMessage客户端会自动逐个检验该号码是否为iMessage账号,检验速度视网速而定。红色表示不是iMessage账号,蓝色表示iMessage账号。2.编写脚本控制Macos/iphon......
  • linux 中shell脚本实现统计每一个read的长度
     001、[root@PC1test02]#lstest.fastq[root@PC1test02]#cattest.fastq##测试fastq数据@SRR8442980.988/2AAGG+:[email protected]/2AAGGTC+:FFF:,@SRR8442980.1134/1AAAAAAAATATAATTCCA+FFFFFFFFFFFFFFFFFF[root@PC1test02]#awk'{if((NR%......
  • 2023年最新5000道校招常用编程面试题分享(附详细题解)
    截止到2021年最新,本资源整理了近5000道校招常用面试题,并附带详细的解题思路及代码,包含leetcode,校招笔试题,面试题,算法题,语法题。持续更新中。。。目录内容截图......
  • Arthas常用的命令(三)--monitor、jad 、stack
    monitor:监控方法的执行情况监控指定类中方法的执行情况用来监视一个时间段中指定方法的执行次数,成功次数,失败次数,耗时等这些信息参数说明方法拥有一个命名参数[c:],意思是统计周期(cycleofoutput),拥有一个整型的参数值参数名称参数说明class-pattern类名表达式匹......
  • 历史最全互联网公司常用框架源码赏析整理分享
    “技术深度”与“技术广度”是对开发者来说最为重要的两个维度,本项目致力于从源码层面,剖析和挖掘互联网行业主流技术的底层实现原理,为广大开发者“提升技术深度”提供便利。目前开放的有Spring全家桶、Mybatis、Netty、Dubbo框架,及Redis、Tomcat中间件等,让我们一起开......
  • xshell 常用命令
    Linux常用命令工具xshell工具链接:https://pan.baidu.com/s/1gLwhcbPQuRbOWK87sjTmBQ提取码:ep4nputty工具下载地址:https://www.putty.org/ xshell 常用快捷键#停止日志chrl+s#继续日志ctr......
  • Thread类中的常用线程调度方法sleep、yield、join
    sleepsleep方法是在Thread类中的一个静态方法,当一个线程调用了sleep方法,被调用的那个线程就会暂时的让出指定时间的CPU执行权,在这段时间也不会参与CPU的调度,当时间到了之后,就会重新回到就绪状态,等待CPU的再次调度,注意是就绪状态,而不是重新拿回CPU的执行权。并且,在休眠期间,只是会......
  • 适合新手的12个Mybatis-Plus常用注解
    mybatis-plus简介MyBatis-Plus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。愿景是成为MyBatis最好的搭档!官方地址:https://baomidou.com/文档发布地址:https://baomidou.com/pages/24112f常用注解(12个)1、@MapperScan......
  • shell脚本字体颜色和背景色
      !/bin/bash##下面是字体输出颜色及终端格式控制#字体色范围:30-37echo-e"\033[30m黑色字\033[0m"echo-e"\033[31m红色字\033[0m"echo-e"\033[32m绿色字\033[0m"echo-e"\033[33m黄色字\033[0m"echo-e"\033[34m蓝色字\0......