shell
刘先生我在呀
加油加油加油
展开
-
Shell脚本实现Mysql持续kill功能-优化版
【代码】Shell脚本实现Mysql持续kill功能-优化版。原创 2023-07-19 17:58:41 · 156 阅读 · 0 评论 -
使用shell脚本分批删除mysql大表数据(一主三从)---优化版本
最近在工作中遇到了一个需求,需要对一个8亿数据量的大表使用pt工具修改表结构,因为在业务侧这个确实也没有用到这个表这么久的数据,所以顺便优化一下大表,想的是只保留7天数据即可,所以这里使用shell脚本来进行对表删除数据,这个mysql的架构是一主三从,所以删除的时候要考虑到主从同步延迟问题。PS:删除的时候一定要注意观察CPU利用率和主从同步延迟问题。原创 2022-09-24 21:55:29 · 689 阅读 · 0 评论 -
使用shell脚本分批删除mysql大表数据(一主三从)
最近在工作中遇到了一个需求,需要对一个8亿数据量的大表使用pt工具修改表结构,因为在业务侧这个确实也没有用到这个表这么久的数据,所以顺便优化一下大表,想的是只保留7天数据即可,所以这里使用shell脚本来进行对表删除数据,这个mysql的架构是一主三从,所以删除的时候要考虑到主从同步延迟问题。PS:删除的时候一定要注意观察CPU利用率和主从同步延迟问题。原创 2022-09-20 23:37:09 · 833 阅读 · 0 评论 -
Linux中sed 和<<EOF的用法
sed是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。可以看到,sed命令会对每一行文本都进行处理!原创 2022-09-19 22:05:35 · 685 阅读 · 0 评论 -
Shell脚本批量对157台服务器打通网络、配置免密、重置root密码
一、背景机房搬迁项目,需要把157台服务器搬迁到新的机房(Hadoop集群),因为项目比较紧急,客户着急使用,我负责的是对157服务器做系统层面的配置,直到交付给重庆移动的4A部门。记录一下在此期间使用的脚本,以及当时的思路。二、思路1、操作系统:因为原有服务器的系统大部分都是redhat7.4,所以系统的话,只需要对个别服务器进行重装。2、网络配置:网络配置的话,分为管理IP地址以及业务IP地址,因为已经重新规划了IP地址,所以每一台服务器都会做更改,在这里我想的是先把管理IP地址打通,这样的话,原创 2022-05-26 23:05:31 · 719 阅读 · 0 评论 -
lftp上传文件以及使用pipe把文件入库到redis
环境:两台云服务器,124.221.164.83是redis服务端,113.31.104.71是客户端,这里我做了防火墙策略,所以不用担心云服务器端口暴露被黑的问题。思路:刚开始想的是把文件上传到对端服务器然后再执行入库命令,但是其实没有必要这样,其实直接在本地也可以用命令入库到对端redis,只需要端口通了即可。配置防火墙策略,指定ip访问redis:iptables -I INPUT -s 113.31.104.71 -p tcp --dport=6379 -j ACCEPTiptables -原创 2022-05-20 00:20:39 · 446 阅读 · 0 评论 -
Linux shell 脚本之shift 命令实战
位置参数可以用shift命令左移。比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1、$2、$3丢弃,$0不移动。不带参数的shift命令相当于shift 1。非常有用的 Unix 命令:shift。我们知道,对于位置变量或命令行参数,其个数必须是确定的,或者当 Shell 程序不知道其个数时,可以把所有参数一起赋值给变量$*。若用户要求 Shell 在不知道位置变量个数的情况下,还能逐个的把参数一一处理,也就是在 $1 后为 $2,在 $2 后面为 $3 等。在 shi原创 2022-02-25 14:50:38 · 1378 阅读 · 0 评论 -
Linux Shell判断文件存在并且不为空
-a检查文件是否存在-b检查是否为块特殊文件[1]-c检查是否为字符特殊文件[2]-d检查是否为文件夹-e检查文件是否存在-f检查是否为常规文件[3]-g检查gid[4]是否被置位-G检查是否有相同的组ID-k检查防删除位是否被置位-L检查是否为符号链接[5]-n判断字符串长度是否不为0-O检查文件是否被当前进程的user ID拥有-p检查文件是否为FIFO[6]特殊文件或命名管道[7]-r...原创 2022-02-10 09:37:33 · 5453 阅读 · 0 评论 -
脚本里面read和管道符(|)一起使用的解决方案
脚本里面read和管道符一起使用的解决方案原创 2021-12-13 18:56:16 · 822 阅读 · 1 评论 -
shell计算香蕉
#!/bin/bashcount=1for i in {1..8}do count=$[ ($count + 1) * 2 ]doneecho $count原创 2021-07-19 16:44:38 · 66 阅读 · 0 评论 -
用Shell实现对所有进程所占内存大小进行排序(冒泡算法)
下面通过冒泡算法编写一个根据当前系统所有进程所占物理内存大小的排序脚本#!/bin/bashtmpfile="/tmp/procs_mem_$$.txt"ps --no-headers -eo comm,rss > $tmpfile#定义函数实现冒泡排序#使用i控制进行几轮的比较,使用j控制每轮比较的次数#使用变量len读取数组的个数,根据内存大小进程排序,并且调整对应的进程名称的顺序proc_order () {local i jlocal len=$1for ((原创 2021-08-03 08:52:35 · 624 阅读 · 1 评论 -
shell 实现冒泡排序算法
思路:冒泡排序不断地比较相邻两个数据的大小,根据大小进行排序(升序或者降序),如果顺序不对则彼此交换位置,以此类推,当所有数据比较完成后,肯定能找出一个最大值或者最小值。...原创 2021-07-29 10:26:05 · 785 阅读 · 0 评论 -
使用shell脚本实现石头剪刀布对战小游戏
#!/bin/bash#功能描述:石头剪刀布游戏。#计算机根据生成的随机数出拳,并提示用户出拳。#将用户的输入与计算机产生的随机数进行比较,判断输赢。# 1.石头;2.剪刀;3.布computer=$[$RANDOM%3+1]clearecho "###################"echo "# 石头剪刀布游戏 #"echo -e "#\033[32m 请根据下列提示出拳: \033[0m#"echo "###################"echo "|--原创 2021-07-19 09:52:54 · 1211 阅读 · 5 评论 -
shell脚本实现查看主机telnet是否开启
脚本如下:[root@localhost ~]# #!/sbin/sh [root@localhost ~]# export LANG=C #解决乱码问题[root@localhost ~]# FTPSTATUS=`netstat -ant|grep -i "listen"|grep ":21\>"|wc -l`[root@localhost ~]# function Check_ftpusers() > { > if [ -f /etc/vsftpd.ftpusers ]&原创 2021-06-21 20:20:35 · 677 阅读 · 0 评论 -
RHEL8.3升级openssh8.6(shell脚本)
由于公司有漏洞要求,需要升级到openssh8.6,因为不止一台,所以这里用脚本的方式来实现。要是生产环境的话,升级前最好安装下telnet,确保telnet能够登陆。脚本如下所示:#!/bin/bash# 使用前提 : # 1. 配置好yum源# 2. 防止断连,开启telnet服务# 3. 上传最新版的软件包# #需要手动修改的变量version="ssh_8.6" #定义版本号soft_dir="opt" # 上传安装介质的目录ssh_media="openssh-8.6p原创 2021-06-19 18:14:57 · 743 阅读 · 0 评论 -
shell脚本实现把文本数据导入Redis
今年公司注重实时相关的业务,但是平台Hive入Redis的功能还没上线,只能通过脚本实现把Hive里的数据定时导入Redis。前提:Hive表的数据已导出为竖线分割的文本格式。文本数据:Shell脚本如下:#!/bin/bashfunction Clean(){incre=0while read rowdo #echo "${row}"; for i in ${row} do telnum=$(echo "${i}" |awk -F "|" '{print $1}'原创 2021-05-10 20:52:42 · 884 阅读 · 2 评论 -
RedHat 7.4升级openssh8.4教程(附带脚本、资源下载)
资源下载:openssl-1.1.0h.tar.gzopenssh-8.4p1.tar.gz这里公司没有要求要升级openssl,所以脚本里面对openssl升级的地方都已经注释,需要的小伙伴可以根据需要自行下载。要是生产环境的话,升级前最好安装下telnet,确保telnet能够登陆。#!/bin/bash# 使用前提 : # 1. 配置好yum源# 2. 防止断连,开启telnet服务# 3. 上传最新版的软件包##需要手动修改的变量version="ssh_8.4" #定义版原创 2021-04-12 20:30:53 · 456 阅读 · 0 评论 -
shell脚本实现用ftp批量上传文件
shell脚本如下所示:#!/bin/bashfor i in `ls /ftp`;do ftp -n -i 172.29.155.250 <<EOF user userftp1 gbase put /ftp/$i $i.tmp rename $i.tmp $i quitEOFdone效果如下:客户端:[root@hadoop2 /]# ls -lrt /ftp/total 0-rw-r--r-- 1 root root 0 Mar 5 10:45 5原创 2021-03-05 16:51:46 · 1258 阅读 · 0 评论 -
shell脚本实现自动判断文件个数以及批量拷贝接口文件和检验文件到指定目录
interface.txt 内容如下:root@hadoop:/opt/dfp/bak_interface# cat interface.txt I180013I180012I180011A300003A100003脚本如下:#!/bin/bash time=$(date -d "-2 day" +%Y%m%d)while read linedo cd /opt/dfp/bak_interface/20210301 line1=$(ls -l | grep "原创 2021-03-03 14:01:57 · 447 阅读 · 0 评论 -
9行代码实现ssh多个服务器执行相同命令
在工作中大家肯定遇到过要进入不同的服务器执行命令,这个脚本实现了进入不同服务器执行相同命令,节省了大量的时间。脚本如下所示:#!/bin/bashFILE_LIST=/opt/myshell/listCMD=$1NAME=$2for IP in `cat $FILE_LIST|grep -v '^#'|grep "|$NAME" |awk -F'|' '{print $1}'`do echo "--------------------$IP------------------ "原创 2020-11-04 16:55:06 · 794 阅读 · 0 评论