Centos

说明

Linux环境变量设置文件
/etc/profile
全局用户,应用于所有的Shell。
/$HOME/.profile
当前用户,应用于所有的Shell。
/etc/bash_bashrc
全局用户,应用于Bash Shell。
~/.bashrc
局部当前,应用于Bash Sell。 

1. 常用命令

1.1 查找命令对应的包,例如 netstat

sudo yum provides netstat

1.2 查找命令

1. find

find <指定目录> <指定条件> <指定动作>

$ find . -name 'my*' 搜索当前目录(含子目录,以下同)中,所有文件名以my开头的文件
$ find . -name 'my*' -ls 搜索当前目录中,所有文件名以my开头的文件,并显示它们的详细信息
$ find . -type f -mmin -10 搜索当前目录中,所有过去10分钟中更新过的普通文件。如果不加-type f参数,则搜索普通文件+特殊文件+目录

2. locate

locate命令其实是"find -name"的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。
$ locate -i ~/m 搜索用户主目录下,所有以m开头的文件,并且忽略大小写。

3. whereis

whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
$ whereis grep

4.which

which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
$ which grep

5.type

type命令其实不能算查找命令,它是用来区分某个命令到底是由shell自带的,还是由shell外部的独立二进制文件提供的。如果一个命令是外部命令,那么使用-p参数,会显示该命令的路径,相当于which命令。
$ type cd 系统会提示,cd是shell的自带命令(build-in)。

1.3 磁盘相关

  • 查看磁盘以及分区情况
fdisk -l

1.4 IO 实时监控

简介

iostat主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。

语法

iostat [ -c ] [ -d ] [ -h ] [ -N ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -z ] [ device [...] | ALL ] [ -p [ device [,...] | ALL ] ] [ interval [ count ] ]

入门使用

iostat -d -k 2

参数 -d 表示,显示设备(磁盘)使用状态;-k某些使用block为单位的列强制使用Kilobytes为单位;2表示,数据显示每隔2秒刷新一次。

输出如下

[root@k8s-node-1 nginx]# iostat -d -k 2
Linux 3.10.0-693.5.2.el7.x86_64 (k8s-node-1)    06/11/2018      _x86_64_        (2 CPU)

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              16.30        32.02       120.62   77752406  292879667
sdc              12.62       175.53       566.25  426233861 1374971908
sdb               0.00         0.00         6.20      11797   15043936

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.50         4.00         0.00          8          0
sdc              23.50         0.00      1130.00          0       2260
sdb               0.00         0.00         0.00          0          0

输出信息的意义

  • tps:该设备每秒的传输次数(Indicate the number of transfers per second that were issued to the device.)一次传输意思是一次I/O请求。多个逻辑请求可能会被合并为一次I/O请求。一次传输请求的大小是未知的。
  • kB_read/s:每秒从设备(drive expressed)读取的数据量;
  • kB_wrtn/s:每秒向设备(drive expressed)写入的数据量;
  • kB_read:读取的总数据量;
  • kB_wrtn:写入的总数量数据量;这些单位都为Kilobytes。

上面的例子中,我们可以看到磁盘sda以及它的各个分区的统计数据,当时统计的磁盘总TPS是39.29,下面是各个分区的TPS。(因为是瞬间值,所以总TPS并不严格等于各个分区TPS的总和)

指定监控的设备名称为sda,该命令的输出结果和上面命令完全相同。

 iostat -d sda 

默认监控所有的硬盘设备,现在指定只监控sda。

-x 参数

iostat还有一个比较常用的选项-x,该选项将用于显示和io相关的扩展数据。

