linux 系统?常管理--运维必备

【监控系统的状态】

1. w 查看当前系统的负载

linux 系统?常管理--运维必备

 

 

 相信所有的linux管理员最常?的命令就是这个’w’ 了,该命令显?的信息还是蛮丰富 的。第??从左?开始显?的信息依次为:时间,系统运?时间,登录?户数,平均 负载。第??开始以及下?所有的?,告诉我们的信息是,当前登录的都有哪些? 户,以及他们是从哪?登录的等等。其实,在这些信息当中,笔者认为我们最应该关 注的应该是第??中的’load average:’后?的三个数值。

第?个数值表?1分钟内系统的平均负载值;

第?个数值表?5分钟内系统的平均负载 值;

第三个数值表?15分钟系统的平均负载值。这个值的意义是,单位时间段内CPU 活动进程数。当然这个值越?就说明你的服务器压?越?。?般情况下这个值只要不 超过你服务器的cpu数量就没有关系,如果你的服务器cpu数量为8,那么这个值若小于8,就说明你的服务器没有压?,否则就要关注?下了。到这?你肯定会问,如何 查看服务器有几个cpu?

linux 系统?常管理--运维必备

 

 

 就是?这个命令了。/proc/cpuinfo这个?件记录了cpu的详细信息。?前市?上的服 务器通常都是2颗4核cpu,在linux看来,它就是8个cpu。查看这个?件时则会显?8段 类似的信息,?最后?段信息中processor : 后?跟的是’7’。所以查看当前系统有?个 cpu,你可以使?这个命令:grep -c "processor" /proc/cpuinfo 。

linux 系统?常管理--运维必备

 

 

 2. vmstat 监控系统的状态

linux 系统?常管理--运维必备

 

 

上?讲的w查看的是系统整体上的负载,通过看那个数值可以知道当前系统有没有压 ?,但是具体是哪?(CPU, 内存,磁盘等)有压?就?法判断了。

通过vmstat就可以 知道具体是哪?有压?。vmstat命令打印的结果共分为6部分:procs, memory, swap, io, system, cpu.请重点关注?下红?标出的项。 

1)procs 显?进程相关信息

r:表?运?和等待cpu时间?的进程数,如果长期?于服务器cpu的个数,则说明cpu 不够?了;

b:表?等待资源的进程数,?如等待I/O, 内存等,这列的值如果长时间?于1,则需 要你关注?下了;

2)memory 内存相关信息

swpd :表?切换到交换分区中的内存数量;

free :当前空闲的内存数量;

buff :缓冲??,(即将写?磁盘的);

cache :缓存??,(从磁盘中读取的);

3)swap 内存交换情况 si :由内存进?交换区的数量;

so:由交换区进?内存的数量;

4)io 磁盘使?情况

bi :从块设备读取数据的量(读磁盘);

bo:从块设备写?数据的量(写磁盘);

5)system 显?采集间隔内发?的中断次数

in :表?在某?时间间隔中观测到的每秒设备中断数;

cs :表?每秒产?的上下?切换次数;

6)CPU 显?cpu的使?状态

us :显?了?户下所花费

cpu 时间的百分?;

sy :显?系统花费

cpu时间百分?;

id :表?cpu处于空闲状态的时间百分?;

wa:表?I/O等待所占?cpu时间百分?;

st :表?被偷?的cpu所占百分?(?般都为0,不?关注); 

以上所介绍的各个参数中,笔者经常会关注r列,b列,和wa列,三列代表的含义在上 边说得已经很清楚。IO部分的bi以及bo也是我要经常参考的对象。如果磁盘io压?很 ?时,这两列的数值会?较?。

另外当si, so两列的数值?较?,并且在不断变化时, 说明内存不够了,内存中的数据频繁交换到交换分区中,这往往对系统性能影响极大。

linux 系统?常管理--运维必备

 

 

 笔者?vmstat时,经常?这样的形式,’vmstat 1 5’ 表?每隔1秒钟打印?次系统状态, 连续打印5次。当然你也可以 "vmstat 1"表?每隔1秒钟打印?次系统状态,?直打 印,除?你按ctrl + c强制结束。 

 3. top 显?进程所占系统资源

linux 系统?常管理--运维必备

 

 

 这个命令?于动态监控进程所占系统资源,每隔3秒变?次。这个命令的特点是把占 ?系统资源(CPU,内存,磁盘IO等)最?的进程放到最前?。

