目录
SSH服务器管理
在Linux系统上,我们一般会在服务器上安装openssh套件,包含服务端(sshd)和客户端(ssh 、scp、sftp)
ssh的格式用法
scp的格式用法
启动服务
systemctl restart sshd
端口:22
配置文件:/etc/ssh/sshd_config
日志文件:/var/log/secure
远程登陆:
[root@robin ~]# ssh root@192.168.10.101 以root远程登录主机
[root@robin ~]# ssh 192.168.10.101 以当前用户远程登陆主机
远程拷贝:
登录后拷贝
[root@zorro ~]# scp /root/initial-setup-ks.cfg 192.168.10.100:/tmp/ 将文件拷贝到主机/tmp下
不登录拷贝
[root@robin ~]# scp 192.168.10.101:/etc/passwd /tmp/ 将主机下passwd文件拷贝到当前主机tmp下
将192.168.10.100的文件拷贝到192.168.10.101主机
[root@robin ~]# scp 192.168.10.100:/etc/hosts 192.168.10.101:/tmp/
更改端口2222后,登录
[root@zorro ~]# ssh 192.168.10.100 -p 2222
指定端口2222后复制文件
[root@zorro ~]# scp -P 2222 192.168.10.100:/etc/hostname /tmp/
配置文件:/etc/ssh/sshd_config
[root@robin ~]# vim /etc/ssh/sshd_config 进入配置文件
Port 2222 设置端口
UseDNS no 取消主机名解析
PermitRootLogin no 拒接root账号远程登录
rsync
rsync是做同步的时候很高级的命令
在做同步的时候会去做比对,当目标主机上和本机的文件没有变化的时候,它就不会复制。
它的用法类似于cp命令
reync -azvhp /usr/local/sxy.conf root@192.168.20.144:/usr/local/
sftp的格式用法
sftp的使用方法
sftp root @192.168.20.20
上传命令 put
例如 put /local/path/to/file.txt /remove/path/to/file.txt ###将本地文件上传到远程服务器的指定位置
下载命令 get 格式 get(服务器上文件存放的位置)(本地要存储的位置)
get /remote/path/to/file.txt /local/path/to/file.txt
目录操作
cd用于更改远程路径,mkdir用于创建远程目录 人,rmdir用于删除远程的文件夹,lcd用于更改本地的路径,lmkdir用于创建本地目录
文件的管理
chgrp用于更改文件的组chmod用于文件的权限rename用于更改远程文件文件名字
rm用于删除远程文件
信息查看
df可显示当前路径或系统文件路径的统计信息,lls显示本地文件夹的列表,ls显示远程目录列表,lpwd显示本地的工作路径,pwd显示远程工作目录的路径,version用于查看sftp的版本信息
退出sftp使用 exit和quit都可以退出,,
日志
日志的位置是/var/log/
系统的日志一般是在/var/log/message里
启动日志在/boot.log
secure是用户的登录登出,包括sudo
查看系统日志的命令 journalctl
在有了systemd服务之后,系统的日志将有systemd-journald服务来进行统一化管理rsyslog服务也是一个日志管理的服务。
Linux系统中的日志依旧会记录在/var/log目录下
由于现在日志的统一有systemd-journald管理,所以我们的命令可以使用journalctl命令
在systemd-journald服务中,默认记录日志存储在/run/log/journal目录内,这个目录内的内容重启后会失效,我们推挤更新服务的配置,将日志文件可以长期的保存到我们的磁盘中,方便后期检查历史的日志记录。
此服务的配置文件为 /etc/systemd/journald.conf
[Journal]
#Storage=auto
默认Storage参数决定系统日志的存储方式,默认值为auto,即如果存在 /var/log/journal目录,则会自动将日志持久化存储,否则重启之后丢失日志
Linux网络
network 天天用,自己想把
root@k8s1 ~ ]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
tar打包和压缩
压缩
压缩gzip
[root@sxy~]# gzip data #压缩文件
[root@sxy ~]# gunzip data.gz #解压文件
压缩bzip2---特殊文件
[root@sxy ~]# bzip2 data
[root@sxy ~]# bunzip2 data.bz2
打包
打包、解包、打包并压缩的用法
[root@sxy ~]# tar -cvf /tmp/boot.tar /boot 前面是要打包后的 后面是需要打包的
-c create 创建
-v view 显示过程
-f file
[root@sxy ~]# tar -tvf /tmp/boot.tar
-t 查看
[root@sxy ~]# tar -rvf /tmp/boot.tar /root/data
-r 追加打包
[root@sxy ~]# tar -xvf /tmp/boot.tar -C /tmp/ -C 是指定解压完的地方
-x 解包
[root@sxy ~]# tar -zcvf /tmp/boot.tar.gz /boot
-z 调用gzip
[root@sxy ~]# tar -ztvf /tmp/boot.tar.gz
[root@sxy ~]# tar -zxvf /tmp/boot.tar.gz
[root@sxy ~]# tar -jcvf /tmp/boot.tar.bz2 /boot/
-j 调用bzip2
[root@sxy ~]# tar -jtvf /tmp/boot.tar.bz2
[root@sxy ~]# tar -jxvf /tmp/boot.tar.bz2 -C /tmp/
RPM
这里就不说太多了,centos的笔记里有rpm的具体使用方法
YUM
从rhel8版本开始,红帽放弃了原先的YUM工具(原因在于此项目无人维护,且以来分析速度太慢)开发了新的dnf工具来接替yum工具
dnf保留了yum所有的操作,配置文件等内容,基本上等效于原本的yum命令中的所有操作,现在版本中相当于yum提供了软连接模式用于保证对以前一些脚本的兼容性
我们常用的一些操作有 tldr dnf
dnf install -y 软件包 非交互式安装软件包
dnf remove 软件包 删除软件
计划任务和延迟任务
在Linux系统中我们可以使用 at 命令,指定我们某个命令或者是脚本在某个特定的时候去执行
at的用法 延迟任务
atq 列出待执行的任务
root@k8s1 ~ ]# at 14:50
####输入 at 后面+时间就会进入到at模式
at> date > /tmp/at_out#####按住 ctrl+d 就会进入下面,结束输入的命令
at> <EOT>
job 1 at Sat May 24 14:50:00 2025
计划任务 是一个周期性的执行命令的方式
计划任务的配置我们可以通过crontab的命令
crond 服务
(长期计划任务)
查看 crond 服务状态
systemctl status crond
编辑 crontab
crontab -e
crontab格式
* * * * * 命令
分(00-59)
时(00-23)
日(01-31)
月(01-12)
周(0-7,0和7都是周日)
实列
每分钟执行一次:* * * * * date >> /tmp/date.txt
每隔5分钟执行一次:*/5 * * * * date >> /tmp/date.txt
每小时的第10分钟执行:10 * * * * date >> /tmp/date.txt
每天的10点10分钟:10 10 * * * date >> /tmp/date.txt
每月10号10点10分执行:10 10 10 * * date >> /tmp/date.txt
每年10月10号10点10分执行:10 10 10 10 * date >> /tmp/date.txt
每年10月10号10点10分或者每周日10点10分执行:10 10 10 10 7 date >> /tmp/date.txt
每天的10点10分,15点10分,20点10分执行:10 10,15,20 * * * date >> /tmp/date.txt
每天的10点到20点的10分钟执行:10 10-20 * * * date >> /tmp/date.txt
磁盘的分区
fdisk
逻辑卷
raid
制作USB系统引导盘
在Linux系统当中,最简单的方式就是利用dd命令直接将系统镜像烧录到我们的存储设备当中
dd if=xxxxx.iso of=/dev/sdN status=progress
/dev/sdN 是u盘 status=progress 是显示进度
部分Linux发行版本的镜像是不支持dd命令的或者需要额外得到写入引导数据之后才能写入镜像数据从而启动系统的安装
也可以用软件安装 ,一个是 rufus 还有个是
除此之外,我们还可以用第三方软件来辅助我们来制作u启动盘
rufus和ventoy
root密码遗忘之后的方法
在所有的发型版本当中,我们都可以借助安装中的镜像Linux环境去直接更新我们硬盘上的Linux系统的root用户密码
在从光盘启动的时候,我们这样进入到救援系统的
当我们系统重启的时候按一下ESC键或者有的是F12键
选择光驱进入的选项
进入到救援系统的模式下面
我们一般情况下去选择 2
将我们磁盘上的系统以只读的模式挂载到我们的光盘中的Linux系统当中
当我们需要对里面的内容进行修改的时候,再通过命令切换为可读可写的挂载
只读模式不会对硬件进行太大的影响
这里我们输入完 2 之后就得到一个可用的终端,我们的硬盘上的根目录就会挂载到“/mnt/sysroot”目录下
mount -o remount,rw /mnt/sysroot
### 重新挂载我们的硬盘上的目录,挂载到目录要求可读可写
chroot /mnt/sysroot
### 切换我们根目录的定义,此时我们来到就是我们磁盘中系统的root用户
passwd root
###这个时候就可以修改root用户的密码了,,
touch /.autorelabel
#### 只要我们以这种标准登录的状态下进行了操作,请创建此文件用于通知selinux
### 防止selinux认为系统遭受入侵而禁止某些文件的访问
exit
当我们操作完成之后就可以退出
实际上我们并不要借助系统光盘也能完成上述的类似的操作,我们可以在系统的启动过程中可以打断系统的启动,通过内置的一个迷你的环境来修改和访问我们磁盘上的系统
在系统的启动过程当中 我们 按住 e 进入内核启动参数编辑界面
下面是进去后的界面 ,,我们要在Linux所在的行 末尾输入 rd.break (7/8版本当中可用)
然后我们使用 ctrl+x 键按照我们新的启动参数来启动系统
此环境类似我们前面通过光盘进去的环境,不过我们此时的根目录备挂载到 /sysroot目录下
此环境是一个精简的Linux环境,部分的高级功能是不支持的,仅为临时的系统修复或者是排除故障 下面是以下的步骤
重置root密码
重置root密码(必须重启)
1.按e编辑启动项
2.找到vmlinuz删除到ro 输入rd.break
3.按快捷键 ctrl+x, 进入修复模式
4.通过chroot /sysroot 切换到原硬盘系统
5.重新挂载/目录
6.创建selinux的/.autorelabel文件
7.重置密码
8.两遍exit保存,重新启动系统,以新密码进入
开机启动 过程
有道云里 robin讲过,,用到再说
selinux
SELinux系统比起通常的Linux系统来,安全性能要高的多,它通过对于用户,进程权限的最小化,即使受到攻击,进程或者用户权限被夺去,也不会对整个系统造成重大影响。在标准Linux中,主体的访问控制属性是与进程通过在内核中的进程结构关联的真实有效的用户和组ID,这些属性通过内核利用大量工具进行保护,包括登陆进程和setuid程序,对于文件,文件的inode包括一套访问模式位、文件用户和组ID。以前的访问控制基于读/写/执行这三个控制位,文件所有者、文件所有者所属组、其他人各一套。在SELinux中,访问控制属性总是安全上下文三人组形式,所有文件和主体都有一个关联的安全上下文,标准Linux使用进程用户/组ID,文件的访问模式,文件用户/组ID要么可以访问要么被拒绝,SELinux使用进程和客体的安全上下文,需要特别指出的是,因为SELinux的主要访问控制特性是类型强制,安全上下文中的类型标识符决定了访问权。若要访问文件,必须同时具有普通访问权限和SELinux访问权限。因此即使以超级用户身份root运行进程,根据进程以及文件或资源的SELinux安全性上下文可能拒绝访问文件或资源。