所谓的简单运维就是保证自己开发的程序能正常运行和使用。

当一个程序员需要兼作运维时候需要掌握以下技能

1、linux系统基础命令和Windows Server操作

是基础中的基础,ls, rm, top, w, mkdir, find, cp, mv, kill, killall, cat, chown, chmod, time... 等等,命令参数没必须全部掌握,需要用的时候度娘去查。

2、WEB服务环境配置

常用的NGINX和APACHE要熟悉,WIN下可以使用IIS,有些情况下需要TOMCAT也要了解,一般使用安装包或者安装命令比较省事。后面会介绍一些安装命令。

3、SHELL脚本或BAT批处理

简单写个备份脚本或者文件处理之类的,方便快捷。

4、数据库

大部分使用MYSQL,一般掌握数据迁移,坏损数据修复即可。

5、防火墙(安全规则)

WIN一般使用IP策略,linux用IPTABLES和hosts.allow即可防范常规的非授权访问,后面也有详细介绍。

6、监控工具(存货监控)

相对来说比较重要,保证业务正常运行的手段,有条件的话可以自己写监控报警脚本,也可以使用第三方工具 cacti,nagios,zabbix等等。也有部分公司提供监控服务,如监控宝,阿里云监控,百度云观测,360监控,业务出错后都有短信或者邮件等渠道通知。

7、集群和热备

有很多工具可以实现,根据实际情况部署即可,对于WEB服务基本就两点:文件和数据库。

8、数据备份

通过脚本或者工具把所有业务数据定期异地备份,一般情况是凌晨1点-3点在服务器空闲时间。

下面详细介绍一些常规操作方法

查看服务器负载 top

load average: 0.76, 0.72, 0.70  一般查看这个数值,第一个数据一般在1以内表示运行状况良好,其他数据具体含义可以度娘去查,这里不详述。这个load average数据也可以用w命令快速查看。

编辑本本或配置文件命令 vim

一般系统新装时候没有自带vim的情况下,也可以使用vi代替

具体使用方法网上也有很多教程,可以查找学习

安装软件

centos下一般使用 yum install  如

yum install bash-compleition

ubuntu下使用 apt-get install

win下直接执行EXE即可(小白都会)

bash-compleition 可以自动补全命令参数,比较好用

碰到需要编译的软件,有的精简系统里面需要先 yum install -y gcc gcc-c++ 装一些必要的扩展库才能通过,不过的时候根据错误提示查找解决方法。

安装apache 一般使用 yun install httpd,根据提示装好后执行service httpd start,

出现绿色的OK即代表安装成功,后续的PHP环境就根据具体需求执行安装命令即可。

nginx 一般安装命令是

yun install nginx

重点讲解一下安全策略

apache下目录访问权限如下

  1. <Directory "/www">
  2. Options  FollowSymLinks
  3. AllowOverride None
  4. Order Deny,Allow
  5. Deny From all
  6. Allow From 2.2.2.2
  7. Allow From 2.2.2.3
  8. </Directory>
  9. </VirtualHost>

意思是/www目录只允许指定的ip2.2.2.2  2.2.2.3 可以访问到,这种配置适合内部系统使用。

为了保险起见,可以在IPTABLES里面也同时做好限制

  1. vim /etc/sysconfig/iptables
  1. *filter
  2. :INPUT ACCEPT [0:0]
  3. :FORWARD ACCEPT [0:0]
  4. :OUTPUT ACCEPT [0:0]
  5. -A INPUT -s 1.1.1.1 -j DROP
  6. -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  7. -A INPUT -p icmp -j ACCEPT
  8. -A INPUT -i lo -j ACCEPT
  9. -A INPUT -s 2.2.2.2 -j ACCEPT
  10. -A INPUT -s 2.2.2.3 -j ACCEPT
  11. -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
  12. -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
  13. -A INPUT -j REJECT --reject-with icmp-host-prohibited
  14. -A FORWARD -j REJECT --reject-with icmp-host-prohibited
  15. COMMIT

