操作手册

操作手册

FTP

Yum源安装

使用提供的麒麟yum源,进行安装
1
yum -y install vsftpd
vsftpd配置
本地用户配置

添加虚拟用户

1
useradd -d /home/ftpuser -s /sbin/nologin ftpuser

添加密码

1
passwd ftpuser

查看该用户的主目录和登录shell

1
cat /etc/passwd

记录下它的登录shell,应该是/sbin/nologin

接下来要去看看该用户在/eetc/shells里有没有它的配置

1
vi /etc/shells

如果没有,那就再后面添加上,不然这个用户登陆时会提示530 Login incorrect. Login failed.字样错误

1
cd /etc/vsftpd/

修改vsftpd的配置文件

1
vi vsftps.conf

如果要实现chroot_list文件里的用户只能访问自己的家目录

创建这个文件

1
touch chroot_list

需要修改或添加以下几行

chroot_local=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

注意:chroot_local如果改为yes,意思是,chroot_list文件里的用户可以访问别的文件,以外的用户都会被限制在各自的家目录下

下面两个配置意义不大

listen=NO # 设定是否支持IPV6。如要同时监听IPv4和IPv6端口
userlist_enable=no 设置是否阻止user_list文件中的用户登录FTP服务器,默认为YES

开启双日志功能

xferlog_enable=YES #启用上传下载日志 默认值为NO
xferlog_file=/var/log/xferlog #是否以标准xferlog 的格式书写传输日志文件 默认值为NO
xferlog_std_format=YES
dual_log_enable=YES #启用双份日志 xferlog记录上传下载,vsftpd.log记录所有访问 默认值为NO
vsftpd_log_file=/var/log/vsftpd.log

下载服务

download_enable=yes 本地用户下载是否支持
local_umask=022
allow_writeable_chroot=YES

如果提示500 OOPS: vsftpd: refusing to run with writable root inside chroot()字样错误

原因是:

从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。

要修复这个错误,你可以在vsftpd的配置文件中增加下项:

1
allow_writeable_chroot=YES

umask = 022时
新建的目录 权限是755
文件的权限是 644

匿名登陆配置
anonymous_enable=yes
anon_upload_enable=YES
anon_mkdir_write_enable=YES

接下来,就可以使用ftp进行连接使用了

1
yum -y install ftp

使用以下命令在linux里测试一下

1
ftp ip地址
常用命令
get
put
cd

如果出现ftp 使用get命令下出现550 Failed to open file

那就是文件权限不够,提升权限就好了

Docker

源码安装

解压

在虚拟机环境下,/root/123目录下有麒麟软件-样题资源包.zip,解压!

1
unzip 麒麟软件-样题资源包.zip

接下来会得到docker-20.10.9.tgz和docker.service文件

解压安装包

1
tar -zxvf docker-20.10.9.tgz

得到了docker的目录,修改docker二进制文件权限

