网络管理、ssh、日志管理、归档和文件传输、rpm

网络管理

网络的必须要素:1、ip/netmask(子网掩码) , 2、gateway(网关) ,3 、DNS
在这里插入图片描述
ifconfig / ip a:查看网络,区别:如果配置了多个ip,只有用ip a 才能看到。
网卡目录:/etc/sysconfig/network-scripts/ 该目录存放了所有网卡信息
在这里插入图片描述
更改网卡名称操作,以上述网卡为例:1、先执行nmcli connection , 2、删除名称:nmcli connection delete eno16777728 , 3、编辑文件添加内容:vim /etc/default/grub , 4、执行:grub2- mkconfig -0 /boot/grub2/grub.cfg ,5、重启生效 即可:
在这里插入图片描述

route -n : 查看网关 和 掩码
cat /etc/resolv.conf: 查看DNS
网络配置:
图形化配置:
nmcli connection:查看信息
nmcli connection show 网卡:后面跟上网卡名称 可以查看详细信息
在这里插入图片描述
这里面很多内容其实是不需要看的 只需要关注ipv4即可,所以进行筛选查看:
在这里插入图片描述
nm- connection- editor & : 开始在后台(&)进行图形化配置
在这里插入图片描述
在这里插入图片描述
正常配置即可;
nmcli connection delete 网卡名称:删除网络会话
命令行配置:
1、cd /etc/sysconfig/network-scripts/
2、vim ifcfg-网卡名 , 然后在里面写入内容:
在这里插入图片描述
3、systemctl restart network 重启网卡生效
注:如果配置多个ip:ip和网关必须全部加上数字,单个ip不需要:
在这里插入图片描述
nmtui- edit:修改配置文件的方式创建或删除ip,修改或需要重启网卡生效:
在这里插入图片描述
hostname 新主机名:临时修改主机名
hostnamectl set- hostname 新主机名:修改主机名——永久生效
vi /etc/hostname:同样修改主机名 ——永久生效
nmtui- hostname:同样修改主机名——永久生效

更详细的请参考:https://blog.csdn.net/cuichongxin/article/details/101523936

ssh

ssh的基本用法

语法:ssh server-ip 如果没有指明用户的话,则使用的是当前用户:
在这里插入图片描述
当我们第一次连接到某个服务器的时候,会纪录ssh的公钥信息(公钥指纹),以证明这个服务器我已经连接过,这个公钥指纹纪录在主服务器的:.ssh/known_hosts里:
在这里插入图片描述
被连接公钥存在 /etc/ssh 目录里 ssh_host_都是公钥信息:
在这里插入图片描述
如果被连接服务器的公钥指纹发生了改变 ,(如删除公钥信息:rm -rf /etc/ssh/ssh_host_
,删除后务必重启sshd服务 否则ssh无法使用):systemctl restart sshd,客户端再次被连接就会报错:
在这里插入图片描述

这时候就需要在主服务器里删除报错ip信息: .ssh/known_hosts 里面相对应ip的内容删掉,重新ssh 即可:cd .ssh , ls , vi known_hosts 删除登陆报错ip即可:
在这里插入图片描述
ssh -l 用户名 server-IP:指定用户登陆
ssh 用户名@server-Ip:也是指定用户登陆 一般用这种居多。

如何打开图形化界面

要想能看到图形化几面,两个条件:要有 xserver 和 xclient ,满足后就可以直接打开图形化了,如在后台打开火狐浏览器:firefox &
在这里插入图片描述
远程端打开图形化界面的话,要有3个条件:
ssh建立的连接要云讯传输xdlient ,就是ssh后面要加一个 大写X 参数,只要加上-X,就可以传递xdient:
在这里插入图片描述
ssh客户端这边必须要有xserver,装RHEL的时候,装了图形化界面的话,xserver就会正常运行。
ssh服务器那边要云讯xdient在其他机器上运行,如果是最小化安装,需要安装:先更新:yum list *x*auth* ,再安装:yum -y install *x*auth*
在这里插入图片描述
如打开火狐浏览器:
在这里插入图片描述
一般这种情况下浏览器会出现乱码 echo $LANG 查看当前语言环境,解决方法:1、mkdir -p /usr/share/fonts/zh_CN/TrueType 2、去网上下载任意字体,拷贝到1创建的目录中,重新打开浏览器即可解决乱码问题:
在这里插入图片描述