-A INPUT -s 1.1.1.1 -j DROP 这句话代表禁止1.1.1.1这个IP任何请求。

其他规则的意思是 放行2.2.2.2和2.2.2.3的所有请求,开放22和80端口。

同时在hosts.allow里面加入信任主机的ip

  1. vim /etc/hosts.allow
  1. ALL:2.2.2.2
  2. ALL:2.2.2.3
  3. sshd:ALL:deny

这样只允许授权的Ip可以远程连接到此台server,其他任何机器都无法登录。

win server如下设置就可以达到同样效果 开始->管理工具->本地安全策略 拿2008举例,其他版本类似

默认添加一条所有ip所有端口拒绝访问的规则,这步远程时需要小心操作,需要在规则未生效前添加,否则会断开连接。

第二条添加自己信任的ip,规则为放行。

第三条开放需要对外的端口,如80

整体规则,具体的设置步骤需要实际操作几次后即可熟练。

最后右键此条策略,选择分配,立即生效

其他1

本地数据备份脚本

tar -zcvf /home/bak/file_$(date -d "yesterday" +"%Y%m%d").bak.tar.gz /www

脚本文件放到/apptool/bak.sh,内容意思是把/www目录压缩到/home/bak目录下面,以file_日期_bak.tar.gz命名。

然后放到crontab里面定时每天夜里执行

crontab -e

00 00 * * * /bin/bash /apptool/bak.sh

异地备份可以选择使用flashfxp做好定时任务周期性拉取文件即可。

数据库备份可以选择使用navicat做好远程连接设置,然后做好备份规则。

其他2

为了开发和维护方便,可以部署一些自动化程式,可以在测试环境设置周期性拉取版本库里面的内容,实现自动更新,开发者只需在本地提交后即可实时预览修改后的内容。

正式环境也可以使用脚本完成一键更新。

其他3

掌握一些常规压测工具,检验程序和服务器的性能,如wrk, ab, webbench, hping

ab 一般装有apache的机器上都可以直接使用,一般目标主机都是自己的server,如

ab -c100 -n1000 http://www.host.com/

请求目标主机100并发,总请求1000次,命令结束后会出现一些信息总结检测情况,同时需要观察目标主机的资源消耗情况。

hping工具也很好用,具体使用方法可以查阅使用文档。

其他4

iptraf, tcpdump, ngrep, nethogs, nload, iftop 等网络检测和诊断工具使用可以有效发现并解决相关问题。

基础命令 netstat, ping, traceroute...等需要熟练掌握并使用。

也可以借助一些检测网站,如17ce,alibench 等一些网站质量检测站点帮助发现问题。

其他5

待整理。。。