top命令打印出了很多 信息,包括系统负载(load average)、进程数(Tasks)、cpu使?情况、内存使?情 况以及交换分区使?情况。

其实上?这些内容可以通过其他命令来查看,所以?top重 点查看的还是下?的进程使?系统资源详细状况。

这部分东西反映的东西还是?较多 的,不过需要你关注的也就是?项:%CPU, %MEM, COMMAND 这些项?所代表的 意义,不?笔者介绍相信你也能看懂吧。

linux 系统?常管理--运维必备

 

 

 另外笔者使?top命令时还常常使?-bn1 这个组合选项,它表??动态打印系统资源 使?情况,可以?在脚本中,你不妨记?下,以后也许你会?得到。 

4. sar 监控系统状态 

sar 命令很强?,它可以监控系统所有资源状态,?如平均负载、?卡流量、磁盘状 态、内存使?等等。

它不同于其他系统状态监控?具的地?在于,它可以打印历史信
息,可以显?当天从零点开始到当前时刻的系统状态信息。如果你系统没有安装这个 命令,请使?”yum install -y sysstat”命令安装。初次使?sar命令会报错,那是因为sar ?具还没有?成相应的数据库?件(时时监控就不会了,因为不?去查询那个库? 件)。它的数据库?件在” /var/log/sa/”?录下,默认保存9天。因为这个命令太过复 杂,所以笔者只介绍几个。

1)查看?卡流量 sar -n DEV 

linux 系统?常管理--运维必备

 

 

 IFACE这列表?设备名称,rxpck/s 表?每秒进?收取的包的数量,txpck/s 表?每秒发 送出去的包的数量,rxbyt/s 表?每秒收取的数据量(单位Byte),txbyt/s表?每秒发 送的数据量。后??列不需要关注。如果有?天你所管理的服务器丢包?常严重,那 么你就应该看?看这个?卡流量是否异常了,如果rxpck/s 那?列的数值?于4000,或 者rxbyt/s那列?于5,000,000则很有可能是被攻击了,正常的服务器?卡流量不会?于 这么多,除?是你??在拷贝数据。上?的命令是查看?卡流量历史的,如何时时查 看?卡流量呢?

linux 系统?常管理--运维必备

 

 

 另外也可以查看某?天的?卡流量历史,使?-f选项,后?跟?件名,如果你的系统 格式Redhat或者CentOS那么sar的库?件?定是在/var/log/sa/?录下的。

linux 系统?常管理--运维必备

 

 

 

2)查看历史负载 sar -q

linux 系统?常管理--运维必备

 

 

 这个命令有助于我们查看服务器在过去的某个时间的负载状况。

5. free查看内存使?状况

linux 系统?常管理--运维必备

 

 

 

只要你敲?个free然后回车就可以当前系统的总内存??以及使?内存的情况。从上 图中可看到当前系统内存总??为235128(单位是k)已经使?120368,剩余94760。 其实真正剩余并不是这个94760,?是第??的213388,真正使?的也是第??的 21740。这是因为系统初始化时,就已经分配出很??部分内存给缓存,这部分缓存 ?来随时提供给程序使?,如果程序不?,那这部分内存就空闲。所以,查看内存使
用多少,剩余多少请看第??的数据。另外你还可以加-m 或者-g选项分别以M或G为 单位打印内存使?状况。

linux 系统?常管理--运维必备

 

 

 6. ps 查看系统进程 

作为系统管理员,?定要知道你所管理的系统都有那些进程在运?,在windows下只 要打开任务管理器即可查看。

在linux下呢?其实在上?介绍的top命令就可以,但是不 够专业,当然还有专门显?系统进程的命令。

linux 系统?常管理--运维必备

 

 

 对了,就是这个’ps aux’。笔者也经常看到有的?喜欢?’ps -elf’ ?同?异,显?的信 息基本上是?样的。

ps命令还有更多的?法,笔者不再做介绍,因为你只要会?这个 命令就?够了,请man?下。下?介绍上图上出现的?个参数的意义。

PID:进程的id,这个id很有?,在linux中内核管理进程就得靠pid来识别和管理某? 个程,?如我想终?某?个进程,则? ‘kill 进程的pid’,有时并不能杀掉,则需要加 ?个-9选项了’kill -9 进程pid’

STAT :表?进程的状态,进程状态分为以下?种(不要求记住,但要了解)

D 不能中断的进程(通常为IO)

R 正在运?中的进程