iostat -d -x -k 
[root@k8s-node-1 nginx]# iostat -d -x -k
Linux 3.10.0-693.5.2.el7.x86_64 (k8s-node-1)    06/11/2018      _x86_64_        (2 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.02    0.55   15.76    32.02   120.75    18.74     0.27   16.26   41.17   15.39   2.46   4.00
sdc               0.00    14.36    0.58   12.04   175.49   566.36   117.59     0.08    5.98   43.77    4.17   3.28   4.14
sdb               0.00     0.01    0.00    0.00     0.00     6.19 26183.88     0.00  204.03    1.90  304.97   2.73   0.00

输出信息的含义

  • rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge);

  • wrqm/s:每秒这个设备相关的写入请求有多少被Merge了。

  • rsec/s:每秒读取的扇区数;

  • wsec/:每秒写入的扇区数。

  • rKB/s:The number of read requests that were issued to the device per second;

  • wKB/s:The number of write requests that were issued to the device per second;

  • avgrq-sz 平均请求扇区的大小

  • avgqu-sz 是平均请求队列的长度。毫无疑问,队列长度越短越好。

  • await: 每一个IO请求的处理的平均时间(单位是微秒毫秒)。这里可以理解为IO的响应时间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。这个时间包括了队列时间和服务时间,也就是说,一般情况下,await大于svctm,它们的差值越小,则说明队列时间越短,反之差值越大,队列时间越长,说明系统出了问题。

  • svctm 表示平均每次设备I/O操作的服务时间(以毫秒为单位)。
    如果svctm的值与await很接近,表示几乎没有I/O等待,磁盘性能很好,如果await的值远高于svctm的值,则表示I/O队列等待太长, 系统上运行的应用程序将变慢。

  • %util: 在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1= 80%,所以该参数暗示了设备的繁忙程度。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。

-c 参数

iostat还可以用来获取cpu部分状态值:

[root@k8s-node-1 nginx]# iostat -c
Linux 3.10.0-693.5.2.el7.x86_64 (k8s-node-1)    06/11/2018      _x86_64_        (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          12.47    0.15    4.73   27.42    0.00   55.23

常见用法

[root@k8s-node-1 nginx]# iostat -d -k
Linux 3.10.0-693.5.2.el7.x86_64 (k8s-node-1)    06/11/2018      _x86_64_        (2 CPU)

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              16.31        32.02       120.87   77791498  293628177
sdc              12.62       175.63       566.61  426662841 1376507636
sdb               0.00         0.00         6.19      11797   15043936

#查看TPS和吞吐量信息(磁盘读写速度单位为KB)
iostat
#查看TPS和吞吐量信息(磁盘读写速度单位为MB)
iostat -d -m 
#查看设备使用率(%util)、响应时间(await)
iostat -d -x -k 
#查看cpu状态
iostat -c 

实例分析

[root@k8s-node-1 nginx]# iostat -d -k
Linux 3.10.0-693.5.2.el7.x86_64 (k8s-node-1)    06/11/2018      _x86_64_        (2 CPU)

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              16.31        32.02       120.90   77798710  293745717
sdc              12.62       175.67       566.66  426802077 1376752076
sdb               0.00         0.00         6.19      11797   15043936

上面看到,磁盘每秒传输次数平均约400;每秒磁盘读取约5MB,写入约1MB。

[root@k8s-node-1 nginx]# iostat -d -x -k
Linux 3.10.0-693.5.2.el7.x86_64 (k8s-node-1)    06/11/2018      _x86_64_        (2 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.02    0.55   15.76    32.02   120.91    18.76     0.27   16.26   41.16   15.39   2.46   4.00
sdc               0.00    14.37    0.58   12.04   175.66   566.67   117.62     0.08    5.98   43.77    4.17   3.28   4.14
sdb               0.00     0.01    0.00    0.00     0.00     6.19 26183.88     0.00  204.03    1.90  304.97   2.73   0.00

可以看到磁盘的平均响应时间<5ms,磁盘使用率>80。磁盘响应正常,但是已经很繁忙了。

2. 网络

1. DNS 查看

  1. 查看/etc/resolv.con文件
[root@localhost ~]# cat /etc/resolv.conf 
nameserver 192.168.xxx.xxx
#search localdomain
[root@localhost ~]# 
  1. 使用nslookup命令查看DNS信息
[root@localhost ~]# nslookup 127.0.0.1 | grep Server
Server:         192.168.xxx.xxx
[root@localhost ~]# 
  1. 使用dig命令来查看DNS信息
root@localhost ~]# dig 
 
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-16.P1.el5 <<>>
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36888
;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 3
 
;; QUESTION SECTION:
;.                              IN      NS
 
;; ANSWER SECTION:
.                       86163   IN      NS      m.root-servers.net.
.                       86163   IN      NS      a.root-servers.net.
.                       86163   IN      NS      j.root-servers.net.
.                       86163   IN      NS      l.root-servers.net.
.                       86163   IN      NS      e.root-servers.net.
.                       86163   IN      NS      d.root-servers.net.
.                       86163   IN      NS      k.root-servers.net.
.                       86163   IN      NS      f.root-servers.net.
.                       86163   IN      NS      h.root-servers.net.
.                       86163   IN      NS      c.root-servers.net.
.                       86163   IN      NS      g.root-servers.net.
.                       86163   IN      NS      b.root-servers.net.
.                       86163   IN      NS      i.root-servers.net.
 
;; ADDITIONAL SECTION:
a.root-servers.net.     3599    IN      A       112.4.20.71
b.root-servers.net.     86163   IN      A       192.228.79.201
i.root-servers.net.     86173   IN      A       192.36.148.17
 
;; Query time: 8 msec
;; SERVER: 192.168.xxx.xxx#53(192.168.xxx.xxx)
;; WHEN: Sat Apr 16 07:34:37 2016
;; MSG SIZE  rcvd: 289
 
[root@localhost ~]# dig | grep SERVER: | awk -F# '{ print $1 }' | awk -F: '{ print $2 }'
 192.168.xxx.xxx
  1. 其它一些方法查看DNS信息

在网上看到还有一些其他方法,查看服务器的DNS配置信息,如下所示,不过这些方法,由于环境限制,我没有验证过,仅供参考。

nm-tool | grep DNS
 
nmcli dev list iface eth0 | grep IP4

2. 静态IP地址

需要添加的几项内容的解释:

  • IPADDR IP地址
  • NETMASK 子网掩码
  • NETWORK 网关地址

通常,如果我们想更改主机地址为静态地址或者更改主机名,需要修改的几个文件包括:
/etc/sysconfig/network 设置主机名和网络配置
/etc/sysconfig/network-scripts/ifcfg-eth0 针对特定的网卡进行设置
/etc/resolv.conf 设置DNS
/etc/hosts 设置指定的域名解析地址

一般我们只需要修改网卡的配置文件就可以了,例如我的配置文件如下:

DEVICE=eth0
BOOTPROTO=static
TYPE=Ethernet
NAME="System etho0"
BROADCAST=192.168.56.255
HWADDR=08:00:27:24:F8:9B
IPADDR=192.168.56.101
IPV6INIT=yes
IPV6_AUTOCONF=yes
NETMASK=255.255.255.0
NETWORK=192.168.56.1
ONBOOT=yes

设置完成后,重启一下网卡就可以了:service network restart或者sudo systemctl restart network

我们还有一个办法可以实现设置静态IP,那就是通过 ifconfig 这个命令。通常,我们都用它来查看当前网卡的一些信息,同时,他也可以用来进行一些网卡信息的设置。

修改的命令如下:ifconfig eth0 192.168.56.102

3. 用户管理

1. 添加用户

adduser mynewuser

设置密码

password mynewuser

2. 添加Root权限

visudo

Find the following code:

## Allow root to run any commands anywhere
root ALL=(ALL) ALL

In this case, we’re granting root privileges to the user mynewuser . Add the following below that code:

mynewuser ALL=(ALL) ALL

3.修改密码

sudo passwd root

4. Proxy

[root@client ~]# [vi](https://www.server-world.info/en/command/html/vi.html) /etc/profile

# add follows to the end (set proxy settings to the environment variables)
MY_PROXY_URL="http://prox.srv.world:3128/"
HTTP_PROXY=$MY_PROXY_URLHTTPS_PROXY=$MY_PROXY_URLFTP_PROXY=$MY_PROXY_URLhttp_proxy=$MY_PROXY_URLhttps_proxy=$MY_PROXY_URLftp_proxy=$MY_PROXY_URL
export HTTP_PROXY HTTPS_PROXY FTP_PROXY http_proxy https_proxy ftp_proxy

[root@client ~]# source /etc/profile

# it's OK all, but it's possible to set proxy settings for each application like follows
# for yum
[root@client ~]# [vi](https://www.server-world.info/en/command/html/vi.html) /etc/yum.conf

# add to the end
proxy=http://prox.srv.world:3128/

# for wget
[root@client ~]# [vi](https://www.server-world.info/en/command/html/vi.html) /etc/wgetrc

# add to the end
http_proxy = http://prox.srv.world:3128/https_proxy = http://prox.srv.world:3128/ftp_proxy = http://prox.srv.world:3128/

Q: bind Address already in use
A: 可以用netstat -anp | more,然后kill pid

查看kubelet日志
sudo tail -100f /var/log/messages | grep kubelet

5. 常用组件

yum -y install gcc gcc-c++ autoconf pcre pcre-devel make autokake
yum -y install wget httpd-tools vim 

6. yum

--添加epel源
yum install -y epel-release

--添加yum源
vi /etc/yum.repos.d/nginx.repo

[nginx]
name=nginx.repo
baseurl=http://nginx.org/packages/centos/7/RELEASE/$basesearch/
gpgcheck=0
enabled=1

--查看
yum list |grep nginx

--查看安装的文件
rpm -ql nginx

7. NFS搭建

OS环境为 CentOS 7.3 x86_64

安装必要软件包

yum install -y nfs-ganesha nfs-ganesha-vfs

编辑配置文件 /etc/ganesha/ganesha.conf :

EXPORT
{
        # Export Id (mandatory, each EXPORT must have a unique Export_Id)
        Export_Id = 1;

        # Exported path (mandatory)
        Path = /data;

        # Pseudo Path (required for NFS v4)
        Pseudo = /data;

        # Required for access (default is None)
        # Could use CLIENT blocks instead
        Access_Type = RW;

        Squash = No_root_squash;

        # Exporting FSAL
        FSAL {
                Name = VFS;
        }
}

重启服务:

systemctl restart nfs-ganesha

查看 exports :

# showmount -e localhost
Export list for localhost:
/data (everyone)

在其他节点挂载:

mount -t nfs 10.30.109.199:/data /mnt

注意 其他节点需要安装 nfs-utils (提供 mount.nfs , showmount 工具)

yum install -y nfs-utils

8. 系统环境变量

更改环境变量值

sysctl -w vm.max_map_count=65535

9. ssh免密登录

1. 相关命令及说明如下:

  • ssh-keygen
    ssh-keygen 是一个用来生成、创建和管理 SSH 认证用的公私钥的工具。通过 ssh-keygen 命令,用户可以创建支持SSH1 和 SSH2 两个协议的密钥。ssh-keygen 为 SSH1 协议创建 RSA 密钥,SSH2 则可以是 RSA 或 DSA。
  • ssh-copy-id
    ssh-copy-id 是用来将本地公钥拷贝到远程的 authorized_keys 文件的脚本命令,它还会将身份标识文件追加到远程机器的 ~/.ssh/authorized_keys 文件中,并给远程主机的用户主目录适当的的权限。
  • ssh密钥
    SSH 密钥为登录 Linux 服务器提供了更好且安全的机制。运行 ssh-keygen 后,将会生成公私密钥对。你可以将公钥放置到任意服务器,从持有私钥的客户端连接到服务器的时,会用它来解锁。两者匹配时,系统无需密码就能解除锁定。

2. 操作步骤

  1. 用ssh-keygen生成公私钥,可以对私钥进行加密保护以增强安全性。
ssh-keygen
  1. 用 ssh-copy-id 命令将公钥复制或上传到远程主机,并将身份标识文件追加到节点2的 ~/.ssh/authorized_keys 中:
ssh-copy-id -i ~/.ssh/id_rsa.pub 10.0.0.10
  1. 默认使用~/.ssh/id_rsa这个密钥,如果想使用不同的密钥则要:
ssh -i path/to/id_rsa username@server.com

如果不想每次都指定这些密钥、用户名、服务器地址的话,可以在~/.ssh/config中配置,如下:

Host server1
    HostName server.com
    User username
    IdentityFile path/to/id_rsa

这样就可以简单的使用以下命令:

ssh server1

10. GUI

1. 安装Gnome

sudo  yum groupinstall "GNOME Desktop" "Graphical Administration Tools"

开机自动进入GUI

sudo ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target

通过命令进入

startx

2. 设置VNX远程连接

安装vnc-server

yum install vnc-server

设置为systemd service,端口号为590+@:后边跟的数字,示例中未5901

cp /usr/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service

修改 user及分辨率

vi /etc/systemd/system/vncserver@:1.service

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
User=meng

# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=-/usr/bin/vncserver -kill %i
ExecStart=/usr/bin/vncserver %i -geometry 1366x768
PIDFile=/home/meng/.vnc/%H%i.pid
ExecStop=-/usr/bin/vncserver -kill %i

[Install]
WantedBy=multi-user.target

设置密码

vncpasswd

记得设置防火墙,然后启动

systemctl daemon-reload
systemctl start vncserver@:1.service
  1. 客户端连接

下载VNCViewer进行连接

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容