网易首页 > 网易号 > 正文 申请入驻

7 个非常实用的 Shell 拿来就用脚本实例

0
分享至

1、并发从数台机器中获取 hostname,并记录返回信息花费的时长,重定向到一个文件 hostname.txt 中,在全部完成后输出花费时长最短的那台机器的 CPU 信息。

#!bin/bash


# 所以主机,以空格分隔
ALL_HOSTS=(IP 地址 IP 地址)

for host in ${ALL_HOSTS[*]}
do
start_time=$(date +'%s')
ssh $host "hostname" &>/dev/null
sleep 2
stop_time=$(date +'%s')
time_consuming=$((stop_time-start_time))
echo "$host: $time_consuming" >>hostname.txt
done

wait

host=$(sort -n -k 2 hostname.txt | head -1 | awk -F':' '{print $1}')

ssh $host "top -b -n 1"

2、统计 /proc 目类下 Linux 进程相关数量信息,输出总进程数,running 进程数,stoped 进程数,sleeing 进程数,zombie 进程数。

输出所有 zombie 的进程到 zombie.txt 杀死所有 zombie 进程。

#!/bin/bash

ALL_PROCESS=$(ls /proc/ | egrep '[0-9]+')

running_count=0
stoped_count=0
sleeping_count=0
zombie_count=0

for pid in ${ALL_PROCESS[*]}
do
test -f /proc/$pid/status && state=$(egrep "State" /proc/$pid/status | awk '{print $2}')
case "$state" in
R)
running_count=$((running_count+1))
;;
T)
stoped_count=$((stoped_count+1))
;;
S)
sleeping_count=$((sleeping_count+1))
;;
Z)
zombie_count=$((zombie_count+1))
echo "$pid" >>zombie.txt
kill -9 "$pid"
;;
esac
done


echo -e "total: $((running_count+stoped_count+sleeping_count+zombie_count))\nrunning: $running_count\nstoped: $stoped_count\nsleeping: $sleeping_count\nzombie: $zombie_count"

3、把当前目录(包含子目录)下所有后缀为 ".sh" 的文件后缀变更为 ".shell",之后删除每个文件的第二行。

#!/bin/bash


ALL_SH_FILE=$(find . -type f -name "*.sh")
for file in ${ALL_SH_FILE[*]}
do
filename=$(echo $file | awk -F'.sh' '{print $1}')
new_filename="${filename}.shell"
mv "$file" "$new_filename"
sed -i '2d' "$new_filename"
done

4、判断目录 /tmp/jstack 是否存在,不存在则新建一个目录,若存在则删除目录下所有内容。

每隔 1 小时打印 inceptor server 的 jstack 信息,并以 jstack_${当前时间} 命名文件,每当目录下超过 10 个文件后,删除最旧的文件。

#!/bin/bash


DIRPATH='/tmp/jstack'
CURRENT_TIME=$(date +'%F'-'%H:%M:%S')