S 已经中断的进程,通常情况下,系统中?部分进程都是这个状态

T 已经停?或者暂停的进程,如果我们正在运??个命令,?如说sleep 10,如果我 们按?下ctrl -z 让他暂停,那么我们?ps查看就会显?T这个状态

W 这个好像是说,从内核2.6xx 以后,表?为没有?够的内存页分配

X 已经死掉的进程(这个好像从来不会出现)

Z 僵?进程,杀不掉,打不死的垃圾进程,占系统??点资源,不过没有关系。如果 太多,就有问题了。?般不会出现。

N 低优先级进程

L 在内存中被锁了内存分页

s 主进程

l 多线程进程

+ 代表在前台运?的进程

这个ps命令是笔者在?作中?的?常多的命令之?,所以请记住它吧。关于ps命令的 使?,笔者经常会连同管道符?起使?,?来查看某个进程或者它的数量。

linux 系统?常管理--运维必备

 

 

上?的6不对,需要减掉1,因为使?grep命令时,grep命令本?也算作了?个。

7. netstat 查看?络状况

linux 系统?常管理--运维必备

 

 

 netstat命令?来打印?络连接状况、系统所开放端口、路由表等信息。

笔者最常?的 关于netstat的命令就是这个netstat -lnp(打印当前系统启动哪些端?)以及netstat an (打印?络连接状况)这两个命令?常有?,请?定要记住。

linux 系统?常管理--运维必备

 

 

 如果你所管理的服务器是?台提供web服务(80端口)的服务器,那么你就可以使? netstat -an |grep 80开查看当前连接web服务的有哪些IP了。 

8. 抓包?具tcpdump 

有时候,也许你会有这样的需求,想看?下某个?卡上都有哪些数据包,尤其是当你 初步判定你的服务器上有流量攻击。

这时,使?抓包?具来抓?下数据包,就可以知 道有哪些IP在攻击你了。

linux 系统?常管理--运维必备

 

 

如果你没有tcpdump 这个命令,需要?’yum install -y tcpdump ’命令去安装?下。

上图 中第三列和第四列显?的信息为哪?个IP+port在连接哪?个IP+port,后?的信息是该 数据包的相关信息,如果不懂也没有关系,毕竟你不是专门搞?络的,?这?需要你 关注的只是第三列以及第四列。

-i 选项后?跟设备名称,如果你想抓eth1?卡的包, 后?则要跟eth1.?于-nn选项的作?是让第三列和第四列显?成IP+端?号的形式,如 果不加-nn则显?的是主机名+服务名称。 

 

【linux?络相关】

1. ifconfig 查看?卡IP 

ifconfig类似与windows的ipconfig,不加任何选项和参数只打印当前?卡的IP相关信息 (子网掩码、网关等)

linux 系统?常管理--运维必备

 

 

 当然ifconfig后?可以跟设备名,只打印指定设备的IP信息。

linux 系统?常管理--运维必备

 

 

 在windows下设置IP?常简单,然?在命令窗?下如何设置?

这就需要去修改配置? 件/etc/sysconfig/network-scripts/ifcfg-eth0了,如果是eth1那么配置?件 是/etc/sysconfig/network-scripts/ifcfg-eth1.

linux 系统?常管理--运维必备

 

 

如果想修改IP的话,则只需要修改IPADDR , NETMASK以及GATEWAY即可。如果你 的linux是通过dhcp服务器?动获得的IP,那么配置?件肯定和上图中的不?样, BOOTPROTO那?会是’dhcp’,如果你要配置成静态IP的话,这?就需要写成’none’。
关于如何设置IP以及??掩码的这些知识属于?络相关的基础知识了,如果你对这? ??较陌?的话,建议你去看看?络相关的资料。

当修改完IP后需要重启?络服务新 IP才能?效,重启命令为’ service network restart’

linux 系统?常管理--运维必备

 

 

 另外如果你有多个?卡的情况时,只想重启某?个?卡的话,还可以使?这个命令。

linux 系统?常管理--运维必备

 

 

 ifdown 即停掉?卡,ifup即启动?卡。有?点要提醒你的是,如果你远程登录你的服 务器,当你使?ifdown eth0这个命令的时候,很有可能后?的命令ifup eth0不会被运 ?,这样导致你断???法连接服务器,所以请尽量使用service network restart 这个命 令来重启网卡。 

2. 给?个网卡设定多个IP

