Linux基础命令6
2023-12-15 08:56:48
?
源码编译安装:软件功能可按需选择/定制
源码包进行包装就产生了RPM软件包
源码包--通过开发工具gcc与make---变成可执行程序---运行安装
安装开发工具gcc、make

tar解包,释放源代码到指定目录,把从真机上传递过来的tools包解压到/usr/local/目录下


解压inotify压缩包

查看该源码包的内容

./configure 配置,它能检测当前系统是否安装gcc,
指定安装位置与功能,生成Makefile文件(制作程序的大纲)。

查看帮助信息

必须相对路径运行该脚本,
prefix选项:指定安装位置

进行make编译,变成可以执行的程序(放在内存中,二进制文件)

make install 安装,将编译好的文件复制到安装路径

查看安装

如果要卸载,只要卸载该目录

rsync基本使用
rsync:Remote Sync 远程同步
复制是完全拷贝源到目标,同步则是增量拷贝,只传输
变化过的数据
rsync? [选项]? 源目录? 目标目录
-n:测试同步过程,不做实际修改
--delete:删除目标目录文件夹内多余的文档
-a:归档模式,相当于 -rlptgoD(保持大部分的属性不变)
-v:显示详细操作信息
-X:保持acl策略不变
创建两个目录

向mydir目录中添加内容

同步数据内容,需要加 ‘/’

查看目标目录,此时数据已经同步过去

原目录添加文件,再次同步会添加新增的文件

如果目标目录中比原目录多文件,使用---delete会删除多余的文件

查看目标目录

测试同步,表示将要同步的内容

远程同步 rsync + ssh
rsync? ? ?[..]? ? 本地目录? ? ? ? user@host:远程目录
rsync? ? ?[..]? ? ?user@host:远程目录? ? ? 本地目录

在pc2主机查看内容

如何实现,只要原目录数据变化,就数据远程同步:虚拟机A上生成公钥与私钥,把公钥传递给虚拟机B,此时rsync远程数据同步就不在需要密码
生成密钥

传递公钥

此时数据远程同步就不需要密码验证

使用上面下载的源码包程序inotify,监控原目录的变化
inotifywait? ? [选项]? ?目标文件夹
-m:持续监控(捕获一个事件后不退出)
-r:递归监控,包括子目录及文件
-q:减少屏幕输出信息
-e:指定监视的modify、move、create、delete等事件
监控文件的变化,要在开一个终端

在另一个终端中修改文件内容

此时监控就输出监视的结果

脚本:可以运行的一个文件,实现某种功能
例如:使用脚本输出? hello world


需要编写shell脚本,让两个命令相关联起来,只要inotifywait一检测到文件变化,就执行rsync命令让数据远程同步。

-rqq两个q表示不在屏幕上输出

执行脚本并放入到后台(&)

在虚拟机A是修改内容,

此时使用虚拟机B查看内容,已经同步数据

数据库:存放数据的仓库
在数据库系统中,有很多的数据库,每个数据库中有很多的表格
MariaDB数据库:
安装软件包 mariadb-server

启动服务

使用mysql命令登录默认以数据库管理员登录不需要密码

show datebases; : 显示数据库,以分号结尾

create database :创建数据库

查看创建的数据库

删除数据库drop?

退出数据库 exit

use + 数据库名:进入该数据库

show tables :查看表格

数据库系统没有返回命令,如果需要进入其他数据库直接use + 数据库;就能切换到该数据库。

表格的操作:增、删、改、查;表的类型叫做表字段,表的内容叫表记录。
数据的恢复,把表导入到数据库中(之前导出的表或者下载的表)

进入数据库,查看表格

查看该数据库的表格,select *(所有字段) from 表名

当在其他数据库中查看另一个数据库的表时,需要加上该数据库的名称

查看特定的命令,where、and、or

insert插入数据,update修改数据,delete删除数据
数据库系统管理员:对于数据库系统有最高权限,名称为root,能够登录数据系统的用户信息,由mysql中user表进行存储。
为数据库系统管理员设置密码:
mysqladmin [-u 用户名] [-p 旧密码] passwd '新密码'

此时登录数据库就需要密码了


修改密码


邮件服务器:为用户提供电子邮件存储空间(用户名@邮件域名),处理用户发出的邮件--传递给收件服务器,处理用户收到的邮件--投递到邮箱。
安装软件包postfix

发送邮件 mial -s '标题名' -r 发送用户名? 接收用户名

查看邮件

容器:
将软件打包成标准化单元,用于开发,交付和部署,容器技术已经成为应用程序封装和交付的核心
优点:相较于传统的虚拟化技术,容器更加简洁高效,容器使用的共享公共库和程序
缺点:容器的隔离性没有虚拟化强,共用Linux内核,缺乏安全性
podman是完整的一套容器管理系统,它提供的一组命令,让用户更加方便直接地使用容器技术,而不需要过多的关心底层内核技术,
需要关闭SELinux,设置禁用模式(重新开机才会生效)

卸载防火墙 yum remove firewalld
修改网卡命名规则(eth0):

编辑/etc/default/grub文件

链接到/boot/grub2/grub.cfg

重启系统reboot

此时SELinux和网卡名称都已经被修改


添加网卡

修改配置

激活并查看IP地址

配置虚拟网卡,让真机连接虚拟机

安装podman

查看安装

查看镜像podman images

导入镜像(镜像文件)

查看镜像:镜像的名称标识,每一个镜像都对应唯一的ID,镜像名称(姓氏)+标签(名字)=唯一标识。每一个镜像都有标签,如果没有写标签默认标签latest,在调用镜像的时候,如果没有指定标签也是默认latest

删除镜像 podman rmi 镜像ID(只需写ID不同的部分,系统会补全其余部分)

或者镜像标识rmi 镜像名称:镜像标签

运行容器:
podman run [选项]? 镜像名称:镜像标签(每次运行都产生一个容器,run=创建+启动+进入)???启动命名
-i:交互式方式
-t:终端
-d:后台运行
--name 容器名字

当按回车后就已经在该容器内了(相当于新的虚拟机)

查看版本信息

exit退出

查看所有的容器 podman ps -a

删除容器并查看 -f(强制删除)

进入容器,先启动容器

podman exec -it 容器名 解释器

将容器放入后台(创建的时候),此时如果使用容器就不在需要来回启动它了(会一直保持up状态)


进入容器

使用容器创建web服务,当虚拟机B访问本机web访问时,本机把容器的web服务转发给虚拟机B(podman监听80端口,如果有人访问80 端口,podman就会把访问请求发给容器,让容器响应请求)
端口绑定(端口转发)-p 宿主机端口:容器端口
创建容器

进入容器,创建首页

使用虚拟机B服务本机的Web服务

容器共享卷:容器不适合保存任何数据,podman可以映射宿主机文件或目录到容器中,目标对象不存在就自动创建,目标对象存在就直接覆盖掉,多个容器可以映射同一个目标对象来达到数据共享的目的,启动容器时,使用 -v 映射参数
创建共享目录

创建容器

此时容器httpd服务默认启动,在宿主机上创建网页

查看容器的内容,发现和宿主机一样

在虚拟机B上访问web服务

如何使用systemctl命令来开启或者停用容器(/usr/lib/systemd/system:systemd服务管理器目录)
生成配置文件(此时容器必须保持开启状态)

查看配置文件


重新加载服务配置文件,使其生效

查看容器

停用容器,并查看

使用systemctl启动容器
?
?
?
?
?
?
?
?
?
?
?
?
文章来源:https://blog.csdn.net/qq_62414482/article/details/134838221
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!