操作手册

操作手册
John Doe操作手册
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 |
配置前后对比
配置http,再以下目录里进行配置
1 | cd /usr/local/nginx/conf |
再该目录里面,有个nginx.conf文件,修改一些内容可以完成反向代理
常用命令
| 启动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 |
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 | server-id=1 |
重启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 | server_id=2 |
重启并登录数据库
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 | server-id=1 |
重启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 | server-id=2 |
重启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
验证一下~~~
工具使用
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 查看 |
使用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 | vastbase soft nproc unlimited |
安装依赖
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连接使用的是这个
进行数据库初始化,会给命令,然后再启动数据库
如果出现这种情况
那就是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; | 创建数据库和指定用户登录 |