ssh的密码认证及安全管理

登陆ssh的时候,有两种方式:
密码的验证方式:直接ssh server-ip 需要输入密码
秘钥的认证方式:可以让我们不需要输入密码,直接就可以登陆了,称之为建立ssh 的信任关系。
加密的基础知识
解密的类型:对称加密,非对称加密,哈希函数
在这里插入图片描述
创建秘钥:秘钥存在目录:.ssh/,创建秘钥:ssh-keygen ,会让你输入密码,这个就是私钥密码,配了秘钥登陆,每次都需要输入一次密码,这个密码不是对方服务器的密码,而是私钥密码, 所以一般是不会要这个私钥密码的,这时候可以不输人任何密码直接回车或者使用ssh-keygen -N “”,就是不创建私钥密码
在这里插入图片描述
公钥绑定:ssh-copy-id 用户@ip即可:
在这里插入图片描述
后续如果不想要这个公钥了,在创建秘钥服务器中删除即可:cd .ssh , rm -rf .ssh/id_rsa* ,也需要对被绑定服务器中authorized_keys 删除:cd .ssh , rm -rf authorized_keys 。如果想删除某一个秘钥登陆,只需去被绑定服务器中删除authorized_keys即可。
在这里插入图片描述

限制root直登:vim /etc/ssh/sshd_config 里面有一项是:#PermitRootLogin yes,把前面的# 删掉,并把yes改为no,就不可以使用root直接登陆了,但需要重启服务才会生效:systemcctl restart sshd
限制秘钥直登:vim /etc/ssh/sshd_config 里面有一项是:#PubkeAuthentication yes ,吧前面的#删掉 并把yes改为no即可,需要重启服务:systemctl restart sshd
限制密码验证:vim /etc/ssh/sshd_config 里面有一项是:#PasswordAuthentication yes ,吧前面的#删掉 并把yes改为no即可,需要重启服务:systemctl restart sshd

通过VNC访问远程桌面

windows——RDP
xendesktop——LCA
vmwareview——CoIP
vnc/spice
装vnc的时候需要关闭防火墙:firewall-cmd --set-dafault-zone=trusted
开始装vnc:yum install -y vnc。
装完以后第一次运行vncserver会让输入一次密码,这两个密码是用于远程桌面的密码,这个密码保存在家目录下:.vnc/
root执行这个命令,所以root打开(创建)了一个vnc桌面:
在这里插入图片描述
roo下创建vnc用户:vncserver
查看以创建的vnc用户:vncserver -list :
在这里插入图片描述
此时如果你登陆:2号桌面的话,则使用的是root登陆的,密码就是刚刚第一次运行vncserver的时候输入的密码,如果想修改密码:vncpasswd
在这里插入图片描述
关闭(删除)vnc 如2号桌面:vncserver -kill :2
在这里插入图片描述
cat家目录下的vnc会发现里面储存有分辨率信息:
在这里插入图片描述
所以在创建新桌面的时候可以指定分辨率,如指定分辨率在3号桌面:vncserver -geometry 1024*768 :3
在这里插入图片描述
如果需要用其他用户登陆vnc:则su - 切换到指定用户 打开(创建)vnc即可;
也可以用另外一种方式创建vnc桌面:x0vncserver --passwordfile=.vnc/passwd
通过该命令创建后 vnc登陆桌面的时候就不需要指定几号桌面了:
在这里插入图片描述
vnc的好处是屏幕是同步的:适合多个场景同步教学等用途
在这里插入图片描述
注:需要吧共享连接勾上,否则会把前面所有已经连接的挤掉线;
在这里插入图片描述
或者通过 在开启vnc桌面的时候 强制开启共享桌面等功能:
在这里插入图片描述
AlwaysShared:强制开启共享连接
AcceptPointerEvents=0 :是否运行运行鼠标,0不可以 ,1可以
AcceptKeyEvents=0:是否运行使用键盘,0不可以,1可以