在linux系统中,?卡是可以设定多重IP的,笔者曾经管理的?台服务器的eth1就设定 了5个IP,实在是够变态的。

linux 系统?常管理--运维必备

 

 

 把ifcfg-eth0复制成ifcfg-eth0:1 然后编辑ifcfg-eth0:1修改DEVICE以及IPADDR保存后重 启?卡。

linux 系统?常管理--运维必备

 

 

 再次查看eth0上就有两个IP了。这?你要注意?下,?件名(ifcft-eth0:1)写成什么都 ?所谓,但是?件内的DEVICE=eth0:1?定要按照这样的格式写,否则你启动不起来 ?卡。 

3. 查看?卡连接状态

linux 系统?常管理--运维必备

 

 

 mii-tool这个命令?来查看?卡是否连接,如图显?link ok等字样说明连接正常,否则 会显?’no link’字样,下图是笔者所管理的?台服务器,eth1?卡没有连接。

 linux 系统?常管理--运维必备

 

 

 如果你的机器是虚拟机,那么你使?该命令时应该显?成如下:

linux 系统?常管理--运维必备

 

 

 这是因为使?的是虚拟?卡,不?持这个?具查看。不?多关注此,你记住这个miitool命令即可,它可是会经常?到的。 

4. 更改主机名 

当装完系统后,默认主机名为localhost,使?hostname就可以知道你的linux的主机名 是什么。

linux 系统?常管理--运维必备

 

 

 同样使?hostname可以更改你的主机名。

linux 系统?常管理--运维必备

 

 

 下次登录时就会把命令提?符 中的’localhost’更改成’Aming’。不 过这样修改只是保存在内存中,下次重启还会变成未改之前的主机名,所以需要你还 要去更改相关的配置?件’/etc/sysconfig/network’。

linux 系统?常管理--运维必备

 

 

 把HOSTNAME=localhost.localdomain 修改成你想要的主机名,这样再重启就会读取这 个配置?件中的HOSTNAME. 

5. 设置DNS 

DNS是?来解析域名?的,平时我们访问?站都是直接输??个?址,?dns把这个 ?址解析到?个IP。关于dns的概念,如果你很陌?的话,那就去?上查?下吧。

在 linux下?设置dns?常简单,只要把dns地址写到?个配置?件中即可。这个配置?件 就是/etc/resolv.conf

linux 系统?常管理--运维必备

 

 

resolv.conf有它固有的格式,?定要写成’nameserver IP’的格式,上?那?以’;’为开头 的?是??注释,没有实际意义,建议写两个或多个namserver ,默认会?第?个 namserver去解析域名,当第?个解析不到时会使?第?个。

在linux下?有?个特殊的 ?件/etc/hosts也能解析域名,不过是需要我们?动在??添加IP+域名这些内容,它的 作?是临时解析某个域名,?常有?。

linux 系统?常管理--运维必备

 

 

它的格式如上图,每??作为?条记录,分成两部分,第?部分是IP,第?部分是域 名。关于hosts?件,有?点需要你注意:

1)?个IP后?可以跟多个域名,可以是??个甚?上百个;

2)每?只能有?个IP,也就是说?个域名不能对应多个IP; 3)如果有多?中出现相同的域名(前?IP不?样),会按最前?出现的记录来解析。

【linux的防?墙】

1. selinux 

Selinux是Redhat/CentOS系统特有的安全机制。不过因为这个东西限制太多,配置也特 别繁琐所以?乎没有?去真正应?它。所以装完系统,我们?般都要把selinux关闭, 以免引起不必要的?烦。

关闭selinux的?法为:

linux 系统?常管理--运维必备

 

 

把’SELINUX=enforcing’改成’SELINUX=disabled’,然后重启机器。临时关闭selinux的 命令为

linux 系统?常管理--运维必备

 

 

getenforce命令可以得到selinux的状态,其中有两种(Enforcing|Permissive),前者表 ?开放,后者表?关闭,但是会发出警告。

setenforce?来设置selinux的状态,后?跟 0则设置成Permissive后?跟1设置成Enforcing。关闭selinux的命令为setenforce 0,但是 这只是临时关闭,重启后恢复,想要永久?效,请更改配置?件/etc/selinux/config。 

2. iptables 

Iptables是linux上特有的防?墙机制,其功能?常强?,然?笔者在?常的管理?作中 仅仅?到了?两个应?,这并不代表iptables不重要。

