一、环境变量相关
1.環境變量的含義:程序(操作系統命令和應用程序)的執行都需要運行環境,這個環境是由多個環境變量組成的。
2.環境變量的分類:
(1)按生效範圍分類
- 系統環境變量:公共的,對全部的用戶都生效。
- 用戶環境變量:用戶私有的、自定義的個性化設置,只對該用戶生效。
(2)按生存週期分類
- 永久環境變量:在環境變量腳本文件中配置,用戶每次登陸時會自動執行這些腳本,相當於永久生效。
- 臨時環境變量:使用時在shell中臨時定義,退出shell後失效。
3.临时设置环境变量
临时定义:export 变量名=‘值’
4.系統環境變量:適用於全部用戶,有三種方法
(1)在/etc/profile文件中设置,登陸時執行這個文件中設置的環境變量,但Linux系統不建議使用。配置完重啟後才生效(永久)
vim /etc/profile
export 变量名=‘值’
source /etc/profile
(2)在 /etc/profile.d目錄中加入環境變量腳本文件,Linux建議使用的方法。
cd /etc/profile.d
vi var.shh
export VAR1=‘www.test.com’
(3)在/etc/bashrc文件中设置环境变量
方法:vi /etc/bashrc -——>添加脚本
5.用户环境变量:只在当前用户生效,也有多种方法;在用户的主目录下有几个特殊文件。ls命令看不見但ls .bash*可以看見
(1) .bash_proflie(推薦首選):用戶執行登陸時,每個用戶都可以用這個文件配置自己的專用環境變量(永久)
方法:vi .bash_profile → 添加腳本
(2)在.bashrc文件中配置環境變量
方法:vi .bashrc → 添加腳本
(3) .bash_logout:每當退出系統時執行該文件
(4).bash_history:保存的當前用戶使用過的歷史命令
環境變量腳本文件的執行順序
/etc/profile>/etc/profile.d>/etc/bashrc>用戶的.bash_profile>用戶的.bashrc
6.设置环境变量别名
方法:alias 别名=‘命令’ (临时)
7.配置shell命令
(1)临时修改,直接改参数值
方法:HISTSIZE=5000
(2)永久修改,去配置文件中修改
方法:vi /etc/profile
(3)可以使用sed命令在配置文件中添加
sed -i ‘s/^HISTSIZE=5000/HISTSIZE=1000/’ /etc/profile
source /etc/profile
(4)配置shell使系統十分鐘後自動登出
需要配置/etc/profile.d目錄下的bash_autologout.sh,在這個文件裡添加export TMOUT =600,其中600是指以秒為單位自動登出的時間。
方法:vi /etc/profile → 添加export TMOUT=600
8./root/.bashrc 配置http代理(针对当前用户)
配置.bashrc文件,在文件內加入export http_proxy=http://用戶名:密碼:@ip地址:端口號
方法:vi /root/.bashrc → 加入export http_proxy=http://h7108579:pqhkr99ctw@10.36.6.65:3128 → wq
9./etc/profile.d目錄下配置http代理(針對全局)
先進入/etc/profile.d目錄,在當前目錄下新建一個http.sh文件,文件中配置加入export http_proxy=http://用戶名:密碼:@ip地址:端口號
方法:cd /etc/profile.d → vi /http.sh →
加入export http_proxy=http://h7108579:pqhkr99ctw@10.36.6.65:3128 →
10.curl配置http代理访问外网资源
配置http临时代理:
方法:
curl http_proxy=http://h7108579:pqhkr99ctw@10.36.6.65:3128 +想要訪問的外網
11.yum配置http代理访问外网yum源
(1)全局配置外网yum源:修改/etc/yum.conf文件,在文件末加上proxy=http://代理地址:端口號
方法:vi /etc/yum.conf → 添加proxy=http://h7108579:pqhkr99ctw@10.36.6.65:3128
(2)特定倉庫配置外網yum源:centos-base.repo中有三個倉庫:base、updates、extras。如果只想給base倉庫配置代理,則需要在base倉庫文件後加入代理地址
方法:vi /etc/yum.repos.d/CentOS-Base.repo → 添加代理地址
二、YUM /RPM的熟练使用
1.概述:
(1)RPM:軟件包管理系統,僅適用於安裝用RPM來打包的軟件
(2)YUM:給予RPM包管理的字符前端軟件包管理器,能夠從指定的服務器自動下載RPM包並安裝。除了可以安装rpm软件包也可以安装其他的
2.RPM相关命令
(1)查看有那些安裝包,查看某個應用是否已經安裝需要在後面加|grep ‘安裝包名稱’
方法:rpm -qa | grep ‘软件包名’
(2)查看包中文件信息:
方法:rpm -qp +包名
(3)查看文件屬於哪個rpm包:
方法:rpm -qf +文件名
(4)卸載包:
方法:rpm -e +已安裝好的應用程序名
(5)rpm包的升級:
方法:rpm -Uvh +包名
(6)驗證安裝包是否安裝正確(查看是否一致):
方法:rpm -V +參數
3.YUM相关命令
(1)yum history:查看歷史記錄
方法:yum history
(2)列出某次的詳細信息
方法:yum history info id
(3)撤銷某次更改
方法:yum history undo id
(4)僅下載安裝包不安裝應用,利用dowmload only命令下載安裝包,
方法:yum install --downloadonly +包名 ±-dowmloaddir=/目錄名
三、网络相关
1.添加辅助IP
(1)查看现有网络信息
方法:ip addr
(2)在配置文件中添加一個IPADDR1來容納一個新的輔助IP
方法:vi /etc/sysconfig/network-scripts/ifcfg-eht0 → 加入IPADDR1=10.67.50.27並完成子網掩碼、網關、dns服務器配置
(3)重啟網卡配置
方法:ifdowm eth0 && ifup eth0
(4)再次查看网络信息
2.添加双网卡、配置网卡绑定
3.配置网桥文件
四、磁盘相关
1.添加新磁盘,用fdisk和parted进行磁盘分区工作
(1)查看磁盘是否添加成功
方法:fdisk -l
(2)创建挂载目录
方法:mkdir data
(3)分区操作,两种方法
(3.1)使用fdisk进行分区操作,fdisk针对<=2T的磁盘
方法: fdisk /dev/sdb [一个分区的话,一直回车到结束]
#查看分区
lsblk
(3.2)利用parted進行磁盤分區,磁盘容量>=2T
方法
parted /dev/sdc (选择硬盘)
(parted) mklabel gpt (转换gpt分区)
YES/NO yes
(parted) mkpart prinmary 1 -1 //分成一个分区
(parted) print (查看分区情况)
(parted) q (退出)
• 創建msdos或gpt類型分區表
方法:mlable msdos
• 將新硬盤劃分成2個容量相等的xfs類型主分區
方法:mkpart primary xfs 0% 50%
(4)將分區格式化成xfs文件系統格式並查看
方法:mkfs.xfs -t /dev/sdb
方法:blkid
(5)將硬盤掛載到data2中並查看
方法:mount /dev/sdb1(2) ./data2
方法:df -Th
(6)创建逻辑卷,PV ,VG,LV
pv/vg.lv创建方法:
pvcreate /dev/sdb1
vgcreate datavg /dev/sdb1
lvcreate -l +100%FREE -n lvdata datavg【全部空间】
lvcreate -n wdz -L 30M datavg 【只创建30M】
#对现有的lv进行扩容并查看
lvextend -L +500M /dev/vg1/lv1
查看方法:
查看详细内容:
Pvscan
Vgdisplay
Lvdisplay
查看大概内容:lvs pvs vgs
五、服务相关
5.1 mysql数据库
(1)yum方式安裝mysql數據庫,設置mysql開機自啟動,並為mysql配置LimitNOFILE=65535以及LimitNPROC=65535
安装mysql
安裝方法:yum -y install mysql
配置开机自启动:添加服务
方法:chkconfig --add mysql 或者 systemctl enbale maridb.service
查看是否开机前自启
方法:systemctl list-unit-files
(2)配置mysql的limitnofile和limitnproc
-
查看系統ulimit值
方法:ulimit -n -
查看mysql數據庫中已打開的文件數量,首先進入mysql數據庫
方法:mysql -uroot -
查看mysql數據庫中已打開的文件數量,首先進入mysql數據庫
方法:mysql -uroot
-在數據庫中查看最大打開文件數
方法:show global variables like’open_files_limit’;
-
修改系統內配置文件參數
方法:vi /etc/systemd/system/mysqld.service
(3)為mysql進行系統級別調優,/etc/sysctl.conf
(1)net.core.somaxconn=65536 -
這個參數用於調節系統同時發起的TCP連接數,在客戶端存在高並發請求的情況下,該值變小可能導致連接超時或者重傳問題,下列對默認值進行更改
方法:net.core.somaxconn=65536
(2)net.core.netdev_max_backlog=65536
-
這個參數表示當每個網絡接口接收數據包的速率比內核處理這些包的速率快時,允許發送到隊列的數據包的最大數目,下面對最大數據包進行更改
方法:/etc/sysctl.conf → net.core.netdev_max_backlog=65536(3)net.ipv4.tcp_max_syn_backlog=65536
-
該參數用於記錄尚未收到客戶端確認信息的連接請求的最大值
方法:net.ipv4.tcp_max_backlog = 65536(4)net.ipv4.tcp_fin_timeout=10
-
如果套接字由本端要求關閉,這個參數則表示它保持在FIN-WAIT-2狀態的時間
方法:net.ipv4.tcp_fin_timeout = 10
(5)net.ipv4.tcp_tw_reuse=1 -
表示加快tcp連結的速度
方法:net.ipv4.tcp_tw_reuse=1(6)net.ipv4.tcp_tw_recycle=1
-
表示加快tcp連線的速度
方法:net.ipv4.tcp_tw_recycle=1
六、监控工具的掌握
工具一 :TOP
TOP是一个Linux工具,用于监视进程和Linux整体性能,需要系统管理员权限。
TOP命令显示内容解读:
第一行内容:top - 09:17:26 up 82 days, 19:36, 1 user, load average: 1.12, 1.24, 1.40
09:17:26 — 当前系统时间
up 82 days, 19:36, — 系统已经运行了82天19小时36分钟(在这期间没有重启过)
1 user — 当前有1个用户登录系统
load average: 0.23, 0.14, 0.10— load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况
load average 的含义
平均负载(load average)是指系统的运行队列的平均利用率,也可以认为是可运行进程的平均数。
以路况为例, 单核CPU、单车道 情况如下:
• 0.00-1.00 之间的数字表示此时路况非常良好,没有拥堵,车辆可以毫无阻碍地通过。
• 1.00 表示道路还算正常,但有可能会恶化并造成拥堵。此时系统已经没有多余的资源了,管理员需要进行优化。
• 1.00-*** 表示路况不太好了,如果到达2.00表示有桥上车辆一倍数目的车辆正在等待。这种情况你必须进行检查了。
多核CPU - 多车道 情况如下:
多核CPU的话,满负荷状态的数字为 “1.00 * CPU核数”,即双核CPU为2.00,四核CPU为4.00
第二行内容:tasks: 258 total, 1 running, 256 sleeping, 0 stopped, 1 zombie
Tasks — 任务(进程),系统共有429个进程,其中处于运行中的有1个,428个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。
第三行内容:%Cpu(s): 3.5 us, 1.6 sy, 0.0 ni, 70.7 id, 23.9 wa, 0.0 hi, 0.4 si, 0.0 st
第三行:cpu状态
0.0% us — 用户空间占用CPU的百分比。
0.1% sy — 内核空间占用CPU的百分比。
0.0% ni — 改变过优先级的进程占用CPU的百分比
99.8% id — 空闲CPU百分比
0.0% wa — IO等待占用CPU的百分比
0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
0.0% si — 软中断(Software Interrupts)占用CPU的百分比
第四行内容:MiB Mem : 3935.8 total, 199.1 free, 1525.8 used, 2210.8 buff/cache
第四行:内存状态
20605080k total — 物理内存总量(20GB)
2020484k used — 使用中的内存总量(2GB)
18584596k free — 空闲内存总量(18G)
324324k buffers — 缓存的内存量 (320M)
第五行内容:MiB Swap: 3935.0 total, 3920.1 free, 14.9 used. 2066.6 avail Mem
第五行:swap交换分区
22708216k 20total — 交换区总量(22GB)
0 used — 使用的交换区总量(0M)
22708216k free — 空闲交换区总量(22GB)
546292k cached — 缓冲的交换区总量(500MB)
第七行以下:各进程(任务)的状态监控
PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR — 共享内存大小,单位kb
S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU — 上次更新的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行)
一些特殊用法:
1.多U多核CPU监控
top基本视图中,按键盘数字“1”,可监控每个逻辑CPU的状况(不是物理CPU)
2.高亮显示当前运行进程敲击键盘“b”(打开/关闭加亮效果)
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程
3、使用h 看更多使用技巧
4.退出top页面,按q
工具二:uptime
工具作用:用於顯示系統總共運行了多長時間和系統的平均負載。
参数:
- 查看系統啟動時間:uptime -s
- 只輸出系統運行時長:uptime -p
工具三:iostat
工具作用:用于汇报磁盘活动统计情况,同时报出CPU使用情况。
常用参数:
-d:顯示磁盤使用情況
-k:以k為單位顯示
-N:顯示NFS使用情況
-p:可以報告出每塊磁盤的每個分區的使用情況
-x:顯示詳細信息
工具四:vmstat
作用:報告關於內核線程、虛擬內存、磁盤、陷阱和cpu活動的統計信息
命令详解:
procs
r 列表示运行和等待cpu时间片的进程数,如果长期大于1,说明cpu不足,需要增加cpu。
b 列表示在等待资源的进程数,比如正在等待I/O、或者内存交换等。
memory
swpd 切换到内存交换区的内存数量(k表示)。如果swpd的值不为0,或者比较大,比如超过了100m,只要si、so的值长期为0,系统性能还是正常
free 当前的空闲页面列表中内存数量(k表示)
buff 作为buffer cache的内存数量,一般对块设备的读写才需要缓冲。
cache: 作为page cache的内存数量,一般作为文件系统的cache,如果cache较大,说明用到cache的文件较多,如果此时IO中bi比较小,说明文件系统效率比较好
swap
si 由内存进入内存交换区数量。
so由内存交换区进入内存数量。
IO
bi 从块设备读入数据的总量(读磁盘)(每秒kb)。
bo 块设备写入数据的总量(写磁盘)(每秒kb)
这里我们设置的bi+bo参考值为1000,如果超过1000,而且wa值较大应该考虑均衡磁盘负载,可以结合iostat输出来分析。
system 显示采集间隔内发生的中断数
in 列表示在某一时间间隔中观测到的每秒设备中断数。
cs列表示每秒产生的上下文切换次数,如当 cs 比磁盘 I/O 和网络信息包速率高得多,都应进行进一步调查。