日志管理

日志的管理

如果运行某命令报错了,应该清楚:什么报错了,怎么报错了,报错日志是什么;
在这里插入图片描述
日志都是默认开启的,查看命令:systemctl is-active rsyslog.service
日志服务运行的时候,它会自动读取自己的所有.conf配置文件:ls /etc/rsyslog.*
在这里插入图片描述
系统里内置很多种事件 ,每种事件里都有一个级别:事件.级别
在这里插入图片描述
查看日志的定义:vi /etc/rsyslog.conf ,可以看到里面什么事件什么级别分别存在什么日志目录:
在这里插入图片描述
/var/log/messages —包括整体系统信息,其中也包含系统启动期间的日志。此外, mail,cron,daemon,kern和auth等内容也记录在var/log/messages日志中。
/var/log/secure —包含验证和授权方面信息。例如,sshd会将所有信息记录(其中包括失败登录)在这里。
-/var/log/maillog /var/log/mail.log —包含来着系统运行电子邮件服务器的日志信息。例如,sendmail日志信息就全部送到这个文件中。
/var/log/cron — 每当cron进程开始一个工作时,就会将相关信息记录在这个文件中。
/var/log/spooler——与UUCP和news设备相关的日志信息
/var/log/boot.log — 包含系统启动时的日志。
:omusrmsg:*——警告信息
如:logger -p local5.emerg ‘报警信息’:模拟一个报警
在这里插入图片描述
在这里插入图片描述

‘-’ 表示异步sync,无-则表示同步async,异步的意思是先吧数据写在内存上,内存在慢慢写给硬盘,同步就是 写在内存上,内存同时写进硬盘。
如:日志中自定义事件vi /etc/rsyslog.conf
在这里插入图片描述
logger -p local5.debug ‘test11111’ 模拟事件,确实已经如预期写进了xx.log日志中
在这里插入图片描述
如:因为debug级别比较低所以local5.info 也会写进xx.log目录中,而且因为是info级别,也会写入到messages 中:logger -p local5.info ‘test22222’
在这里插入图片描述

日志服务器的配置

