阿铭Linux_网站维护学习笔记201903021

监控客户机.md

find

find - 顾名思义,用来查找文件的命令。 在讲find之前,先总结一下Linux系统下面可以查找文件或目录的命令都有谁。

which

在前面已经用到该命令,需要注意的一点是,which只能用来查找PATH环境变量中出现的路径下的可执行文件。这个命令用的也是蛮多的,有时候我们不知道某个命令的绝对路径,which 一下很容易就知道了。

whereis

通过预先生成的一个文件列表库去查找跟给出的文件名相关的文件

如:whereis ls

locate

和whereis类似,也是通过查找预先生成的文件列表库来告诉用户要查找的文件在哪里。

后边直接跟文件名。如果你的linux没有这个命令,请安装软件包 ‘mlocate’, 可以使用这个命令来安装 yum install -y mlocate ,如果你刚装上这个命令,初次使用会报错。

[[email protected] ~] # locate passwd
locate: can not open `/var/lib/mlocate/mlocate.db’: No such file or directory

这是因为系统还没有生成那个文件列表库。你可以使用 updatedb 命令立即生成(更新)这个库。如果你的服务器上正跑着重要的业务,那么你最好不要去运行这个命令,因为一旦运行,服务器的压力会变大。这个数据库默认情况下每周更新一次。所以你用locate命令去搜索一个文件,正好是在两次更新时间段内,那你肯定是得不到结果的。你可以到/etc/updated.conf 去配置这个数据库生成(更新)的规则。

locate所搜索到的文件列表,不管是目录名还是文件名,只要包含我们要搜索的关键词,都会列出来,所以locate不适合精准搜索,这个命令阿铭使用的也并不多,你只要明白有这么一个工具即可,用到时再去深究其用法吧。

find

语法 : find [路径] [参数] 下面介绍几个常用的参数

-atime +n/-n : 访问或执行时间大于/小于n天的文件
-ctime +n/-n : 写入、更改inode属性(例如更改所有者、权限或者链接)时间大于/小于n天的文件
-mtime +n/-n : 写入时间大于/小于n天的文件
-mmin +n/-n : 更改时间大于/小于n分钟的文件

示例:

# find /tmp/ -mtime -1
# find /tmp/ -atime +10
# find /tmp/ -atime +1

-name filename 直接查找该文件名的文件,这个选项使用很多。

# find . -name test2
# find . -name "*.txt"  //用通配时要加上双引号

-type filetype 通过文件类型查找。文件类型有 f, b, c, d, l, s 等。

# find /tmp/ -type d
# find /tmp/ -type f

-size [+n/-n] 根据大小查找(单位:c k M G),其中字节不是b,而是c

# find . -size +10k
# find . -size -1M 
# find . -size 4k

-perm [+/-]权限

# find . -perm 777

其他高级用法:

忽略大小写文件名查找: # find /home -iname abc.txt

查找所有以.txt和.pdf结尾的文件 # find . ( -name “.txt" -o -name ".pdf” )

基于正则表达式匹配文件路径: # find . -regextype “posix-egrep” -regex “.*(.txt|.pdf)$”

基于正则表达式匹配文件路径(忽略大小写): # find . -regextype “posix-egrep” -iregex “.*(.txt|.pdf)$”

找出/home下不是以.txt结尾的文件: # find /home ! -name “*.txt”

限定查找目录深度:# find . -maxdepth 3 -type f

查找后再处理:
1)删除

# find . -type f -name "*.gz" -mtime +30 -exec rm -f {} \;
# find . -type f -name "*.gz" -mtime +30 -ok rm {} \;
# find . -type f -name "*.gz" -mtime +30 |xargs rm -f

-ok和-exec行为一样,不过它会给出提示,是否执行相应的操作。

2)改名

# find . -name "*.txt" -exec mv {} {}.bak \;
# find . -name "*.txt"|xargs -i mv {} {}.bak

集群

什么是集群

多台机器一起提供服务,这些机器的集合就是集群。

集群分类

高可用

不存在单点,即,如果一个机器宕机不影响服务。
常见开源软件:keepalived heartbeat

负载均衡

把负载均衡地分担到多台机器上。论坛服务器1台不够了,我们再加1台,用户请求会分摊到这两台机器上。
常见开源软件:LVS Nginx haproxy

分布式集群

它实际上是集合了高可用和负载均衡为一体的一种集群。它的特点是,可以无限制的横向扩容。

为论坛做负载均衡集群-准备工作

克隆虚拟机

修改IP地址
修改主机名

准备工作

两台机器上开启nginx,保证能访问论坛
第二台机器上,关闭mariadb

修改配置文件:config/config_global.php config/config_ucenter.php uc_server/data/config.inc.php
测试,保证两台机器都能正常访问到论坛。

;