- 博客(105)
- 收藏
- 关注
原创 zabbix监控修改主机名为中文导致触发器故障(耗时一天)
系统环境:Linux localhost.localdomain 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux CentOS release 6.5 (Final)软件版本:Zabbix 4.2.4. © 2001–2019, Zabbix SIA问题:按要求搭建并优化部分功能已完成,在最近需要添加一些网络监控设备时,发现添加的设备与自带的模板关联时,发现触发器在we
2020-07-19 12:06:20
731
1
原创 自定义rm
例100需求:linux系统的rm命令太危险,一不小心就会删除掉系统文件。 写一个shell脚本来替换系统的rm命令,要求当删除一个文件或者目录时,都要做一个备份,然后再删除。下面分两种情况,做练习:简单假设有一个大的分区/data/,每次删除文件或者目录之前,都要先在/data/下面创建一个隐藏目录,以日期/时间命名,比如/data/.201703271012/,然后把所有删除的文件同步...
2019-12-23 20:17:20
192
原创 修改文本格式
例99需求:请把下面的字符串:zhangsany97JbzPrulisi5JhvCls6qxiaowangNnr8qt2MalaomaiqMtvC02yzhaosi9fxrb4sJD改为如下:zhangsan:y97JbzPrulisi:5JhvCls6qxiaowang:Nnr8qt2Malaoma:iqMtvC02yzhaosi:9fxrb4sJD#!/b...
2019-12-23 20:15:32
229
原创 截取字符串
例98需求:利用你学过的知识点,想办法根据要求截取出字符。字符串var=http://www.aaa.com/root/123.htm1.取出www.aaa.com/root/123.htm2.取出123.htm3.取出http://www.aaa.com/root4.取出http:5.取出http://6.取出root/123.htm7.取出123#!/bin/bash#这...
2019-12-23 20:10:38
106
原创 打印三角形
例97需求:之前咱们打印过正方形,也打印过乘法口诀,那今天来打印一个三角形(正三角形,元素用*表示)。#!/bin/bash#这个脚本用来打印三角形#作者:xzm#日期:2019-12-23while truedo read -p "please input the lenth: " n if [ -z $n ] then echo "要输入一...
2019-12-23 20:08:53
195
原创 并发备份数据库
例96需求:领导要求小明备份数据库服务器里面的100个库(数据量在几十到几百G),需要以最快的时间完成(5小时内),并且不能影响服务器性能。#!/bin/bash#这个脚本用来并发备份数据库#作者:xzm#日期:2019-12-23##假设100个库的库名、host、port以及配置文件路径存到了一个文件里,文件名字为/tmp/databases.list##格式:db1 10.10...
2019-12-23 20:07:20
122
原创 自动挂载云盘
例95需求:我们使用的云主机,购买一块云盘后,默认并不是挂载状态的,用shell写一个脚本,只要把盘符和挂载点以参数的形式提供给脚本,该脚本就可以自动格式化、挂载。要求:不用分区,直接格式化格式化为ext4文件系统类型#!/bin/bash#这个脚本用来自动挂载磁盘#作者:xzm#日期:2019-12-20if [ $# -ne 2 ]then echo "Usea...
2019-12-20 17:53:43
140
原创 批量查多台机器负载
例94需求:假如公司的一个业务,域名为www.aminglinux.com,现在有5台机器在跑。为了快速查看这5台机器的负载,需要你写一个Shell脚本,运行脚本后,就能一下子把5台机器的负载全部打印出来。#!/bin/bash#这个脚本用来批量查机器负载#作者:xzm#日期:2019-12-20for ip in `cat /tmp/ip.list`do echo $ip ...
2019-12-20 17:50:58
118
原创 一键安装配置samba
例93写个shell脚本,能够实现一键安装并配置samba服务,执行该脚本时需要带一个参数,为共享的目录,目录若不存在,需自动创建要求,任何人都可以访问,且不用密码,并且目录是只读的。#!/bin/bash#这个脚本用来一键安装并配置samba#作者:猿课-阿铭 www.apelearn.com#日期:2018-12-17if [ "$#" -ne 1 ]then echo...
2019-12-20 17:48:26
334
原创 docker管理脚本
例92需求:写一个脚本,实现一键管理docker容器,比如启动、关闭、删除容器等操作。要求:脚本支持启动全部容器、关闭全部容器、删除全部容器需要提示用户如何使用该脚本,需给出范例#!/bin/bash#这个脚本用来管理docker容器#作者:xzm#日期:2019-12-20while truedo read -p "请输入你要执行的操作:(stop/start/r...
2019-12-20 17:45:49
251
原创 部署mysql主从
例91需求:shell部署mysql主从核心要点:步骤一:主上盖配置文件,打开bin-log,设定server_id,设定ignore_db ,重启,授权用户,锁表,show master status从上改文件,设定server_id 重启,stop slave,change master ,start slave.在主上写一个脚本,所有在此脚本中完成,包括写expect脚本和执行ex...
2019-12-20 17:42:09
82
原创 自动秘钥认证
例90写一个shell脚本,当我们执行时,提示要输入对方的ip和root密码,然后可以自动把本机的公钥增加到对方机器上,从而实现密钥认证。#!/bin/bash#这个脚本用来自动配置密钥认证#作者:xzm#日期:2019-12-19read -p "输入一个IP地址: " ipread -p "输入此机器的root密码: " pasdis_install(){ if ! ...
2019-12-19 21:56:32
156
原创 检查域名是否到期
例89需求:写一个shell脚本,查询指定域名的过期时间,并在到期前一周,每天发一封提醒邮件。#!/bin/bash#这个脚本用来检查域名是否到期#作者:xzm#日期:2019-12-19mail_u=admin@admin.com#当前日期时间戳,用于和域名的到期时间做比较t1=`date +%s`#检测whois命令是否存在,不存在则安装jwhois包is_install_...
2019-12-19 21:55:04
494
原创 去掉文件名后缀
例88需求:至少用两种方法,批量把当前目录下面所有文件名后缀为.bak的后缀去掉,比如1.txt.bak去掉后为1.txt#!/bin/bash#这个脚本用来去掉文件名后缀#作者:xzm#日期:2019-12-19for f in `ls -d ./*.bak `do#mv $f `echo $f|sed 's/.bak$//'` f1=`echo $f|awk -F ...
2019-12-19 21:53:31
669
原创 彻底关闭tomcat服务
例87需求:在生产环境中,经常遇到tomcat无法彻底关闭,也就是说用tomcat自带shutdown.sh脚本无法将java进程完全关掉。所以,需要借助shell脚本,将进程杀死,然后再启动。写一个shell脚本,实现上述功能。彻底杀死一个进程的命令是 kill -9 pid。#!/bin/bash#这个脚本用来彻底杀死Tomcat进程#作者:xzm#日期:2019-12-19di...
2019-12-19 21:51:53
2082
原创 关闭服务
例86需求:在centos6系统里,我们可以使用ntsysv关闭不需要开机启动的服务,当然也可以使用chkconfig工具来实现。写一个shell脚本,用chkconfig工具把不常用的服务关闭。脚本需要写成交互式的,需要我们给它提供关闭的服务名字。#!/bin/bash#这个脚本用来关闭服务#作者:xzm#日期:2019-12-19LANG=enwhile :do ch...
2019-12-19 21:47:19
170
原创 统计并发量
例85需求:需要统计网站的并发量,并绘图。 只需要写出shell脚本即可,不用关心zabbix配置。假设日志路径 /data/logs/www.aaa.com_access.log日志格式如下:112.107.15.12 - [07/Nov/2018:09:59:01 +0800] www.aaa.com “/api/live.php” 200"-" “Mozilla/4.0 (compa...
2019-12-19 21:45:33
556
原创 代码上线
例84需求:一个业务,有3台服务器(A,B,C)做负载均衡,由于规模太小目前并未使用专业的自动化运维工具。有新的需求时,开发同事改完代码会把变更上传到其中一台服务器A上。但是其他2台服务器也需要做相同变更。写一个shell脚本,把A服务器上的变更代码同步到B和C上。其中,你需要考虑到不需要同步的目录(假如有tmp、upload、logs、caches)#!/bin/bash#这个脚本用来...
2019-12-18 17:52:27
91
原创 打印城市名称
例83需求:写一个脚本让用户输入多个城市的名字(可以是中文),要求不少于5个,然后把这些城市存到一个数组里,最后用for循环把它们打印出来。#!/bin/bash#这个脚本用来打印城市名字#作者:xzm#日期:2019-12-18read -p "输入不少于5个城市的名字,用空格分隔开。" namen=`echo $name|awk '{print NF}'`if [ $n -lt...
2019-12-18 17:37:30
305
原创 查看tomcat日志
例82需求:写一个截取tomcat catalina.out日志的脚本tomcat实例t1-t4# find /opt/TOM/ -name catalina.out/opt/TOM/t1/logs/catalina.out/opt/TOM/t3/logs/catalina.out/opt/TOM/t4/logs/catalina.out/opt/TOM/t2/logs/ca...
2019-12-18 17:20:00
158
原创 监控磁盘IO
例89需求:阿里云的机器,今天收到客服来的电话,说服务器的磁盘io很重。于是登录到服务器查看,并没有发现问题,所以怀疑是间歇性地。正要考虑写个脚本的时候,幸运的抓到了一个线索,造成磁盘io很高的幕后黑手是mysql。此时去show processlist,但未发现有问题的队列。原来只是一瞬间。只好继续来写脚本,思路是,每5s检测一次磁盘io,当发现问题去查询mysql的processlist。...
2019-12-18 17:09:42
137
原创 房贷计算器
例80需求:贷款有两种还款的方式:等额本金法和等额本息法,简单说明一下等额本息法与等额本金法的主要区别:等额本息法的特点是:每月的还款额相同,在月供中“本金与利息”的分配比例中,前半段时期所还的利息比例大、本金比例小,还款期限过半后逐步转为本金比例大、利息比例小。所支出的总利息比等额本金法多,而且贷款期限越长,利息相差越大。等额本金法的特点是:每月的还款额不同,它是将贷款额按还款的总月数均分...
2019-12-18 16:46:53
362
原创 删除日志
例79需求:两类机器一共300多台,写个脚本自动清理这两类机器里面的日志文件。在堡垒机批量发布,也要批量发布到crontab里面。A类机器日志存放路径很统一,B类机器日志存放路径需要用匹配(因为这个目录里除了日志外,还有其他文件,不能删除。匹配的时候可用.log)A类:/opt/cloud/log/ 删除7天前的B类: /opt/cloud/instances/ 删除15天前的要求...
2019-12-18 16:42:54
155
原创 删除日志
例79需求:两类机器一共300多台,写个脚本自动清理这两类机器里面的日志文件。在堡垒机批量发布,也要批量发布到crontab里面。A类机器日志存放路径很统一,B类机器日志存放路径需要用匹配(因为这个目录里除了日志外,还有其他文件,不能删除。匹配的时候可用.log)A类:/opt/cloud/log/ 删除7天前的B类: /opt/cloud/instances/ 删除15天前的要求...
2019-12-18 16:42:09
119
原创 处理文本
例78需求:有如下文本,其中前5行内容为1111111:134432534562222222:132112221221111111:136435435443333333:123412431232222222:12123123123用shell脚本处理后,按下面格式输出:[1111111]1344325345613643543544[2222222]13211222122...
2019-12-17 17:02:38
82
原创 老日志打包
例77需求:写一个脚本查找/data/log目录下,创建时间是3天前,后缀是*.log的文件,打包后发送至192.168.1.2服务上的/data/log下,并删除原始.log文件,仅保留打包后的文件。#!/bin/bash#这个脚本用来查找老日志打包#作者:xzm#日期:2019-12-17cd /data/logfind . -type f -name “*.log” -mtim...
2019-12-17 16:56:19
181
1
原创 杀进程
例76需求:linux系统中,目录/root/下有一个文件ip-pwd.ini,内容如下:10.111.11.1,root,xyxyxy10.111.11.2,root,xzxzxz10.111.11.3,root,12345610.111.11.4,root,xxxxxx文件中每一行的格式都为linux服务器的ip,root用户名,root密码,请用一个shell批量将这些服务器中...
2019-12-17 16:53:30
105
原创 小函数
例75需求:请撰写一个shell函数,函数名为 f_judge,实现以下功能当/home/log目录存在时将/home目录下所有tmp开头的文件或目录移到/home/log目录。当/home/log目录不存在时,创建该目录,然后退出。#!/bin/bash#这个脚本用来写一个小函数#作者:xzm#日期:2019-12-17f_judge(){ if [ -d ...
2019-12-17 16:45:52
115
原创 格式化xml
例74需求linux系统 /home目录下有一个文件test.xml,内容如下:<configuration> <artifactItems> <artifactItem> <groupId>zzz</groupId> <artifactId>aaa</artifa...
2019-12-17 16:42:44
124
原创 问候
例73写一个脚本,依次向/etc/passwd中的每个用户问好,并且说出对方的ID是什么,如:Hello, root,your UID is 0.#!/bin/bash#这个脚本用来问候用户#作者:猿课-阿铭 www.apelearn.com#日期:2018-12-11cat /etc/passwd |while read linedo username=`echo $li...
2019-12-17 16:24:56
594
原创 打印正方形
例72需求:根据用户输入的数字,打印一个对应的正方形■#!/bin/bash#这个脚本用来打印正方形#作者:xzm#日期:2019-12-16while :doread -p "Please input a nuber: " nn1=echo $n|sed 's/[0-9]//g'if [ -n “n1"]thenecho"n1" ] then echo...
2019-12-16 21:54:29
183
原创 判断文件并计算单词
例71需求:1. 判断所给目录内哪些二级目录下有没有text.txt文件。2. 有text.txt文件的二级目录,计算出该test.txt文件里面所给出单词的次数。3. 假如脚本名字为1.sh, 运行脚本的格式为 ./1.sh 123 root,其中123为目录名字,而root为要计算数量的单词。#!/bin/bash#这个脚本用来判断文件是否存在并计算单词个数#作者:xzm#日...
2019-12-16 21:43:42
85
原创 简易计算器
例70需求:实现加减乘除运算,示例:./1.sh 1+2#!/bin/bash#这个脚本用来计算两个数字的加减乘除#作者:xzm#日期:2019-12-16if [ $# -ne 3 ]thenecho “你给的参数个不对,请输入三个参数”exitfiif_number(){n1=echo $1|sed 's/[0-9.]//g'if [ -n “$n1” ]then...
2019-12-16 17:50:46
80
原创 lamp增加项目
例69需求:服务器上,跑的lamp环境,上面有很多客户的项目,每个项目就是一个网站。 由于客户在不断增加,每次增加一个客户,就需要配置相应的mysql、ftp以及httpd。这种工作重复性非常强的,所以用脚本实现非常合适。mysql增加的是对应客户项目的数据库、用户、密码,ftp增加的是对应项目的用户、密码(使用vsftpd,虚拟用户模式),httpd就是要增加虚拟主机配置段。#!/bin/b...
2019-12-16 17:31:26
166
原创 打印子进程
例68需求:给出一个进程的PID,打印该进程下的子进程及子进程下的所有子进程#!/bin/bash#这个脚本用来打印子进程#作者:xzm#日期:2019-12-16ps -elf >/tmp/pid.txtread -p "please input a pid: " pif [ -z "$p" ]then echo "你没有输入pid" e...
2019-12-16 17:19:58
211
原创 cpu使用率
例67需求:监控系统CPU使用率,使用率超90收敛告警通知用户#!/bin/bash#这个脚本用来计算CPU使用率#作者:xzm#日期:2019-12-16mail_user=xxx@xxx.comm_mail() { log=$1 t_s=`date +%s` t_s2=`date -d "1 hours ago" +%s` if [ ! -f /...
2019-12-16 16:52:21
69
原创 判断CPU厂
例65需求:已知下面的字符串是通过RANDOM随机数变量md5sum|cut -c 1-8截取后的结果,请破解这些字符串对应的md5sum前的RANDOM对应数字?2102929900205d1ca3da16771f6d12dd890684ba#!/bin/bash#这个脚本用来破解字符串#作者:猿课-阿铭 www.apelearn.com#日期:2018-12-08for ...
2019-12-13 20:59:37
52
原创 并发备份数据库
例63需求:用shell实现,以并发进程的形式将mysql数据库所有的表备份到当前目录,并把所有的表压缩到一个压缩包文件里。假设数据库名字为mydb,用户名为aming,密码为passwd。#!/bin/bash#这个脚本用来并发备份数据库#作者:xzm#日期:2019-12-13N=5mysql -uaming -ppasswd mydb -e “show tables”|sed...
2019-12-13 20:58:23
156
原创 监控CDN
题目要求一个网站,使用了cdn,全国各地有几十个节点。需要你写一个shell脚本来监控各个节点是否正常。假如监控的url为www.aming.com/index.php源站ip为88.88.88.88。参考答案#!/bin/bash#这个脚本用来监控CDN节点#作者:猿课-阿铭 www.apelearn.com#日期:2018-12-08s_ip=88.88.88.88u...
2019-12-13 20:56:46
162
原创 杀进程
例62需求:把当前用户下所有进程名字中含有"aming"的进程关闭。#!/bin/bash#这个脚本用来杀进程#作者:xzm#日期:2019-12-13ps -u USER∣awk′USER|awk 'USER∣awk′NF ~ /aming/ {print $1}’ |xargs kill...
2019-12-13 20:54:23
79
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人