简单来说就是把若干台服务器的日志信息 统一写入到某一台里面,这样就不用一台一台登陆查看日志了
在这里插入图片描述
如:我现在要把A服务器的日志文件配置到中央日志服务器中,则先在A服务器中指定中央服务器ip:vi /etc/rsyslog.conf
在这里插入图片描述
然后到中央服务器中接收A服务器日志:vi /etc/rsyslog.conf
在这里插入图片描述
中央服务器配置好其他服务器传送过来的目录后,需要开启2个模块(把#去掉) 并且需要更改防火墙zone:firewall-cmd --set-default-zone=trusted 或者直接关闭:systemctl stop firewalld
在这里插入图片描述
测试:在A服务器上 生成一个事件,然后去中央服务器查看是否有相应日志生成:logger -p local6.info ‘test1234567’
在这里插入图片描述

添加多台方法一样,只需要在配置文件里自定义中央服务器接收的名字一样即可,如上图中的local6.* 。 但是 这样有一个弊端,就是 如果匹配了多个服务器,全部写在里面会很乱,不容易查看对应服务器的日志信息:
在这里插入图片描述

所以日志应该分类,a服务器的日志放在a服务器主机名目录下,b服务器放在b服务器主机名下:所以需要进行以下操作:
首先,设置日志的服务器必须能互相解析,然后吧服务器ip和主机名信息添加到中央服务器/etc/hosts 中。主机名hostname查看
在这里插入图片描述
然后在中央服务器/etc/rsyslog.conf中日志存放目录顶端添加存放信息, :fromhost,isequal,“controller” /var/log/controller (日志信息来自controller的存放到该目录下,前提是必须添加解析),如果只添加这一行,虽然日志会如期存放到该目录下,但如果是info级别的,也会存放到中央服务器的messages等目录中,这显然是不希望发生的,所以还需要在添加一行,:fromhost,isequal,“controller” ~ (就是说匹配到这以后就停止往下匹配,也就不会写入到中与服务器的日志目录了)
在这里插入图片描述
测试:在服务器中 自定义事件,看中央服务器能否正常录入日志信息:[root@controller ~]# logger -p local6.info ‘fadsfdsagz1123’ ; [root@block1 ~]# logger -p local6.info ‘test123dfgasf1’
在这里插入图片描述

查看日志

journalctl:查看日志命令 全部日志都在里面,这个数据一般没有参照价值,所以需要配合需求参数使用
journalctl -f :动态查看最新事件日志,一般打开多个窗口,一个窗口用来查看日志,其他窗口做操作,查看问题。 ctrl+c退出
journalctl -p 事件名:查看事件及以上日志,如查看err事件:journalctl -p err
journalctl --since “时间” :查看从该时间到现在的所有日志,如查看20191020日20点整到现在的所有日志:journactl --since “2019-10-20 20:00:00” ,或查看区间日志,如查看20191020日20点整到20191021日00点20分的所有日志:journalctl --since “2019-10-20 20:00:00” --until “2019-10-21 00:20:00”

NTP服务器的设置

简单提一下时间设置
修改时间:date 月日时分年 如:date 102112302019 (20191021,12:30),date -s “20191023 12:31:25”
还原时间:hwclock -s
timedatectl:查看时间详细,如果有告警,执行timedatectl set-local-rtc 0即可
在这里插入图片描述
查看所有时区:timedatectl list-timezones
修改时区:timedatectl set-timezone 时区名称 ,如修改为abidjan:timedatectl set-timezone Africa/Abidjan

开始配置ntp服务:先禁止chronyd服务(避免启动了chrony而冲突):systemctl stop chronyd.service , 关闭开启自启:systemctl disable chronyd.service ,查看状态: systemctl status chronyd.service
在这里插入图片描述
安装ntp:yum -y install ntp
安装完成后编辑文件:vi /etc/ntp.conf 同网段只需要 在主服务器 server处添加一行 server 127.127.1.0 (本机时间)即可,需把其他server注释掉
在这里插入图片描述
在客服端服务器上编辑文件:vi /etc/ntp.conf 中 server中添加主服务器ip即可:
在这里插入图片描述
客户端运行 ntpq -p 查看状态, ntpdate -u 主服务器ip ,实现与主服务端同步,同步成功后date查看时间与主服务器时间一致,成功。
在这里插入图片描述
如果服务器与主服务器的晶体时间不一样,则时间过一天左右时间就不会相同了,所以这时候需要在其他服务器上执行:0 12 * * * /usr/sbin/ntpdate 0.0.0.0(主服务器ip,每天的12点整 同步一次时间) 如果不是最小化安装,可以: yum install -y system-config-date ,安装完成后执行:system-config-date & , 在里面添加ntp主服务器ip即可,(如果在网络上同步日期和时间这一栏是灰色的无法选择,则开启ntp服务:timedatectl set-ntp true ):
在这里插入图片描述

查看状态:chronyc sources -v 如果同步成功会显示 *
在这里插入图片描述

归档和文件传输

熟练归档和压缩文件/目录

归档archive:把多个文件放在一个东西里(类似于windows中打打压缩包)
常见的归档工具:tar,cpio
语法:
基本命令
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
压缩相关命令
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出
-f: 使用档案名字,这个参数是最后一个参数,后面只能接档案名。
tar cvf 归档文件名.tar file1 file2 file3 …
在这里插入图片描述
吧上面几个文件归档到file.tar里了,这时候归档完成后 源文件还是在的,如果想归档完成之后,源文件自动删除,在最后面加上 --remove-files :
在这里插入图片描述
在不解压的情况下,查看这个归档文件的内容:tar tf 文件名 :
在这里插入图片描述
解压jdk到指定文件夹 -C :(注:下列所有参数的- 可忽略 如 tar xzvf )
tar -xzvf jdk-8u131-linux-x64.tar.gz -C /usr/local/java
1.这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
tar -cvf all.tar *.jpg
2.这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
tar -rvf all.tar *.gif
3.这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
tar -uf all.tar logo.gif
4.这条命令是列出all.tar包中所有文件,-t是列出文件的意思
tar -tvf all.tar
5.这条命令是解出all.tar包中所有文件,-x是解开的意思
tar -xvf all.tar
6.这条命令是解除num.tar包中的其中某个文件,-x是解开的意思
tar -xvf num.tar 1 (如果需要解开其中多个,可直接在后面追加文件名即可 tar -xf num.rat 1 2 3 …)
压缩
//将目录里所有jpg文件打包成tar.jpg
tar -cvf jpg.tar *.jpg
//将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩 -z(文件大小会变小),生成一个gzip压缩过的包,命名为jpg.tar.gz
tar -czvf jpg.tar.gz *.jpg
//将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩 -j(文件大小会变更小),生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar -cjvf jpg.tar.bz2 *.jpg
//将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包 -Z ,命名为jpg.tar.Z
tar -cZvf jpg.tar.Z *.jpg
解档:
tar xvf 归档文件
tar xvf 归档文件名 归档文件中的文件名 (tar tf 查看归档文件中的文件) (如果需要解开其中多个,可直接在后面追加文件名即可 tar -xf num.rat 1 2 3 …)
在当前文件创建一个文件名为file的100M文件:dd if=/dev/zero of=file bs=1M count=100 (zero无穷大小 可以随便提取,if 输出,of写入,bs大小,count数量,该方法也可以用来测试硬盘读写速度,吧count换成2048,看写完需要多少时间)

linux和Linux之间互相传输文件

一般都2种分别为:scp和rsync——都基于ssh
scp ——两台互相拷文件的服务器都必须有scp命令,否则无法拷贝
scp -选项 /path1/file 目标ip:/path2 ——从当前服务器把文件拷贝到目标服务器
在这里插入图片描述
如果不想输入密码就可以远程远程传输的话,需要建立ssh的信任关系 ,也就是无密码登陆。ssh-keygen , ssh-copy-id 0.0.0.0
在这里插入图片描述
如果拷贝目录文件,需要加上选项r scp -r 目录名/ 0.0.0.0:file 如:scp -r a/ 192.168.127.136:/ 把当前目录下的a目录拷贝对该服务器的/目录下
也可以在当前服务器拷贝其他服务器的文件:scp ip:目录文件 当前目录文件 如:scp 192.168.127.136:/1 . 吧对方服务器根目录下的1考本到当前位置. 也可以指定任意位置。
rsync使用与scp大致一致 推荐使用scp。 rsync -选项 文件 ip:地址 如:rsync anaconda-ks.cfg 192.168.127.136:/opt 拷贝anaconda-ks.cfg 到目标服务器的opt目录下

linux和windows之间互相传输文件

windows→linux
lrzsz,确保在服务器上安装了lrzsz 没有的话就yum -y install lrzsz ,然后通过某个客户端比如xshell,secureCRT等工具连接到服务器上,如果使用的是putty的话,则不支持。
要把windows里的文件拷贝到linux里的话,直接吧文件拖终端里或输入rz命令,会让我们选择windows里文件:
在这里插入图片描述
linux→windows
确保在服务器上安装了lrzsz 没有的话就yum -y install lrzsz ,然后通过某个客户端比如xshell,secureCRT等工具连接到服务器上,如果使用的是putty的话,则不支持。
然后在终端输入sz 文件名 即可让你选择保存位置:如 sz aa.sh
在这里插入图片描述
也可以使用xftp 等工具互相上传文件。

rpm

简要介绍使用源码包安装软件包

源码包需要安装gcc:yum -y install gcc
比如linux服务器现有一个压缩文件figlet-2.2.4.tar.gz(一般是网上下载拷贝到服务器上的)。
第一步需要解压文件:tar zxvf figlet-2.2.4.tar.gz
在这里插入图片描述
解压完成以后进入解压的目录中: cd figlet-2.2.4 (注:如果没有Makefile文件的话,一般会有conflgure文件,./conflgure --help 查看帮助,里面有许多选项,./conflgure --选项1 --选项2 … 就可以生成Makefile文件,再次运行make && make install)
在这里插入图片描述
进入解压目录以后,编译并安装:make && make install ,make是编译 只有编译成功后才会执行安装。
在这里插入图片描述

使用rpm管理软件

rpm–redht package manger 本质上是通过源码包,给我们编译出来的一种安装包。
rpm功能十分强大可以安装,查询,卸载,更新,验证等等操作,与第一个选项是有关系的
在这里插入图片描述
强调:安装包指的是带有后缀的完整的名字 包名–vsftpd
安装一个软件包:rpm -ivh 安装包(安装包是一个整体,包名仅仅是开头的名字)
在这里插入图片描述
rmp -ivh 安装包 --force :强制安装,用于文件丢失的命令,比如vsftp某个文件被误删了,但有些目录做了修改又不想卸了重装,所以可以用–force强制安装,丢失的补齐,以前的文件不变。
rpm -qa : 查看所有安装的包
rpm -qa |包名:查看指定安装包,如果有内容则安装了,没有内容则没有安装,如果不使用管道符筛选,包名少输入一位就会导致没有结果。
在这里插入图片描述
rpm -e 包名:卸载
rpm -ql 包名:查看安装目录(安装的时候是看不到安装目录的,rpm是源码包编译出来的,源码包里包含了很多文件,吧源码包编译成rpm的时候,会去指定,安装好这个包之后,这些文件到地方在什么位置。 说白了安装rpm软件包,实际上就是解压,然后拷贝到相关目录,然后执行脚本)
在这里插入图片描述
rpm -qc 包名:查看配置文件
rpm -qi 包名:查看安装包的详细信息
在这里插入图片描述
rpm -qf 路径文件名 :查看该文件名是通过什么包安装的
在这里插入图片描述
rpm -qf `which 命令’ :查看命令是通过什么包安装的
在这里插入图片描述
rpm -k 包名:验证数字签名
更新
所谓的更新就是先卸载旧版本的软件包,再安装新版本的软件包。对于普通文件来说,是不能多版本共存的,假设一件安装1.0版本,再安装2.0版本的话,就会显示冲突。
rpm -Uvh 安装包:更新,会自动卸载之前的旧版本然后安装新版本
但是内核是不一样的安装包,内核是可以多版本共存的,也就是假设存在了1.0版本的内核,再安装2.0版本的内核也是可以的。
在这里插入图片描述
所以如果升级内核 的话,使用 rpm -lvh 安装包 ,而不要使用rpm -Uvh 安装包 , 因为不能确定新版本的内核一定是管用的,如果使用-Uvh的话,则把旧版本的内核删除了,这时如果新版本内核又不能用就麻烦了。 如果使用-lvh安装的话,多版本内核共存,先使用新版本启动。 (后面新版本使用正常了在去卸载旧版本)

发布了67 篇原创文章 · 获赞 32 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/cuichongxin/article/details/103212378