作为?个?络管理员,iptables是 必要要熟练掌握的。但是作为系统管理员,我们也应该会最基本的iptables操作,认识 iptables的基本规则。 

1)iptalbes的三个表 

filter :这个表主要?于过滤包的,是系统预设的表,这个表也是笔者?的最多的。内 建三个链INPUT、OUTPUT以及FORWARD。INPUT作?于进?本机的包;OUTPUT 作?于本机送出的包;FORWARD作?于那些跟本机?关的包。

nat :主要?处是?络地址转换,也有三个链。PREROUTING 链的作?是在包刚刚到 达防?墙时改变它的?的地址,如果需要的话。OUTPUT链改变本地产?的包的?的 地址。POSTROUTING链在包就要离开防?墙之前改变其源地址。该表笔者?的不 多,但有时候会?到。

mangle :这个表主要是?于给数据包打标记,然后根据标记去操作哪些包。这个表? 乎不怎么?。除?你想成为?个?级?络?程师,否则你就没有必要花费很多?思在 它上?。

2)iptables 基本语法 

A. 查看规则以及清除规则

linux 系统?常管理--运维必备

 

 

 如上图,-t 后?跟表名,-nvL 即查看该表的规则,其中-n表?不针对IP反解析主机 名;-L表?列出的意思;?-v表?列出的信息更加详细。如果不加-t ,则打印filter表 的相关信息。

linux 系统?常管理--运维必备

 

 

 这个和-t filter 打印的信息是?样的。 关于清除规则的命令中,笔者?的最多就是

linux 系统?常管理--运维必备

 

 

 不加-t默认是针对表filter来操作的,-F 表?把所有规则全部删除;-Z表?把包以及流 量计数器置零(这个笔者认为很有?)。 

B. 增加/删除?条规则

linux 系统?常管理--运维必备

 

 

 这就是增加了?条规则,省略-t所以针对的是filter表。-A 表?增加?条规则,另外还 有-I 表?插??条规则,-D删除?条规则;后?的INPUT即链名称,还可以是 OUTPUT或者FORWORD;-s 后跟源地址;-p 协议(tcp, udp, icmp); --sport/-dport 后跟源端?/?标端?;-d 后跟?的IP(主要针对内?或者外?);-j 后跟动作(DROP即把包丢掉,REJECT即包拒绝;ACCEPT即允许包)。这样讲可能很乱,那笔者多举?个例?来帮你理解:

linux 系统?常管理--运维必备

 

 上例表?:插??条规则,把来?10.0.2.36的所有数据包丢掉。

linux 系统?常管理--运维必备

 

 删除刚刚插?的规则。注意要删除?条规则时,必须和插?的规则?致,也就是说, 两条iptables命令,除了-I 和-D不?样外,其他地?都?样。

linux 系统?常管理--运维必备

 

上例表?把来?10.0.2.36 并且是tcp协议到本机的80端?的数据包丢掉。这?要说的 是,--dport/--sport 必须要和-p选项?起使?,否则会出错。

linux 系统?常管理--运维必备

 

 把发送到10.0.2.34的22端?的数据包丢掉。下?做?个?试验:

linux 系统?常管理--运维必备

 

 ?开始?本机ping 10.0.2.34是通的,然后使?iptables增加?条规则,使到10.0.2.34的 icmp包丢掉,再ping 10.0.2.34则不通了。此时?’iptables –nvL’查看iptalbes规则。

linux 系统?常管理--运维必备

 

 会有?条这样的记录,看pkts那列显?4个数据包,因为我们ping 的时候给10.0.2.34发 送了4个数据包,第?列表?这4个数据包?共有多?(336bytes)。此时使?’iptables -Z‘ 清零。linux 系统?常管理--运维必备

 

 现在你明?’iptables -Z’的意义了吧。?于FORWORD链的应?笔者?乎没有?到过, 所以不再举例。再总结?下各个选项的作?: 

-A/-D :增加删除?条规则;

-I :插??条规则,其实跟-A的效果?样;

-p :指定协议,可以是tcp,udp或者icmp;

--dport :跟-p?起使?,指定?标端?;

--sport :跟-p?起使?,指定源端?;

-s :指定源IP(可以是?个ip段);

-d :指定?的IP(可以是?个ip段);

-j :后跟动作,其中ACCEPT表?允许包,DROP表?丢掉包,REJECT表?拒绝包;

-i :指定?卡(不常?,但有时候能?到);

linux 系统?常管理--运维必备

 

