当前位置: 首页 > 科技观察

关于Linux网络管理、软件安装、进程管理总结

时间:2023-03-21 22:12:25 科技观察

1。网络管理1.1网络状态检查在Linux中,经常使用ifconfig、route和netstat来检查网络状态。他们是。net-tools工具,我将在下面使用它们。随便说一下ifconfig和route在我们linux中有很多网卡接口,比如eth0的第一个网卡网口,eno1的板载网卡,ens33的PCI-E网卡。CentOS7使用一致的网络设备命名,如果以上都不匹配,使用eth0[root@node01~]#ifconfigeth0eth0:errorfetchinginterfaceinformation:Devicenotfound[root@node01~]#ifconfigens33ens33:flags=4163mtu1500inet192.168.92.90netmask255.255.255.0broadcast192.168.92.255inet6fe80::b889:1772:c306:ef8fprefixlen64scopeid0x20ether00:0c:29:07:43:5Atxqueuelen1000(Ethernet)RXpackets910bytes954985(932.6KiB)RXerrors0dropped0overruns0frame0TXpackets450bytes38942(38.0KiB)TXerrors0dropped0overruns0carrier0collisions01.2网络配置文件vim/etc/hosts网络配置文件在配置hadoop和elasticsearch集群时,需要在/etc/hosts中配置集群IP和hostname。有时候ping不通百度,可能是域名解析不行,需要在/etc/sysconfig/network-scripts/ifcfg-eth0#vim/etc/sysconfig/network#####中配置[root@node01~]####HOSTNAME=node01[root@node01~]#vim/etc/hosts#########192.168.92.90node01192.168.92.91node02192.168.92.92node03[root@node01~]#配置DNS,域名解析服务[root@node01~]#vim/etc/sysconfig/network-scripts/ifcfg-eth0DNS1=202.106.0.20DNS2=8.8.8.81.3网络排查命令首先ping百度:检查目标机器网络是否可用maoli@ubuntu:~$pingbaidu.comPINGbaidu.com(220.181.38.148)56(84)bytesofdata.64bytesfrom220.181.38.148:icmp_seq=1ttl=128time=49.6ms64bytesfrom220.181.38.148:icmp_seq=2ttl=128time=48.2ms^C---baidu.compingstatistics---2packetstransmitted,2received,0%packetloss,time1001msrttmin/avg/max/mdev=48.223/48.948/49.673/0.725msnslookup工具可以解析域名。格式为nslookup空间+域名。比如nslookupwww.baidu.comServer就是ipmaoli@ubuntu对应的域名:~$nslookupwww.baidu.comServer:127.0.1.1Address:127.0.1.1#53Non-authoritativeanswer:www.baidu.comcanonicalname=www.a.shifen.com.Name:www.a.shifen.comAddress:182.61.200.6Name:www.a.shifen.comAddress:182.61.200.7tcpdump是一个拦截网络数据包并输出数据包内容的工具。凭借强大的功能和灵活的拦截策略,成为类UNIX系统网络分析和故障排除的首选工具。比如tcpdump-iany-nport80抓取所有网卡(any)80端口的包,使用ip形式显示(-n)maoli@ubuntu:~$sudotcpdump-iany-nport80-ntcpdump:verboseoutputsuppressed,use-vor-vvforfullprotocoldecodeListeningOnany,link-typelinux_sll(LinuxCooked),捕获262144Bytes10:28:11.003675ip192.168.92.1.53951>192.168.92.168.92.135.80:Flags:Flags[sss],length010:28:11.003875IP192.168.92.135.80>192.168.92.1.53951:Flags[S.]seq2863640054,ack185886165,win64240,options[mss1460,nop,nop,sackOK,nop14:IP027],length0114:0.168.92.1.53951>192.168.92.1365.80:Flags1,20win1,2,4,:11.010472IP192.168.92.1.53951>192.168.92.135.80:Flags[P.],seq1:476,ack1,win4710:6,length4:GET/??sqli-labs/HTTP/1.1如tcpdump-iany-nhost10.0.0.1andport80抓取所有网卡的80和10.0.0.1端口之间的数据包,并以ip的形式显示出来netstat命令用于显示IP、T相关的统计数据CP、UDP和ICMP协议,一般用于检查本机各端口的网络连接状态。netstat是内核中访问网络及相关信息的程序。它可以提供有关TCP连接、TCP和UDP监控以及进程内存管理的报告。netstat查看服务监听端口状态是否正确-n显示ip地址-ttcp协议-p显示端口对应的进程-ltcp监听状态(listen)-ntpl查看开启状态端口maoli@ubuntu:~$sudonetstat-ntlp激活互联网连接(仅限服务器)ProtoRecv-QSend-QLocalAddressForeignAddressStatePID/Programnameetcp000.0.0.0:220.0.0.0:*LISTEN1111/sshdtcp00127.0.0.1:6310.0.0.0:*LISTEN14200/cupsdtcp00127.0.0.1:1.40.EN/0.1:330.60mysqldtcp00127.0.0.1:63790.0.0.0:*LISTEN1165/redis-server1tcp00127.0.1.1:530.0.0.0:*LISTEN1280:t:c/dns20:*LISTEN1111/sshdtcp600::1:631:::*LISTEN1420/cupsdtcp600:::9000:::*LISTEN2234/docker-proxytcp600:::80:::*LISTEN1842/apache21.4网络服务管理有两种网络服务管理程序,即SysV和systemd。现在Systemd已经基本取代了SysV的Init。1.5设置静态ip在搭建任何集群时,都需要设置静态ip。[root@node01]#vim/etc/sysconfig/network-scripts/ifcfg-ens33#################BOOTPROTO=staticONBOOT="yes"#网关地址取决于系统网络SetGATEWAY=192.168.92.2#SetstaticipIPADDR=192.168.92.92NETMASK=255.255.255.0#配置DNS服务器DNS1=8.8.8.8DNS2=8.8.4.42。软件安装2.1rpm安装在Linux操作系统下,几乎所有的软件安装、卸载、管理等操作都是通过RPM进行的。RPM的全称是RedhatPackageManager。它是由Redhat提出的。用于管理Linux下的软件包。主要用于CentOS、RedHat等Linux系统。软件安装包格式为rpm。比如一个vim的rpm叫做:vim-common-7.4.10-5.el7.x86_64.rpm。vim-common为软件名称,7.4.10-5软件版本,el7为RedHatEnterpriseLinux指centos7系统版本,x86_64为系统平台x86rpm命令常用参数,-q查询软件包,-i安装软件Package和-euninstallpackage2.2yum包管理器yum(全称YellowdogUpdater,Modified)是一个基于RPM包管理的前端包管理器,可以自动从指定服务器下载并安装RPM包,并能自动处理依赖性关系。下载阿里云的yum源到/etc/yum.repos.d备份yum源mv/etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Base。repo.backup下载新的CentOS-Base.repo到/etc/yum.repos.d/,这里指centos7wget-O/etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repo#运行yummakecache生成缓存yumcleanallyummakecache此时可以查看yum的base[root@node01~]#vim/etc/yum.repos.d/CentOS-Base.repo[base]name=CentOS-$releasever-Base-mirrors.aliyun.comfailovermethod=prioritybaseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/gpgcheck=1gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7感谢yum有些镜像速度很慢。为此,我可以下载最快的镜像插件。[root@node01~]#yuminstallyum-fastestmirror-y[root@node01~]#cat/etc/yum/pluginconf.d/fastestmirror.conf[main]enabled=1verbose=0always_print_best_host=truesocket_timeout=3#Relativepathsarerelativetothecachedir(andsoworksforusersaswell#asroot.hostfilepath=timedhosts.txtmaxhostfileage=10maxthreads=15#exclude=.gov,facebook#include_only=.nl,.de,.uk,.ieyum常用命令install安装包,remove卸载包,list|grouplist查看包,update升级软件包2.3apt安装Ubuntu的高级打包工具(APT,AdvancedPackagingTool),Debian和Ubuntu使用apt包管理器,软件安装包格式为deb。aptinstallanginxmaoli@ubuntu:~$sudoapt-getinstallnginx/usr/sbin/nginx:主程序/etc/nginx:存放配置文件/usr/share/nginx:存放静态文件/var/log/nginx:存放日志2.4makeinstall编译源码安装源码的安装一般分为3个步骤:配置(configure)、编译(make)、安装(makeinstall)。配置文件是一个具有许多选项的可执行脚本文件。在要安装的源代码目录下使用命令./configure–help输出详细的选项列表。--prefix选项是配置安装目录。如果不配置该选项,安装后可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr./local/etc,其他资源文件放在/usr/local/share,比较乱。如果配置了--prefix,如:./configure--prefix=/usr/local/python3安装后的所有资源文件都会放在/usr/local/python3目录下,不会分散到其他目录.如果删除它,只需删除此文件即可。下载centos7安装Python3.6[root@node01~]#yuminstallyum-utils[root@node01~]#yuminstallopenssl-devel-y[root@node01~]#mkdir-p/usr/local/python3[root@node01~]#cd/usr/local/python3/[root@node01python3]#wgethttps://www.python.org/ftp/python/3.6.7/Python-3.6.7.tgz[root@node01python3]#tar-zxvfPython-3.6.7.tgz[root@node01python3]#cdPython-3.6.7[root@node01python3.6.7]#./configure--prefix=/usr/local/python3--with-ssl[root@node01python3.6.7]#;;make&&makeinstallInstallation收集的packages:setuptools,pip成功安装pip-10.0.1setuptools-39.0.[root@node01python3.6.7]#cd..[root@node01Python3]#ln-s/usr/local/python3/bin/python3/usr/bin/python3[root@node01Python3]#ln-s/usr/local/python3/bin/pip3/usr/bin/pip3[root@node01Python3]#python3-VPython3.6.7[root@node01Python3]#python3Python3.6.7(默认,Mar52020,11:11:11-11].11:11-11].00:15)[GCC4.8.520150623(RedHat4.8.5-39)]onlinuxType"help","copyright","credits"or"license"forforeinformation.>>>退出()3。进程管理进程是对Unix和Linux系统中正在运行的应用程序的抽象,通过它可以管理和监控程序对内存、处理器时间和I/O资源的使用3.1杀掉一个进程往往需要杀掉进程。ps-ef可以查看所有进程,ps-ef|grep可以查看特定任务的进程,比如查看Mysql进程[root@node01~]#ps-ef|grepmysqlclouder+172613815:16?00:04:34/usr/java/jdk1.8.0_241/bin/java-cp.:/usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/java/postgresql-connector-java.jar:lib/*-server-Dlog4j.configuration=file:/etc/cloudera-scm-server/log4j.properties-Dfile.encoding=UTF-8-Dcmf.??root。logger=INFO,LOGFILE-Dcmf.??log.dir=/var/log/cloudera-scm-server-Dcmf.??log.file=cloudera-scm-server.log-Dcmf.??jetty.threshhold=WARN-Dcmf.??schema.dir=/opt/cloudera/cm/schema-Djava.awt.headless=true-Djava.net.preferIPv4Stack=true-Dpython.home=/opt/cloudera/cm/python-XX:+UseConcMarkSweepGC-XX:+UseParNewGC-XX:+HeapDumpOnOutOfMemoryError-Xmx2G-XX:MaxPermSize=256m-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=/tmp-XX:OnOutOfMemoryError=kill-9%pcom.cloudera.server.cmf.Mainmysql27461?005::00:04/usr/sbin/mysqld--daemonize--pid-file=/var/run/mysqld/mysqld.pidroot98644959015:28pts/000:00:00grep--color=automysql查找符合指定条件的进程-"pgrep",是ps-ef|grep的缩写[root~]$pgrepmysqld3584查看端口的进程,forexample,theportofmysqlis3306[root@node01~]#lsof-i:3306COMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAMEjava1726cloudera-scm285uIPv4506250t0TCPlocalhost:58292->localhost:mysql(ESTABLISHED)mysqld2745mysql27uIPv6471640t0TCP*:mysql(LISTEN)mysqld2745mysql40uIPv6540600t0TCPlocalhost:mysql->localhost:58296(E杀进程序使用kill-9命令,如kill-91726,是杀掉Mysql进程。3.2Daemon进程daemon进程就是所谓的daemon进程,是在linux后台执行的进程。它终端关闭时不会停止运行,Linux系统会自动打开运行命令而不挂断,nohangup的缩写意思是“不挂断”。结合&[root@node01~]#tail-f/var/log/messagesMay116:01:10node01kubelet:I050116:01:10.34475726130server.go:837]Clientrotationison,willbootstrapinbackground[root@node01~]#ps-ef|greptailroot2621025353016:01pts/100:00:00tail-f/var/log/messagesroot2655525310016:01pts/000:00:00grep--color=autotail关闭上面的tail-f/var/log/messages[root@node01~]#ps-ef|greptail[root@node01~]#ps-ef|greptailroot2735325310016:03pts/000:00:00grep--color=autotail一般需要nohup和&结合使用[root@node01~]#nohuptail-f/var/log/messages&[1]27718nohup:忽略输入并将输出附加到“nohup.out”[root@node01~]#ps-ef|greptailroot2771825353016:04pts/100:00:00tail-f/var/log/messagesroot2944425310016:07pts/000:00:00grep--color=autotail关闭上面的nohuptail-f/var/log/messages&[root@node01~]#ps-ef|greptailroot277181016:04?00:00:00tail-f/var/log/messagesroot2994625310016:08pts/000:00:00grep--color=autotail3.3查看进程ps-ef查看进程[root~]#ps-efUIDPIDPPIDCSTIMETTYTIMECMDroot100Jun23?00:00:05/usr/lib/systemd/systemd--switched-root--system--deserialize21root200Jun23?00:00:00[kthreadd]...[root~]#ps-ef|grepmysqldroot49434581022:45pts/000:00:00grep--color=automysqldmysql2525710Jun25?00:00:39/usr/sbin/mysqld--daemonize--pid-file=/var/run/mysqld/mysqld.pid本文已收录到GitHub,传送门~[1],还有完整的Daemon面试测试站,欢迎toStarReference[1]]传送门~:https://github.com/MaoliRUNsen/runsenlearnpy100