if [ ! -d "$DIRPATH" ];then
mkdir "$DIRPATH"
else
rm -rf "$DIRPATH"/*
fi

cd "$DIRPATH"

while true
do
sleep 3600
# 这里需要将inceptor改后自己的java进程名称
pid=$(ps -ef | grep 'inceptor' | grep -v grep | awk '{print $2}')
jstack $pid >> "jstack_${CURRENT_TIME}"
dir_count=$(ls | wc -l)
if [ "$dir_count" -gt 10 ];then
rm -f $(ls -tr | head -1)
fi
done

5、从 test.log 中截取当天的所有 gc 信息日志,并统计 gc 时间的平均值和时长最长的时间。

#!/bin/bash

awk '{print $2}' hive-server2.log | tr -d ':' | awk '{sum+=$1} END {print "avg: ", sum/NR}' >>capture_hive_log.log
awk '{print $2}' hive-server2.log | tr -d ':' | awk '{max = 0} {if ($1+0 > max+0) max=$1} END {print "Max: ", max}'>>capture_hive_log.log

6、查找 80 端口请求数最高的前 20 个 IP 地址,判断中间最小的请求数是否大于 500,如大于 500,则输出系统活动情况报告到 alert.txt,如果没有,则在 600s 后重试,直到有输出为止。

#!/bin/bash


state="true"

while $state
do
SMALL_REQUESTS=$(netstat -ant | awk -F'[ :]+' '/:22/{count[$4]++} END {for(ip in count) print count[ip]}' | sort -n | head -20 | head -1)
if [ "$SMALL_REQUESTS" -gt 500 ];then
sar -A > alert.txt
state="false"
else
sleep 6
continue
fi
done

7、将当前目录下大于 10K 的文件转移到 /tmp 目录,再按照文件大小顺序,从大到小输出文件名。

#!/bin/bash


# 目标目录
DIRPATH='/tmp'
# 查看目录
FILEPATH='.'

find "$FILEPATH" -size +10k -type f | xargs -i mv {} "$DIRPATH"
ls -lS "$DIRPATH" | awk '{if(NR>1) print $NF}'

以上,就是今天分享的 7 个实用的 Shell 脚本案例。

希望大家能通过这些案例能够学以致用,结合自身的实际场景进行运用,从而提高自己的工作效率。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
中国跟不跟,美国陆军新换的6.8x43毫米步枪会领先中国吗?

中国跟不跟,美国陆军新换的6.8x43毫米步枪会领先中国吗?

万乘之尊
2024-04-19 08:04:18
阚清子,又白又大又深,我感觉掉进去就爬不上来了

阚清子,又白又大又深,我感觉掉进去就爬不上来了

娱乐圈酸柠檬
2024-04-17 21:19:08
浙江G1胜上海各界说了啥?攻守压制上海,浙江却被看衰,培根被喷

浙江G1胜上海各界说了啥?攻守压制上海,浙江却被看衰,培根被喷

元爸体育
2024-04-20 04:10:25
证监会:科学合理保持新股发行常态化,支持部分优质未盈利科技企业上市

证监会:科学合理保持新股发行常态化,支持部分优质未盈利科技企业上市

第一财经资讯
2024-04-19 23:06:09
华为一旦突破芯片技术,就可以横扫全球高科技公司,事实是什么?

华为一旦突破芯片技术,就可以横扫全球高科技公司,事实是什么?

创作者朱海平
2024-04-19 13:04:36
证监会IPO最新通告!今日凌晨的三大利好正式袭来

证监会IPO最新通告!今日凌晨的三大利好正式袭来

逆潮流财经
2024-04-20 01:25:03
“水老虎”落马:家中搜出黄金37公斤,房产证68本,现金1.2亿元

“水老虎”落马:家中搜出黄金37公斤,房产证68本,现金1.2亿元

天闻地知
2024-04-18 16:43:18
实锤!备孕7年才生娃,老公早跟嫩模同居了!

实锤!备孕7年才生娃,老公早跟嫩模同居了!

继果
2024-04-17 22:58:54
排队道歉!辽篮饱受质疑之人成功上位 乌戈的信任得到回报

排队道歉!辽篮饱受质疑之人成功上位 乌戈的信任得到回报

胖子喷球
2024-04-19 08:57:43
5任市长落马后,广东这座城市又有市领导被双开

5任市长落马后,广东这座城市又有市领导被双开

中国青年报
2024-04-18 20:31:11
见娃心切,汪小菲突袭校门口,孩子反应冷淡,汪小菲当场抹眼泪

见娃心切,汪小菲突袭校门口,孩子反应冷淡,汪小菲当场抹眼泪

大双
2024-04-19 16:04:50
河南暴发户居安思危,将5箱茅台和50万现金埋土30年,挖开后却傻眼

河南暴发户居安思危,将5箱茅台和50万现金埋土30年,挖开后却傻眼

古今档案
2024-04-14 23:21:46
让人震惊的薪酬,揭下了东北人口流失原因的遮羞布,免费打工得了

让人震惊的薪酬,揭下了东北人口流失原因的遮羞布,免费打工得了

古装影视解说阿凶
2024-04-17 13:48:38
王震坚决反对中顾委副主任排名,薄一波:我是常务,就这样定了

王震坚决反对中顾委副主任排名,薄一波:我是常务,就这样定了

荒沙历史
2024-04-19 06:30:03
光刻机闹剧结束! 荷兰正式表态, 人民日报说得很对

光刻机闹剧结束! 荷兰正式表态, 人民日报说得很对

奇葩在哪儿
2024-04-18 20:53:07
格拉利什:数据不是评价球员的唯一标准,人们现在痴迷于统计它

格拉利什:数据不是评价球员的唯一标准,人们现在痴迷于统计它

直播吧
2024-04-20 09:35:21
还得是张兰,放出了一系列猛料,这是要把大S送进去的节奏吗?

还得是张兰,放出了一系列猛料,这是要把大S送进去的节奏吗?

七阿姨爱八卦
2024-03-21 10:54:29
南京理工大学,重磅Science:聚酯膜!挑战聚酰胺膜,用于高性能反渗透海水淡化!

南京理工大学,重磅Science:聚酯膜!挑战聚酰胺膜,用于高性能反渗透海水淡化!

高分子科学前沿
2024-04-19 07:13:09
留学生回国的“报复性消费”!看了网友分享瞬间就明白了。

留学生回国的“报复性消费”!看了网友分享瞬间就明白了。

小怪吃美食
2024-04-19 17:15:50
11.5亿欧!国米收购即将完成,高层抬价成功,美国老板将接手

11.5亿欧!国米收购即将完成,高层抬价成功,美国老板将接手

祥谈体育
2024-04-19 15:12:39
2024-04-20 09:48:49
互联网干货博主
互联网干货博主
我是专注分享互联网干货的博主
278文章数 1333关注度
往期回顾 全部

科技要闻

华为今年最关键的事曝光!Pura 70有新消息

头条要闻

研究生疑遭室友投毒身亡 事发宿舍楼每间寝室住4人

头条要闻

研究生疑遭室友投毒身亡 事发宿舍楼每间寝室住4人

体育要闻

米切尔这次对线不会输了吧

娱乐要闻

北影节开幕之夜,内娱女星千娇百媚

财经要闻

新华资管香港的秘密:猛投地产或致巨亏

汽车要闻

风神L7预售 东风汽车北京车展阵容公布

态度原创

时尚
本地
亲子
艺术
军事航空

放弃牛仔裤吧,入夏是穿“裙子”的季节!遮肉显瘦谁穿谁优雅

本地新闻

春色满城关不住|千阳春日限定美景上线了!

亲子要闻

为了吃一口辣条,人类幼崽上演一出调虎离山计!

艺术要闻

最全展览单元剧透!北京最受瞩目艺术现场100青年艺术季终极解读

军事要闻

伊朗总统发声 未提及伊斯法罕爆炸声

无障碍浏览 进入关怀版