上例中表?,把来?10.0.2.0/24这个?段的并且作?在eth0上的包放?。有时候你的服 务器上iptables过多了,想删除某?条规则时,又不容易掌握当时创建时的规则。其实 有?种?较简单的?法:

linux 系统?常管理--运维必备

 

查看结果如下:

linux 系统?常管理--运维必备

 

 删除某?个规则的?法是:

linux 系统?常管理--运维必备

 

 -D 后跟链名,然后是规则num,这个num就是查看iptables规则时第?列的值。

iptables还有?个选项经常?到,-P(?写)选项,表?预设策略。?法如下:

linux 系统?常管理--运维必备

 

 -P后?跟链名,策略内容或者为DROP或者为ACCEPT,默认是ACCEPT。

注意:如果 你在连接远程服务器,千万不要随便敲这个命令,因为?旦你敲完回车你就会断掉。

linux 系统?常管理--运维必备

 

 看到上图中红框标出的部分了吧,现在所有进来的数据包全部DROP了。这个策略? 旦设定后,只能使?iptables -P ACCEPT才能恢复成原始状态,?不能使?-F参数。

下 ?笔者针对?个?需求讲述?下这个iptables规则如何设定。 需求:只针对filter表,预设策略INPUT链DROP,其他两个链ACCEPT,然后针对 10.0.2.0/24开通22端?,对所有?段开放80端?,对所有?段开放21端?。 这个需求不算复杂,但是因为有多条规则,所以最好写成脚本的形式。

linux 系统?常管理--运维必备

 

 完成脚本的编写后,直接运? ‘sh /usr/local/sbin/iptables.sh ’ 即可。如果想开机启动时 初始化防?墙规则,则需要在/etc/rc.d/rc.local中添加?? ‘sh /usr/local/sbin/iptables.sh’ 。

关于icmp的包有?个?较常见的应?。

linux 系统?常管理--运维必备

 

 --icmp-type 这个选项是要跟-p icmp ?起使?的,后?指定类型编号。这个8指的是能 在本机ping通其他机器,?其他机器不能ping通本机。这个有必要记?下。 

C. nat表的应?

其实,linux的iptables功能是?分强?的,笔者曾经的?个?师这样形容linux的?络功 能:只有想不到没有做不到!也就是说只要你能够想到的关于?络的应?,linux都能 帮你实现。在?常?活中相信你接触过路由器吧,它的功能就是分享上?。本来?根 ?线过来(其实只有?个公?IP),通过路由器后,路由器分配了?个?段(私? IP),这样连接路由器的多台pc都能连接intnet?远端的设备认为你的IP就是那个连接 路由器的公?IP。这个路由器的功能其实就是由linux的iptables实现的,?iptables又是 通过nat表作??实现的这个功能。

?于具体的原理以及过程,笔者不想阐述,请查看相关资料。笔者在这?只举?个例 ?来说明iptables如何实现的这个功能。假设你的机器上有两块?卡eth0和eth1,其中 eth0的IP为10.0.2.68 ,eth1的IP为192.168.1.1 。eth0连接了intnet 但eth1没有连接,现在 有另?台机器(192.168.1.2)和eth1是互通的,那么如何设置也能够让连接eth1的这台 机器能够连接intnet(即能和10.0.2.68互通)?

linux 系统?常管理--运维必备

 

 其实就是这样简单的两个命令就能实现上?的需求。第?个命令涉及到了内核参数相关的配置?件,它的?的是为了打开路由转发功能,否则?法实现我们的应?。第? 个命令则是iptables对nat表做了?个IP转发的操作,-o 选项后跟设备名,表?出?的? 卡,MASQUERADE表?伪装的意思。

关于nat表,笔者不想讲太多内容,你只要学会这个路由转发即可。其他的东西交给? 络?程师去学习吧,毕竟你将来可是要做linux系统?程师的。

D. 保存以及备份iptalbes规则 

也许你不知道,咱们设定的防?墙规则只是保存在内存中,并没有保存到某?个?件 中,也就说当系统重启后以前设定的规则就没有了,所以设定好规则后要先保存? 下。

linux 系统?常管理--运维必备

 

 它会提?你把规则保存在了/etc/sysconfig/iptables?件内。其实,这个?件就是iptables 的配置?件了,你不妨查看?下它。

linux 系统?常管理--运维必备

 

 红线部分就是咱们刚才设定那条规则!有时可能因为我们设置防?墙规则有误导致服 务器出问题,这时候不妨先备份?下这个配置?件,然后停?防?墙服务。

