LInux笔记
1. 磁盘
1.1****df -h
它报告文件系统磁盘空间的使用情况。
[root@ruozedata001 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 17G 7.4G 9.7G 43% /
devtmpfs 895M 0 895M 0% /dev
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 22G 19G 55% /
/dev/vdb1 2T 0 2T 0% /data01【挂载盘】
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 16K 3.9G 1% /dev/shm
tmpfs 3.9G 414M 3.5G 11% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
tmpfs 783M 0 783M 0% /run/user/0
tmpfs 783M 0 783M 0% /run/user/1001
[root@ruozedata001 ~]#
真实的数据盘
/ 系统盘 100G
/data01 数据盘 2T
/data02 数据盘 2T
/data03 数据盘 2T
/data04 数据盘 2T
/data05 数据盘 2T
2. 内存
free -m:查看内存使用情况
[root@ruozedata001 ~]# free -m
total used free shared buff/cache available
Mem: 7823 5058 998 413 1766 2061
Swap: 0 0 0
2765mb
5058/7823 =64%
使用率控制在
预留内存最好在15%
swap作用
1.swap 因为内存不够,使用部分磁盘空间来充当内存使用,虽然可以解决内存紧缺的问题,但是效率不高。尤其大数据,swap哪怕设置了大小 ,也尽量设置惰性使用。参数=0
2.参数swappiness=0的时候表示最大限度使用物理内存,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。内存的速度会比磁盘快很多,这样子会加大系统io,同时造的成大量页的换进换出,严重影响系统的性能,所以如果物理内存足够的话,要尽可能使用物理内存。
3. 机器负载 top
命令 top
load average: 0.07, 0.05, 0.05
1min 5min 15min
经验值: 10 生产上尽量控制在10,否则服务器就认为卡
服务器卡的原因:
a.计算程序 hive sql、spark 、flink 密集计算 是不是要调优
b.是不是被挖矿了 【 top之后 load average 特别大 】
cpu%
27448 root 20 0 446720 14848 3560 S 100% 0.2 853:09.28 ifrit-agent
CPU率太大使用,可能已经被挖矿
c.硬件问题 ,内存条损坏,最后一招 万能重启 检测是不是硬件问题
4. 安装
4.1 Yum 安装
yum search 包名称
1.先搜索
yum search http
httpd.x86_64 : Apache HTTP Server
2安装:yum install httpd.x86_64
Yum的安装:yum install -y httpd
Yum的卸载yum remove telnet
启动httpd:service httpd restart
查看状态:service httpd status
4.2 rpm卸载
1.搜索:rpm -qa | grep 进程名
[root@ruozedata001 ~]# rpm -qa | grep httpd
httpd-tools-2.4.6-93.el7.centos.x86_64
httpd-2.4.6-93.el7.centos.x86_64
[root@ruozedata001 ~]#
2.卸载:rpm -e
[root@ruozedata001 ~]# rpm -e httpd-tools-2.4.6-93.el7.centos.x86_64
--nodeps do not verify package dependencies
假如后面卸载有依赖性:可以添加--nodeps ,强制卸载
5.进程
查看进程: ps -ef | grep 进程名称
[root@cdh ~]# ps -ef |grep http
root 2479 1687 0 14:53 pts/0 00:00:00 grep --color=auto http
[root@ruozedata001 ~]# ps -ef | grep http
pid 父id
root 2850 1 0 15:07 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 2855 2850 0 15:07 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 2856 2850 0 15:07 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 2857 2850 0 15:07 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 2858 2850 0 15:07 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 2859 2850 0 15:07 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
root 2890 1687 0 15:09 pts/0 00:00:00 grep --color=auto httpd
6. 端口号
查看端口:netstat -nlp | grep pid
netstat -nlp | grep 709
[root@cdh ~]# netstat -nlp | grep 2850
tcp6 0 0 :::80 :::* LISTEN 2850/httpd
tcp6 0 0 :::8443 :::* LISTEN 2850/httpd
[root@ruozedata001 ~]#
[root@ruozedata001 ~]# netstat -nlp | grep http
tcp6 0 0 :::80 :::* LISTEN 709/httpd
[root@ruozedata001 ~]#
总结:
a.有进程PID 不一定就有端口号【内部进程,不用对外暴露服务】
b.服务的通信交流,其实就是要 ip+端口号
那个机器上运行xxx服务,你把那个web打开一下 ?
查看并访问服务
ps -ef|grep xxx 找到pid
netstat -nlp| grep pid 找到对应端口号
192.168.195.200:80
192.168.195.200
window: 提前安装telnet客户端
linux : yum install -y telnet
window/linux去检测服务是否ok: telnet ip port
1.先 ping ip
2.再 telnet ip port
[root@cdh ~]# telnet 192.168.195.200 22 【成功】
Trying 192.168.195.200...
Connected to 192.168.195.200.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.4
[root@ruozedata001 ~]# telnet 114.67.101.143 221
Trying 114.67.101.143... Connection refused 【错误3】
window电脑去访问 服务器的服务
先 ping ip
再 telnet ip port
linux机器去访问 服务器的服务
先 ping ip
再 telnet ip port
7.杀死进程
ps -ef|grep 名称
有可能匹配多个,仔细确认进程是否是自己想要杀的进程。
kill -9 pid 【高危命令】
kill -9 111 112 113 三个进程一杀
误杀造成的生产事故。
全局杀
kill -9 $(pgrep -f 匹配字符)
kill -9 6148 6251 7485 7624 7797 21892 30993
检测端口是否是对外访问还是对内访问
下面:80端口号服务可以对外,window或者其他服务器 可以ip+80 进行访问的
[root@ruozedata001 ~]# netstat -nlp|grep http
tcp6 0 0 :::80 :::* LISTEN 3478/httpd
tcp6 0 0 0.0.0.0:80 :::* LISTEN 3478/httpd
tcp6 0 0 192.168.1.101:80 :::* LISTEN 3478/httpd
下面:80端口仅限本机的其他服务可以访问,window或者其他服务器无法访问
tcp6 0 0 localhost:80 :::* LISTEN 3478/httpd
tcp6 0 0 127.0.0.1:80 :::* LISTEN 3478/httpd
localhost 、127.0.0.1 代表本机
80端口仅限本机的其他服务可以访问,window或者其他服务器无法访问
可以修改IP确定对外还是对内进行访问:
:cd /etc/httpd/
vi conf/httpd.conf
修改
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 127.0.0.1:80【这个地方是IP】
7. 下载
查看官网:<u>http://hadoop.apache.org/</u> ,点击download
https://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.10.1/hadoop-2.10.1-src.tar.gz
wget命令
wget https://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.10.1/hadoop-2.10.1-src.tar.gz
8.压缩解压
zip -r xxx.zip xxx/* 压缩:zip
unzip xxx.zip 解压:unzip
tar -czvf xxx.tar.gz xxx/* 压缩
tar -xzvf xxx.tar.gz 解压
9.command not found
没有安装
没有配置环境变量
[root@ruozedata001 ~]# which java1
/usr/bin/which: no java1 in (/usr/java/jdk1.8.0_181/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin)
[root@ruozedata001 ~]#
#ruozedata env
export JAVA_HOME=/usr/java/jdk1.8.0_181
export PATH=$JAVA_HOME/bin:$PATH 前 【推荐】
export PATH=$PATH:$JAVA_HOME/bin 后
[root@ruozedata001 ~]# echo $PATH
/usr/java/jdk1.8.0_181/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
10.定时
crontab -l 查看
crontab -e 编辑 就是编辑一个定时器文件内容
- sleep 10s; date >> /root/ruoze2.log
分 小时 日 月 周
- 标识 每
面试题:
每隔10s 打印一次
*/6 * * * * 每隔6min打印
[root@ruozedata001 ~]# vi ruoze.sh
#!/bin/bash
set -u
for((i=1;i<=6;i++));
do
date
sleep 10s
done
exit 0
11.后台执行脚本
nohup ..... &
nohup /root/ruoze.sh >> /root/rz.log 2>&1 &