1.系统常用检查命令
1 磁盘 df -h 2 内存 free -m 3 负载 top 4 5 [hadoop@bigdata ~]$ free -m 6 total used free shared buff/cache available 7 Mem: 7823 222 6229 257 1371 7096 8 Swap: 0 0 0 9 #free参数有的时候不是很准,用total - used 10 #Linux系统的Swap分区,即交换区,Swap空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。 11 那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。 12 这样,系统总是在物理内存不够时,才进行Swap交换。其实,Swap的调整对Linux服务器,特别是Web服务器的性能至关重要。通过调整Swap,有时可以越过系统性能瓶颈,节省系统升级费用 13 通常Swap空间的大小应是物理内存的2-2.5倍 14 大数据 生产服务器 swap是设置0 10(表示swap的惰性)也可以 15 16 17 [hadoop@bigdata ~]$ df -h 18 Filesystem Size Used Avail Use% Mounted on 19 /dev/vda1 40G 16G 25G 39% / 20 关注这些带目录的磁盘使用情况 21 /dev/vdb1 2T 16G 25G 1% /data01 22 /dev/vdb2 2T 16G 25G 1% /data02 23 /dev/vdb3 2T 16G 25G 1% /data03 24 /dev/vdb4 2T 16G 25G 1% /data04 25 26 下面这些不需要关注 27 devtmpfs 3.9G 0 3.9G 0% /dev 28 tmpfs 3.9G 16K 3.9G 1% /dev/shm 29 tmpfs 3.9G 258M 3.6G 7% /run 30 tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup 31 tmpfs 783M 0 783M 0% /run/user/1004 32 33 34 35 [hadoop@bigdata ~]$ top 36 37 系统负载 38 load average: 0.01, 0.03, 0.05 39 近1min 近5min 近15min 40 41 系统平均负载:单核CPU情况下,0.00 表示没有任何负荷,1.00表示刚好满负荷,超过1侧表示超负荷,理想值是0.7; 42 多核CPU负载:CPU核数 * 理想值0.7 = 理想负荷,例如:4核CPU负载不超过2.8何表示没有出现高负载 43 a.是你的程序有问题 在大量跑计算 44 b.是不是被挖矿 yarn redis 最容易被hacker 攻击 45 c.硬件问题 内存条 硬盘 重启服务器观察服务器显示灯来判断 46 47 top - 21:20:22 up 7 days, 58 min, 1 user, load average: 0.01, 0.03, 0.05 48 Tasks: 89 total, 1 running, 88 sleeping, 0 stopped, 0 zombie 49 %Cpu(s): 0.2 us, 0.5 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.3 st 50 KiB Mem : 8011076 total, 6377388 free, 229060 used, 1404628 buff/cache 51 KiB Swap: 0 total, 0 free, 0 used. 7265724 avail Mem 52 53 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 54 2374 root 20 0 394348 31376 8608 S 0.3 0.4 41:44.99 jdog-kunlunmirr 55 1 root 20 0 125356 3796 2508 S 0.0 0.0 1:22.32 systemd 56 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 57 3 root 20 0 0 0 0 S 0.0 0.0 0:00.08 ksoftirqd/0 58 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 59 6 root 20 0 0 0 0 S 0.0 0.0 0:02.50 kworker/u4:0
2.yum安装
1 yum search httpd 2 yum install httpd 3 4 centos6: 5 service httpd status|start|stop 1个应用httpd 6 7 centos7: 8 service httpd status|start|stop 兼容 9 systemctl status|start|stop httpd app2 app3 app4 一次性操作多个应用 10 11 12 搜索 卸载: 13 [root@bigdata ~]# rpm -qa|grep http 14 httpd-2.4.6-90.el7.centos.x86_64 15 httpd-tools-2.4.6-90.el7.centos.x86_64 16 [root@bigdata ~]# rpm -e 包名称 --nodeps 17 18 [root@bigdata ~]# yum remove httpd-2.4.6-90.el7.centos.x86_64
3.进程 端口号
1 ps -ef | grep http 2 kill -9 16629 3 kill -9 16630 16631 16632 16633 16634 4 5 根据匹配字段 搜索所有符合的进程 全部杀死 6 但是: 生产慎用 除非你先ps查看 这个关键词搜索的进程 是不是都是你想要杀死的进程 7 保不齐有个其他服务的进程 会造成误杀 生产事故!!! 8 9 [root@bigdata ~]# ps -ef|grep http 10 root 18363 1 0 21:51 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND 11 apache 18364 18363 0 21:51 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND 12 apache 18365 18363 0 21:51 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND 13 apache 18366 18363 0 21:51 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND 14 apache 18367 18363 0 21:51 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND 15 apache 18368 18363 0 21:51 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND 16 root 18387 15881 0 21:51 pts/2 00:00:00 grep --color=auto http 17 [root@bigdata ~]# kill -9 $(pgrep -f httpd) 18 [root@bigdata ~]# 19 [root@bigdata ~]# ps -ef|grep http 20 root 18444 15881 0 21:52 pts/2 00:00:00 grep --color=auto http 21 [root@bigdata ~]# 22 23 24 25 [root@bigdata ~]# ps -ef|grep http 26 root 18670 1 0 21:53 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND 27 apache 18671 18670 0 21:53 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND 28 apache 18672 18670 0 21:53 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND 29 apache 18673 18670 0 21:53 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND 30 apache 18674 18670 0 21:53 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND 31 apache 18675 18670 0 21:53 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND 32 root 18696 15881 0 21:54 pts/2 00:00:00 grep --color=auto http 33 34 [root@bigdata ~]# yum install -y net-tools.x86_64 35 [root@bigdata ~]# netstat -nlp| grep 18670 36 tcp6 0 0 :::80 :::* LISTEN 18670/httpd 37 38 [root@bigdata ~]# 39 [root@bigdata ~]# netstat -nlp| grep 18671 40 [root@bigdata ~]# netstat -nlp| grep 18672 41 42 43 进程不一定都会起到端口号,18671等是子进程就没端口号 44 但是 与其他服务通信 必然需要端口号!!! 45 46 47 打开xxx服务器的应用yyy的网页?你会涉及到哪些Linux命令 48 ip 49 ps -ef|grep yyy --》pid 50 netstat -nlp|grep pid --》port 51 52 浏览器: http://ip:port 53 54 55 细节: 56 [root@bigdata ~]# netstat -nlp| grep 18670 57 tcp6 0 0 :::80 :::* LISTEN 18670/httpd 58 tcp6 0 0 0.0.0.0:80 :::* LISTEN 18670/httpd 59 tcp6 0 0 192.168.0.3:80 :::* LISTEN 18670/httpd 60 其他ip能正常访问 61
62 tcp6 0 0 127.0.0.1:80 :::* LISTEN 18670/httpd 63 tcp6 0 0 localhost:80 :::* LISTEN 18670/httpd 64 危险: 该服务只能自己服务器的里面自己访问自己 65 66 67 ping ip 68 telnet ip port 69 70 window cmd: 71 ping 114.67.101.143 72 telnet 114.67.101.143 80 73 74 Linux: 75 [root@bigdata ~]# telnet bigdata 80 76 Trying 192.168.0.3... 77 Connected to bigdata. 78 Escape character is ‘^]‘. 79 ^Z 80 Connection closed by foreign host. 81 82 [root@bigdata ~]# telnet bigdata 809 83 Trying 192.168.0.3... 84 telnet: connect to address 192.168.0.3: Connection refused 85 [root@bigdata ~]# 86 87 88 有可能你的服务器 防火墙 开启,云主机 需要开启 安全组策略 89 直接找Linux运维 网络工程师 加防火墙(硬件)策略 90 91 总结: 92 Connection refused 93 1.ping ip 可能是因为服务器是ping功能禁止 94 2.telnet ip port ok 来验证
4.下载
1 wget https://repo1.maven.org/maven2/org/apache/spark/spark-core_2.12/2.4.5/spark-core_2.12-2.4.5.jar (推荐) 2 curl https://repo1.maven.org/maven2/org/apache/spark/spark-core_2.12/2.4.5/spark-core_2.12-2.4.5.jar -O spark-core_2.12-2.4.5.jar
5.压缩 解压
1 zip -r xxx.zip xxx/* 2 unzip xxx.zip 3 4 tar -czvf xxxx.tar.gz xxxx/* 5 tar -xzvf xxxx.tar.gz 6 7 Examples: 8 tar -cf archive.tar foo bar # Create archive.tar from files foo and bar. 9 tar -tvf archive.tar # List all files in archive.tar verbosely. 10 tar -xf archive.tar # Extract all files from archive.tar.
6.命令找不到
1 [root@bigdata ~]# 2 [root@bigdata ~]# 3 [root@bigdata ~]# ls 4 dir1 dir1.tar.gz 5 [root@bigdata ~]# which ls 6 alias ls=‘ls --color=auto‘ 7 /usr/bin/ls 8 [root@bigdata ~]# which jjj 9 /usr/bin/which: no jjj in (/home/dwz/app/python3/bin:/usr/java/jdk1.8.0_181/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin) 10 [root@bigdata ~]# 11 12 想要命令快速找到 which xxx 来验证,其实就是提前将命令的目录配置在环境变量$PATH 13 echo $PATH 来查看是否将命令的目录配置上! 14 15 [root@bigdata ~]# echo $PATH 16 /home/dwz/app/python3/bin:/usr/java/jdk1.8.0_181/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin 17 [root@bigdata ~]# jjj 18 -bash: jjj: command not found 19 [root@bigdata ~]# 20 21 command not found 22 a.没安装上 23 b.路径没配置
7.定时
1 脚本: 2 [root@bigdata ~]# 3 [root@bigdata ~]# vi hadoop.sh 4 #!/bin/bash 5 date 6 7 8 [root@bigdata ~]# ./hadoop.sh 9 Wed Apr 22 23:03:17 CST 2020 10 [root@bigdata ~]# 11 [root@bigdata ~]# date 12 Wed Apr 22 23:03:21 CST 2020 13 14 [root@bigdata ~]# crontab -e 15 * * * * * /root/hadoop.sh >> /root/hadoop.log 16 17 分 18 小时 19 日 20 月 21 周 22 23 * 表示 每 24 25 26 * * * * * 每分钟 27 */1 * * * * 每分钟 28 29 面试题: 每隔10s打印一次 怎么做 30 31 */6 * * * * 每6分钟 32 33 34 35 正确做法,加个循环 36 [root@bigdata ~]# vi hadoop2.sh 37 #!/bin/bash 38 for((i=1;i<=6;i++)); 39 do 40 date 41 sleep 10s 42 done
8.后台执行脚本
1 nohup /root/hadoop.sh >> /root/hadoop.log 2>&1 & 生产标准写法