linux 系统?常管理--运维必备

 

 这样防?墙就失效了,但是?旦你重新设定规则后(哪怕只有?条),防?墙又开始 ?作了。

linux 系统?常管理--运维必备

 

 我还可以使?iptables-save >filename 这条命令来保存?个防?墙规则,这样就可以起 到备份的作?了。要想恢复这个规则使?下?这个命令即可。

linux 系统?常管理--运维必备

 

 【linux系统的任务计划】 

这部分内容太重要了,其实?部分系统管理?作都是通过定期?动执?某?个脚本来 完成的,那么如何定期执?某?个脚本呢?这就要借助linux的cron功能了。

linux 系统?常管理--运维必备

 

 关于cron任务计划功能的操作都是通过crontab这个命令来完成的。其中常?的选项 有:

-u :指定某个?户,不加-u选项则为当前?户;

-e :制定计划任务;

-l :列出计划任务;

-r :删除计划任务。

linux 系统?常管理--运维必备

 

 使?crontab -e 来制定计划任务,上?的例?表?在05?26?(这天必须是周四)的10 点01分执?’ echo "ok" >/root/cron.log’这样的任务。 Cron的格式是这样的,每??代表?个任务计划,总共分成两部分,前?部分为时 间,后?部分要执?的命令。后?的命令不?多讲,?于前?的时间是有讲究的,这个时间共分为5段,?空格隔开(可以是多个空格),第?段表?分钟(0-59),第?段 表??时(0-23),第三段表??(1-31),第四段表??(1-12),第五段表?周(0-7,0或者 7都可以表?为周?)。从左?右依次是:分,时,?,?,周(?定要牢记)! crontab -e 实际上是打开了/var/spool/cron/username (如果是root则打开的 是/var/spool/cron/root)这个?件。使?的是vim编辑器,所以要保存的话则在命令模 式下输?:wq即可。但是,你千万不要直接去编辑那个?件,因为可能会出错,所以 ?定要使?crontab -e来编辑。查看已经设定的任务计划使?crontab -l

linux 系统?常管理--运维必备

 

 删除计划任务要?crontab -r

linux 系统?常管理--运维必备

 

 下?笔者给你出?些练习题,帮助你熟悉这个cron的应?。

1. 每天凌晨1点20分清除/var/log/slow.log这个?件;

2. 每周?3点执?’/bin/sh /usr/local/sbin/backup.sh’;

3. 每?14号4点10分执?’/bin/sh /usr/local/sbin/backup_month.sh’;

4. 每隔8?时执?’ntpdate time.windows.com’;

5. 每天的1点,12点,18点执?’/bin/sh /usr/local/sbin/test.sh’;

6. 每天的9点到18点执?’/bin/sh /usr/local/sbin/test2.sh’;

答案: 1. 20 1 * echo “”>/var/log/slow.log

2. 0 30 0 /bin/sh /usr/local/sbin/backup.sh

3. 10 04 14 /bin/sh /usr/local/sbin/backup_month.sh

4. 0 /8 ntpdate time.windows.com

5. 0 1,12,18 /bin/sh /usr/local/sbin/test.sh

6. 0 9-18 * /bin/sh /usr/local/sbin/test2.sh 

Cron的这部分内容并不难,你只要会了这6道练习题,你就算掌握它了。这?要简单 说?下,每隔8?时,就是?全部?时(0-23)去除以8,你仔细想?下结果,其实算 出来应该是0,8,16三个数。当遇到多个数(分钟、?时、?、周)例如第5题,则需要 ?逗号隔开。?时间段是可以?’-‘的?式表?的。等设置好了所有的计划任务后需要 查看?下crond服务是否启动,如果没有启动,需要启动它。

linux 系统?常管理--运维必备

 

 如何启动稍后会做介绍。除了?户?定义的计划任务外,其实系统本?也有计划任务 的。

linux 系统?常管理--运维必备

 

 系统会安装这个配置?件中的计划去执?内定的任务。 

【linux的系统服务管理】

如果你对windows?常熟悉的话,相信你肯定配置过开机启动的服务,有些服务我们 ?常?不到则要把它停掉,?来可以节省资源,?来可以减少安全隐患。在linux上同 样也有相关的?具来管理系统的服务。 1. ntsysv

?来配置哪些服务开启或者关闭,有点想图形界?,不过是使?键盘来控制的。如果 没有这个命令请使? yum install -y ntsysv 安装它。

