- 博客(22)
- 收藏
- 关注
转载 二、单机上使用Git、建立远程仓库、克隆远程仓库
一、单机上使用Git#yuminstall-ygit#mkdir/data/gitroot#cd/data/gitroot#gitinit//初始化仓库,初始化后ls-la可以看到一个.git的目录在该目录下,随便写点东西,vim1.txt#gitadd1.txt//把1.txt添加到仓库做标记#gitcommit-...
2019-09-10 15:11:27 367
转载 一、代码管理平台介绍、安装SVN、客户端上使用SVN(Linux)、Windows
一、代码管理平台介绍版本控制,记录若干文件内容的变化,以便将来查阅特定版本修订情况版本管理工具发展简史,CVS→SVN→GitCVS:兼容性不太好。SVN:太慢。全名:Subversion,是一个开源版本控制系统,始于2000年。Git:Linux创始人linus发起的,2005年发布,最初目的是更好的管理Linux内核代码。Git和SVN不同在于Git不需要依赖服务端就可以...
2019-09-01 10:06:31 184
转载 案例二十、自动化运维-代码上线
在案例十六中已经介绍过expect脚本的使用,可以远程登录机器并执行命令,其实expect脚本也可以传输文件。本案例的需求就是通过expect脚本来同步文件,从而实现代码上线。生产环境中一个业务通常跑在多台服务器上,也就是负载均衡,所以这些机器上运行的代码必须要保持一致。怎么实现一致?有两种方案。1、通过共享的方式如果机器量不多,可以使用NFS实现,如果要求稳定性最好是使用专...
2019-08-26 12:16:05 193
转载 案例十九、分析Tomcat日志
如果你们公司服务器上跑的是java的代码,那多半会使用Tomcat,而Tomcat出现问题,我们就不得不去查看Tomcat日志。Tomcat有一个总日志叫catalina out,它记录了Tomcat相关的信息,包括正确的和错误的。该案例的需求背景是:服务器上跑着4个Tomcat实例,目录结构如下:/opt/TOMCAT/├──crontabs├──t1├──t2...
2019-08-24 22:03:37 253
转载 案例十八、找出磁盘IO忙的真凶
计算机有三大件:CPU、内存、磁盘,这三者有一个拖后腿的,那就是磁盘。在生产环境,作为数据库角色的服务器磁盘建议拿至少4块硬盘做Raid10,这样既保证数据读写速度也保证数据的安全。如果使用普通的磁盘,即使CPU再强悍,最终的服务器性能也不会太好。经常有遇到因为磁盘I/O效率低而导致MySQL查询非常慢的问题。对于一般的小网站来说,MySQL的查询队列不会超过100个,甚至不...
2019-08-22 11:42:09 591
转载 案例十七、归档老日志
Linux系统中有日志切割的工具logrotate,它可以按照我们的预期按时间或者大小来切割和归档老的日志,它还可以压缩切割后的日志,也可以定义老日志保留的时间。本案例的需求是用shell脚本来实现类似logrotate的功能,具体要求如下:1)要处理的日志路径:/data/logs/1.log2)每天0点0分切割日志3)老日志保留一周4)归档后的日志名字为:1.log.1,...
2019-08-19 11:19:34 147
转载 案例十六、自动化运维-批量关Tomcat服务
生产环境中往往在多台机器上运行同一个服务(Tomcat),此案例的需求是批量地关闭多台机器上的Tomcat服务。假设场景:1)提供一个机器IP和Tomcat用户的密码列表(/data/ip-passwd.txt),格式如下:10.111.222.101 passwd110.111.222.102 passwd210.111.222.103 passwd3......2)Tom...
2019-08-18 14:49:09 137
转载 案例十五、格式化输出xml文件
在工作中我们多多少少都接触过xml文件,它的格式非常有规律性,但读起来因为有太多的标签(<>),不能一目了然,就比如下面一段配置:<configuration><artifactItems><artifactItem><groupId>zzz</g...
2019-08-17 10:18:45 398
转载 案例十四、为LAMP的网站增加项目
一台运行LAMP环境的服务器,上面有十几个网站,每个网站都分配了单独的虚拟主机和MySQL库。目前网站的数量还在持续增加,每增加一个网站需要做的操作如下:1)新增一个apache虚拟主机2)新增一个ftp账号对该网站目录有管理权限3)新增一个库4)新增一个数据库用户管理新增库由于这些操作具有很高的重复度,所以适合用shell脚本实现。知识点一:LAMPLAMP是一个很常见的网...
2019-08-16 08:54:06 182
转载 案例十三、监控CDN各节点是否正常
CDN,它可以提升用户对网站访问的体验。CDN通常在全国各个城市甚至国外都部署了节点,这样用户可以就近选择访问的节点,无论是在响应上还是在带宽消耗上都会有不错的表现。但反过来说,节点多了,那么某个节点出现问题的可能性就变大了。本案例需求是,监控各个CDN节点,看是否正常。具体需求:1)提供一个所有CDN节点IP的文本(/data/cdn_ip.list)2)提供一个监控链接地...
2019-08-14 13:39:56 692
转载 案例十二、shell多线程备份数据库
shell脚本多线程,实现起来有点难理解,因为它借助了命名管道实现。所谓多线程就是原本由一个进程完成的事情现在由多个线程去完成。假如一个进程需要10小时完成的事情,现在分配10个线程,给他们分工,然后同时去做这件事情,最终可能就需要1小时。本案例具体需求如下:1)公司的业务量比较大,有100个数据库需要全量备份,而每个数据库的数据量高达几十GB,(注意,每一个库都为一个独立的...
2019-08-13 11:31:54 164
转载 案例十一、人员分组
需求如下:1)假设共有72人(提供一个人员名单,名字为汉语拼音)2)要划分7个小组3)要保证人员分布小组的随机性,即每次执行脚本的结果应该是不一样的知识点一:产生随机数在Linux系统中,有个内置变量RANDOM,它其实就是一个随机数,用法如下:#echo$RANDOM17023这个RANDOM变量取值范围为0-32767,如果想要获取一个更长随机数,可以通过多个RAN...
2019-08-09 14:49:17 338
转载 案例十、检测域名是否到期
如果你想做一个网站,首先需要购买一个域名,与其说是购买不如说是租用,因为你要想使用这个域名,每年都需要缴纳一笔费用。既然是租用,所以就有期限,在到期前没有续费,则该域名会被收回,其他人可以注册并使用这个域名。当我们名下域名非常多的时候,则很容易忘记为这些域名续费从而导致过期并回收。本案例的需求是,写一个shell脚本来监控指定的域名是否到期,具体要求如下:1)写一个函数,域名...
2019-08-08 11:11:18 1103
转载 案例九、监控网卡流量
曾经遇到过一个很奇怪的问题,一台服务器运行一段时间后网卡流量变为0,就是说网卡无法传输数据了。但是重启网络服务后恢复正常,造成该问题的原因可能是系统内核的问题,也可能是网卡硬件的问题。当时解决的思路是,先尝试重新安装操作系统,看问题是否可以解决,如果问题依然存在然后尝试更换网卡。由于服务器上的业务不能中断,所以重装操作系统或者更换网卡都无法在近期实现。临时解决办法是写一个sh...
2019-08-07 10:04:20 704
转载 案例八、傻瓜运维工具
运维的工作,很多事情都是周而复始,而且所做的事情就那么几件,除非有特殊需求需要特别对待。所以写了一个傻瓜运维脚本。要求如下:1)当执行脚本时,首先会打印系统的几个状态值:系统时间、负载、CPU使用情况、内存使用情况、磁盘使用情况、网卡流量(5s内均值,需列出所有网卡)2)然后会列出一个命令列表,用户只需要打对应数字,就可以运行列表中的命令3)列表中的功能有a)查看网站访问日志...
2019-07-25 18:42:25 234
转载 案例七、监控MySQL主从状态
在生产环境中,常见MySQL架构使用最多的就是主从了,因此对于主从是否同步数据的监控尤为重要。如果使用了专业的监控软件(如zabbix)监控MySQL,那么选择监控工具提供的模板或插件去监控就很方便,但是如果涉及到一些特殊要求就另当别论了。我们可以写shell脚本来实现定制化的需求。本案例需要写一个shell脚本来监控MySQL主从,需求如下:1)每分钟检测一次,本次执行脚本...
2019-07-24 18:03:48 320
转载 案例六、检测两台机器上文件的差异
生产环境中,web服务器大多会做负载均衡,所以有多台机器上跑着同样的web程序代码。如果严格按照规范流程上线,即不人为特意更改代码,那么这多台机器上的代码一定是一样的,并不会存在两台机器上同一个文件内容不同的现象。但是,本案例的需求就是要检查两台机器上同一个文件的差异,毕竟我们不能确定服务器上的代码是否有人为改动过。需求如下:1)两台机器A和B,检查的目标目录为/data/w...
2019-07-23 18:23:34 507
转载 案例五、监控磁盘使用率
对于磁盘的监控属于最基础的监控,但是很多时候往往因为运维的疏忽而忽略监控磁盘,最终导致事故发生。希望读到这篇文章的朋友,一定要把监控磁盘这件事重视起来。本案例需求如下:1)每分钟检测一次磁盘状况2)当磁盘空间使用率或者iNode使用率高于90%,需要发邮件告警,假设收件邮箱为admin@admiin.com3)统计使用率超过90%的分区所有子目录的大小,并把排名前三的子目录写...
2019-07-21 08:40:06 609
转载 案例四、自动封IP和解IP
在运维里,出现最普遍的问题就是网站访问慢甚至访问不到,到服务器上查看得出的结论是,这个网站被CC***了。CC***属于DDos***的一种,**者会利用大量“肉鸡”对***目标的网站发起请求,并且频率很快,这样会导致目标网站的服务器承受不住而瘫痪。CC***虽然看起来跟正常的访问几乎没有什么区别,但如果我们仔细分析访问日志还是可以找到一些线索的,比如某个IP访问频次很高,或...
2019-07-19 21:00:24 457
转载 案例三、批量添加多个用户
批量创建用户的需求在生产环境中用的不多,但是面试题中经常会看到。要求:1)批量增加100个用户2)用户名为user_01-user_1003)给所有用户都设定一个随机密码,密码长度12位,需要包含大小写字母以及数字4)并把用户的密码保存到/data/user_passwd文件中5)这100个用户同属于users组知识点一:系统用户管理1)增加用户useradduser1这样...
2019-07-19 20:32:16 1017
转载 案例二、监控Nginx服务器状态码是否有502
Nginx+php-fpm+MySQL的网站,有很多原因导致出现502问题,最常见的是由于php-fpm资源耗尽导致。本案例要监控的这台服务器就是这个情况,平时一直都很好,但若网站访问量很高,就会有502的状态码出现。发生502问题时,需要及时分析造成php-fpm资源耗尽的原因,所以要做一个监控脚本,当有502状态码第一时间告警通知我们。要求如下:1)脚本一分钟执行一次2)...
2019-07-17 18:57:26 515
转载 案例一、备份MySQL数据库
本脚本的核心知识点是如何备份所有的库。一台MySQL服务器,跑着5个数据库,没有做主从,需要对这5个数据库进行备份,具体要求如下:1)每天备份一次,所有数据库2)备份数据存到/data/backup/下3)备份文件名格式示例:database_name-2019-07-01.sql4)对1天以前的所有sql文件进行压缩,格式为gzip5)本地数据保留1周6)备份的数据同步到远...
2019-07-16 18:08:36 175
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人