1
chown root:root docker/* 

将解压下的二进制文件再复制到/usr/sbin,选项-p是保留文件原来属性

1
cp -p docker/* /usr/bin/ 

创建用户组

1
groupadd docker 

现在还没有把docker.service转移到正确的位置,输入docker version会出错

把该文件移动到/usr/lib/systemd/system下

接下来使用以下命令重启daemon

1
systemctl daemon-reload

重启docker服务

1
systemctl restart docker
常用命令
开启docker systemctl start docker
docker状态 systemctl status docker
停止docker systemctl stop docker
容器列表 docker ps -a
展示docker容器信息 docker inspect con_id
本地docker镜像 docker images
创建一个容器 docker run -it
将镜像包加载到本地镜像源 docker load -i
进入一个容器 docker exec -it

Yum源安装

安装docker依赖
1
yum install -y yum-utils device-mapper-persistent-data lvm2
配置yum源
1
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

执行以下命令进行安装

1
yum -y install docker-ce

启动docker

1
systemctl start docker

验证以下docker信息

1
docker info

Nginx

解压

在虚拟环境下,/root/123目录下有nginx的压缩包

1
tar -zxvf nginx-1.24.0.tar.gz

进入nginx目录,执行以下命令

1
./configure --prefix=/usr/local/nginx

执行

1
make && make install

由于前面指定了nginx的使用环境为/usr/local/nginx,所以在该目录下会生成/sbin文件夹,这个文件夹下会有nginx的可执行文件,使用以下命令

1
./nginx

可以开启nginx的服务,但是这个只能在这个目录下使用,所以需要进行全局配置

全局配置

在/etc/profile文件里面添加以下内容

1
vi /etc/profile
1
export PATH=$PATH:/usr/local/nginx/sbin

需要对该文件进行刷新

1
source /etc/profile

现在尝试在其他目录里使用以下命令

1
nginx -v

配置前后对比

image-20241206213503108

配置http,再以下目录里进行配置

1
cd /usr/local/nginx/conf

再该目录里面,有个nginx.conf文件,修改一些内容可以完成反向代理

image-20241207001942482

常用命令
启动nginx nginx
停止nginx nginx -s stop
配置文件重新加载 nginx -s reload
查看服务端口号 netstat -tlnp
查看nginx版本 nginx -v

MariaDB

源码安装

由于只有一台虚拟机,所以需要在docker里面建两个容器,通过在容器里部署服务,完成对mariadb的主从复制和主主复制

定位到/root/123

里面有一个压缩包名为kylin-10-sp3.tar.xz,使用以下命令解压

1
xz -dk kylin-10-sp3.tar.xz

得到kylin-10-sp3.tar包,然后把这个加载到本地images

1
docker load -i kylin-10-sp3.tar

接下来创建容器

1
docker run -itd --name=master --privileged=true 镜像id /sbin/init
1
dokcer run -itd --name=slave --privileged=true 镜像id /sbin/init

查看是否创建成功

1
docker ps -a

image-20241207173545927

1
dokcer exec -it master/slave /bin/bash

进入容器后,开始安装mariadb

1
yum -y install mariadb*

安装好后,开启并查看状态

1
systemctl start/status mariadb 
配置

mariadb数据库文件路径

主配置文件:/etc/my.cnf.d/mariadb-server.cnf

日志文件:/var/log/mariadb

主目录:/var/lib/mysql

主从复制

先登陆上master容器,开启mariadb服务

修改配置文件

1
vi /etc/my.cnf.d/mariadb-server.cnf

在[mysqld]下添加两行数据即可

1
2
server-id=1
log_bin=mariadb-bin

重启mariadb服务,使用以下命令查看关键内容

1
show master status;

记录好前两列的内容

创建远程连接的用户

1
create user backup@'从库ip' identified by '123!@#qwe';

授予该账户权限,并且限制只能在该ip登陆上来

1
grant replication slave,reload,super on *.* to backup@'从库ip';

刷新权限

1
flush privileges;

配置slave

登录另外一个容器,不做赘述

1
vi /etc/my.cnf.d/mariadb-server.cnf

在[mysqld]下添加

1
2
server_id=2
log_bin=slave-bin

重启并登录数据库

slave连接master

1
change master to master_host='主库ip',master_port=3306,master_user='backup',master_password='123!@#qwe',master_log_file='记录一',master_log_pos=记录二;

查看slave状态

1
show slave status\G

启动slave

1
start slave;

再次查看slave状态,如果出现以下两行内容,则说明主从复制完成

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

主主复制

创建两个容器,都部署好mariadb

1
yum -y install mariadb*
m1 172.17.0.4
m2 172.17.0.5

先进入m1容器,启动mariadb服务

修改配置文件

1
vi /etc/my.cnf.d/mariadb-server.conf

在[mysqld]下添加如下内容

1
2
3
server-id=1
log_bin=master-log
relay_log=slave-log

重启m1的mariadb服务

使用以下命令查看m2的master状态

1
show master status\G

记录下内容,再查看m2的ip

再登进m1的数据库

1
grant replication slave,replication client on *.* to 'repuser'@'172.17.0.%' identified by '123!@#qwe';
1
change master to master_host='m2地址',master_user='repluser',master_password='123!@#qwe',master_log_file='记录一',master_log_pos=记录二;
1
start slave;

使用命令查看slave状态

1
show slave status\G

在m2容器上的操作与一相同

修改配置文件

1
2
3
server-id=2
log_bin=master-log
relay_log=slave-log

重启m2的mariadb服务

记录m1的ip和master的状态

再登进m1的数据库

1
grant replication slave,replication client on *.* to 'repuser'@'172.17.0.%' identified by '123!@#qwe';
1
change master to master_host='m1地址',master_user='repluser',master_password='123!@#qwe',master_log_file='记录一',master_log_pos=记录二;
1
start slave;

使用命令查看slave状态

1
show slave status\G

如果出现以下两行内容,则说明主主复制完成

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

验证一下~~~

image-20241207230603092

image-20241207230627348

工具使用

1
lscpu		#显示cpu的物理信息,也可以显示运行状态
1
free -m		#检查内存可用情况

total:系统总内存大小

used:已经使用的内存大小

free:未使用的内存大小

buff/cache:两者使用内存之和

available:可使用的内存,由于buff和cache可以释放大部分,所以available约等于free+buff/cache

1
cat /proc/meminfo	#显示内存运行状态
安装tcl
1
rpm -qa | grep tcl

查看tcl的软件包,安装缺失的软件包

1
rpm -ivh rpm -ivh tcl-8.6.10-3.ky10.aarch64

我这里提示没有那个文件或目录,可能是我所在的文件目录不对

直接yum安装

1
yum -y install tcl
vmstat
1
vmstat a n	#a代表频率,n代表总次数

说明:

r:cpu上运行队列的排队

us:用户占用cpu的比例

sy:系统占用cpu的比例

id:空闲比例

sar
1
sar -u a n	#a代表频率,n代表次数

说明

%user:用户层占用cpu的比例

%nice:用户层调整过优先级的进程占用cpu的比例

%system:系统占用cpu的比例

%iowait:io等待占用cpu的比例

%steal:开启hypervisor模式下,虚拟cpu等待实际cpu的时间比例

%idle:cpu空闲比例

top
1
top

输出分为两部分,前一部分为总和,后半部分为每个进程的情况

说明:

load average:平均负载,三个数据分别代表1分钟,5分钟,15分钟的内存平均负载,如果前两个低,后一个高说明cpu的使用高峰已经过去了,反言之,cpu的使用比例在增高

Cpu(s):cpu的使用情况

%CPU:单进程cpu的使用率

PR:进程优先级

NI:开放给用户调整的优先级

数据库的共享内存
1
ipcs -m	查看

image-20241208123511377

使用pmap命令

1
ps -ef | grep pmon
1
pmap 查到的进程号

直接查看/dev/shm目录

1
ls -l /dev/shm | grep 名字
交换分区
1
swapon -s
vm.swappiness
1
vi  /etc/sysctl.conf		#修改vm.swappiness大小,数值在0~100,调整为零代表的是尽量不使用交换分区,但不阻止
vm.min_free_kbytes
1
vi /etc/sysctl.conf			#修改vm.min_free_kbytes大小,用于指定为内存保留的大小,保持操作系统稳定运行,生产环境下至少保留1G
数据库文件配置在postgresql.conf

逻辑内存管理模块

1
enable_memory_limit=true		#表示开启,false表示关闭

但是如果max_process_memory-shared_buffers-cstore_buffers-元数据小于2G,将会报错,那就把刚刚那个配置改为false

max_process_memory:控制数据库节点上可用内存的最大峰值,计算公式(物理内存大小-vm.min_free_kbytes)*0.7

shared_buffers:设置vastbase使用的共享内存大小

work_mem:设置内部排序和hash表在开始写入临时磁盘文件之前使用的内存大小

Vastbase

在本地文件夹里找到’Vastbase-G100-installer-2.2_Build15(17408)-kylin_v10sp3-aarch64_kunpeng-no_mot-20231220.tar.gz’压缩包

创建用户

准备工作
1
groupadd -g 1005 vastbase
1
useradd -g 1005 -u 1005 vastbase

ront用户资源修改限制(可选)

1
vi /etc/security/limits.conf

添加以下内容

1
2
3
4
5
6
7
8
9
10
vastbase soft nproc unlimited
vastbase hard nproc unlimited
vastbase soft stack unlimited
vastbase hard stack unlimited
vastbase soft core unlimited
vastbase hard core unlimited
vastbase soft memlock unlimited
vastbase hard memlock unlimited
vastbase soft nofile 10240000
vastbase hard nofile 10240000

安装依赖

1
yum install -y zlib-devel libaio libuuid readline-devel krb5-libs libicu libxslt tcl perl openldap pam openssl-devel libxml2 bzip2

修改Ipc参数

1
vi /etc/systemd/logind.conf			#修改RemoveIPC=no
1
vi /usr/lib/systemd/system/systemd-logind.service			#添加RemoveIPC=no

刷新配置项

1
systemctl daemon-reload
1
systemctl restart systemd-logind
安装

创建文件夹

1
mkdir -p /home/vastbase/soft

将文件复制到该目录下,假设文件在/目录下

1
cp /root/'Vastbase-G100-installer-2.2_Build15(17408)-kylin_v10sp3-aarch64_kunpeng-no_mot-20231220.tar.gz' /home/vastbase/soft

授权

1
chown -R vastbase:vastbase /home/vastbase/soft

使用vastbase用户解压文件

1
su - vastbase
1
cd soft/
1
tar -zxvf 'Vastbase-G100-installer-2.2_Build15(17408)-kylin_v10sp3-aarch64_kunpeng-no_mot-20231220.tar.gz'

解压完成后进入vastbase-installer文件夹,执行脚本文件

1
./vastbase_installer

中间大部分按enter,两个特殊选自定义安装,PG兼容模式,记录好数据库的三个默认管理员,后面VDS连接使用的是这个

进行数据库初始化,会给命令,然后再启动数据库

如果出现这种情况

image-20241208215105397

那就是postgresql.conf配置有问题

可以使用提供的postgresql.conf文件进行替换

1
cp postgresql.conf /home/vastbase/data/vastbase

进行覆盖

并修改权限及属组

1
chown -R vastbase:vastbase postgresql.conf
1
chmod -R 600 postgresql.conf
常用命令
vsql -r 登录数据库
vb_ctl start/stop/restart 启动/停止/重启数据库
\q 退出数据库
\l 查看数据库列表
\du 查看数据库用户
vsql -d xc_test -U xc 使用指定数据库,用户登录
create database xc_test owner xc; 创建数据库和指定用户登录