linux 系统?常管理--运维必备

 

 敲完这个命令后则显?出如上图中的画?。在屏幕的最上?有’Red Hat’等字样,这是 在告诉我们这个?具是由Red Hat公司开发的。按键盘的上下?向键可以调节红?光 标,按空格可以选择开启或者不开启,如果前?的中括号内显?有’*’ 则表?开启否 则不开启。通过这个?具也可以看到?前系统中所有的服务。建议除’crond, iptables, network, sshd, syslog, irqbalance, sendmail, microcode_ctl’ 外其他服务全部停掉。选择好 后,按’tab’键选择ok然后回车。需要重启机器才能?效。 

2. chkconfig 

Linux系统所有的预设服务可以查看/etc/init.d/?录得到

linux 系统?常管理--运维必备

 

 其实这就是系统所有的预设服务了。为什么这样讲,因为系统预设服务都是可以通过 这样的命令实现 ‘service 服务名 start|stop|restart’ ,这?的服务名就是/etc/init.d/?录下 的这些?件了。除了可以使?’service crond start ‘启动crond外,还可以使 ?/etc/init.d/crond start 来启动。

linux 系统?常管理--运维必备

 

 如上图,这两个命令出来的结果是?样的。

linux 系统?常管理--运维必备

 

 再看看这个chkconfig命令,它不仅可以列出来所有的服务,还可以详细到每个级别。 这?的级别(0,1,2,3,4,5,6)就是inittab??介绍的那?个启动级别了。

linux 系统?常管理--运维必备

 

 

这样还可以查看某?个服务的启动情况。

linux 系统?常管理--运维必备

 

 

?--level 指定级别,后?是服务名,然后是off或者on,--level后还可以跟多个级别。linux 系统?常管理--运维必备

 

 

另外还可以省略级别,默认是针对2,3,4,5级别操作。

linux 系统?常管理--运维必备

 

 

另外这个chkconfig 还有?个功能就是可以把某个服务加?到系统服务,即可以使? service 服务名 start 这样的形式,并且可以在chkconfig --list 中查找到。当然也能删除掉。

linux 系统?常管理--运维必备

 

 这个功能常?在把?定义的启动脚本加?到系统服务当中。关于系统服务就讲这些内 容,其实还有很多内容笔者没有介绍,道理很简单,?来讲多了你不能消化?来讲多 了你也?不上。 

【linux中的数据备份】 

数据备份,不?说太多吧,毫?疑问很重要。笔者就曾经有过?次?常痛苦的经历, 备份策略没有做好,结果磁盘坏掉数据丢失,简直是撕?裂肺的痛呀。还好数据重要 性不是特别?,即使是不?也是丢失了数据,这是作为系统管理员最不应该出现的事 故。所以,在你以后的系统维护?作中,?定要把数据备份当回事,认真对待。在 linux上作为数据备份的?具很多,但笔者就只??种那就是rsync 从字?上的意思你 可以理解为remote sync (远程同步)这样可以让你理解的更深刻?些。Rsync不仅可 以远程同步数据(类似于scp),当然还可以本地同步数据(类似于cp),但不同于cp 或scp的?点是,rsync不像cp/scp?样会覆盖以前的数据(如果数据已经存在),它会 先判断已经存在的数据和新数据有什么不同,只有不同时才会把不同的部分覆盖掉。 如果你的linux上下?看例?吧。(如果没有rsync命令请使?yum install -y rsync安装)

linux 系统?常管理--运维必备

 

 

上?例?表?把当前?录下的123同步到/tmp/?录下,并且同样也命名为123。如果是 远程拷贝的话就是这样的形式了 IP:path(如:10.0.2.34:/root/)

linux 系统?常管理--运维必备

 

 当建?连接后,是需要输?密码的。如果?动去执?这些操作还好,但是如果是写在 脚本中怎么办?这就涉及到添加信任关系了,该部分内容稍后会详细介绍。 

1. rsync的命令格式

rsync [OPTION]... SRC DEST

rsync [OPTION]... SRC [USER@]HOST:DEST

rsync [OPTION]... [USER@]HOST:SRC DEST

rsync [OPTION]... [USER@]HOST::SRC DEST

rsync [OPTION]... SRC [USER@]HOST::DEST

 

linux 系统?常管理--运维必备

上一篇:Linux 常用命令


下一篇:linux下 vi命令编辑/etc/my.cnf