PHP程序员的简单运维的更多相关文章

  1. Rocket Mq 常用API 及简单运维

    RocketMQ 常用API 消息 消息消费模式 消息消费模式由消费者来决定,可以由消费者设置MessageModel来决定消息模式. 消息模式默认为集群消费模式 consumer.setMessag ...

  2. 老司机实战Windows Server Docker:3 单节点Windows Docker服务器简单运维(上)

    经过上两篇实战Windows Server Docker系列文章,大家对安装Windows Docker服务以及如何打包现有IIS应用为docker镜像已经有了基本认识.接下来我们来简单讲讲一些最基本 ...

  3. 老司机实战Windows Server Docker:4 单节点Windows Docker服务器简单运维(下)

    上篇中,我们主要介绍了使用docker-compose对Windows Docker单服务器进行远程管理,编译和部署镜像,并且设置容器的自动启动.但是,还有一些重要的问题没有解决,这些问题不解决,就完 ...

  4. shell 脚本实战笔记(11)--Mysql在linux下的安装和简单运维

    前言: linux中安装mysql以及配置的管理, 基础的运维和管理还是需要会一些的. 这边作下笔记, 以求天天向上(^_^). 安装流程:*). 安装mysql-server1). 借助yum检索相 ...

  5. InfluxDB系列之一安装及简单运维(未完成,需要继续写)

    InfluxDB 是一个开源分布式时序.事件和指标数据库.使用 Go 语言编写,无需外部依赖.其设计目标是实现分布式和水平伸缩扩展. 它有三大特性: 1. Time Series (时间序列):你可以 ...

  6. 作为一个Java程序员连简单的分页功能都会写,你好意思嘛!

    今天想说的就是能够在我们操作数据库的时候更简单的更高效的实现,现成的CRUD接口直接调用,方便快捷,不用再写复杂的sql,带吗简单易懂,话不多说上方法 1.Utils.java工具类中的方法 1 /* ...

  7. Python自动化运维工具fabric的安装

    使用shell命令进行复杂的运维时,代码往往变得复杂难懂,而使用python脚本语言来编写运维程序,就相当于开发普通的应用一样,所以维护和扩展都比较简单,更重要的是python运维工具fabric能自 ...

  8. Python自动化运维工具-Fabric部署及使用总结

    使用shell命令进行复杂的运维时,代码往往变得复杂难懂,而使用python脚本语言来编写运维程序,就相当于开发普通的应用一样,所以维护和扩展都比较简单,更重要的是python运维工具fabric能自 ...

  9. 谈谈我的windows服务器运维管理

    我们开发的页游General War(http://gw.gamebox.com)上线运营也有半年多了,服务器的开发到运维基本都由我一手包办,在服务器上线之后我们又招了一个程序员接手后续功能的开发,而 ...

随机推荐

  1. homework for Java

    public class Dog { private String name; private String color; private int age; public Dog(String nam ...

  2. 【Linux】——搭建redis

    1.准备安装文件 redis-3.0.5.tar.gz redis-desktop-manager(可视化管理工具) 2.解压.编译 软件存放目录:/usr/local/software 解压存放路径 ...

  3. 子组件通过$emit触发父组件的事件时,参数的传递

    子组件.vue <template> <div> <el-table :data="comSchemaData" highlight-current- ...

  4. IPad Pro 2018 & sketch

    IPad Pro 2018 & sketch https://sketch.cloud/s/MyY5w/LJmLgW

  5. 集群hadoop ubuntu版

    搭建ubuntu版hadoop集群 用到的工具:VMware.hadoop-2.7.2.tar.jdk-8u65-linux-x64.tar.ubuntu-16.04-desktop-amd64.is ...

  6. Python数据分析(一)pandas数据切片

    1.获取行或列数据 loc——通过行标签索引行数据 iloc——通过行号索引行数据 ix——通过行标签或者行号索引行数据(基于loc和iloc 的混合) 同理,索引列数据也是如此! import pa ...

  7. 2018-8-10考试 T3. 朝暮(akekure)

    题目大意:有$n$个点和$m$条边的图($n - 1 \leq m \leq n + 5$),每个点要么黑要么白,两个黑点不可以相邻,问方案数 题解:可以发现当图为一棵树的时候只需要一个树形$DP$ ...

  8. BZOJ1407 [Noi2002]Savage 【扩展欧几里得】

    题目链接 BZOJ1407 题解 枚举\(m\)用扩欧判即可 #include<algorithm> #include<iostream> #include<cstrin ...

  9. POJ2155 Matrix 【二维线段树】

    题目链接 POJ2155 题解 二维线段树水题,蒟蒻本想拿来养生一下 数据结构真的是有毒啊,, TM这题卡常 动态开点线段树会TLE[也不知道为什么] 直接开个二维数组反倒能过 #include< ...

  10. 【TMD模拟赛】上低音号 链表

    这道题一看有两个出发现点,一枚举点去找边界,想了一会就Pass了...,二是枚举相框,我们最起码枚举两个边界,然后发现平行边界更好处理,然而仍然只有30分,这个时候就来到了链表的神奇应用,我们枚举上界 ...