来来回回的安装服务器,是时间写个pipline了
基本情况:
[root@localhost ~]# nvidia-smi -l 1
Fri Dec 2 09:42:44 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.63.01 Driver Version: 470.63.01 CUDA Version: 11.4 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA GeForce ... Off | 00000000:0B:00.0 Off | N/A |
| 33% 35C P0 1W / 350W | 0MiB / 12053MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
[root@localhost ~]# date
2022年 12月 02日 星期五 09:46:22 CST
[root@localhost ~]# which yum
/usr/bin/yum
[root@localhost ~]# which ping
/usr/bin/ping
[root@localhost ~]# which wget
/usr/bin/which: no wget in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
[root@localhost ~]# which curl
[root@localhost ~]# cat /etc/yum.repos.d/CentOS-Base.repo
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[root@localhost ~]# which telnet
/usr/bin/which: no telnet in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
[root@localhost ~]# which tree
/usr/bin/which: no tree in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
[root@localhost ~]# netstat
-bash: netstat: 未找到命令
凡事讲究个策略,从切换yum源开始
#ping一下,验证是否是通的
ping mirrors.aliyun.com
PING mirrors.aliyun.com.w.alikunlun.com (59.47.74.238) 56(84) bytes of data.
# 配置yum源
# 删除旧的yum源
rm -rf /etc/yum.repos.d/*
# 不放心也可以bak
mv CentOS-Base.repo CentOS-Base.repo.bak
# 下载阿里云Centos-7.repo文件
# wget命令下载: wget [options] [url]
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# curl命令下载: curl [options] [url] 我的系统目前只有curl命令,选择这种
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 清除缓存以及生成阿里云镜像缓存
yum clean all
yum makecache
也可以脚本一键搞定
创建shell脚本文件
vim /opt/aliyun_yum.sh
插入命令
# 删除原yum源
rm -rf /etc/yum.repos.d/*
# 下载阿里云Centos-7.repo文件
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 清除yum缓存
yum clean all
# 缓存阿里云镜像
yum makecache
# 赋予脚本可执行的权限
chmod +x /opt/aliyun_yum.sh
# 执行脚本
sh /opt/aliyun_yum.s
配置好了yum源,把需要的插件安装上吧,并创建software目录,用来安装自定义的插件
yum install lrzsz wget net-tools telnet tree htop git -y
# 在家目录下创建
make ~/software
mincoda的版本:https://docs.conda.io/en/latest/miniconda.html
目前conda的默认版本 base环境是python3.9, 若你习惯python3.8 可以在这里自定义安装:
我就用的最新的,右键另存为:
https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
wget -c https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
# 执行安装
sh Miniconda3-latest-Linux-x86_64.sh
# 一路 enter 和 yes
重新打开一个shell,bash环境已经来了,装的是3.9.12
接下来,切换conda源和pip源
vim ~/.condarc 放入这些,
若没有vim命令,yum install vim -y
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
ssl_verify: true
show_channel_urls: true
切换pip源,一键搞定
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
安装pytorch
官网在这里 https://pytorch.org/,旧版本在这里:
因为我的显卡驱动是这个:NVIDIA-SMI 470.63.01 Driver Version: 470.63.01 CUDA Version: 11.4
他的意思是最高支持到cuda version 11.4,所以我理解最高适配11.4的,进入Previous versions of PyTorch
麻蛋, NOTE: PyTorch LTS has been deprecated. For more information, see this blog.太恶心了,说好的1.82是LTS呢。。。。
选一个比较新的
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch
也可以选指定版本比如pytorch 1.8 cuda 11.1的
安装完成后验证:
(base) [root@localhost ~]# python
Python 3.9.12 (main, Apr 5 2022, 06:56:58)
[GCC 7.5.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.__version__
'1.12.1'
>>> torch.cuda.is_available()
True
>>> a = torch.tensor(1.0) # 正常则静默
>>> a.cuda()
tensor(1., device='cuda:0')
以上命令也可以在test.py 中完成
import torch
# 若正常则静默
a = torch.tensor(1.)
# 若正常则静默
print(a.cuda())
# 若正常则返回 tensor(1., device='cuda:0')
from torch.backends import cudnn
# 若正常则静默
print(cudnn.is_available())
# 若正常则返回 True
print(cudnn.is_acceptable(a.cuda()))
# 若正常则返回 True
另见文章 <
# 删除旧的
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 需要安装包
sudo yum install -y yum-utils
# 设置阿里镜像仓库
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装docker
sudo yum install docker-ce docker-ce-cli containerd.io -y
# 启动docker
sudo systemctl start docker
# 查看版本
docker info
# centos设置docker开机自启
systemctl enable docker.service
安装完成后查看是否服务起来了:
(base) [root@localhost ~]# ps -ef | grep docker
root 28521 1 0 10:46 ? 00:00:00 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
root 31106 16630 0 10:48 pts/1 00:00:00 grep --color=auto docker
1.安装git
yum install git -y
2.生成gen key
ssh-keygen -t rsa -C "你的邮箱地址"
## 一直回车
cat ~/.ssh/id_rsa.pub
## 把结果放到git settings/ssh keys上
3.git clone 你的仓库代码
mkdir ~/workplace && cd ~/workplace && git clone git@xxxx:algorithmgroup/zjk_city_manager/road_water_yolov5-7.0.git
查看是否已经安装了vsftpd,新机器肯定没安装啊
# 如果没有返回任何结果,表示没有安装;如果返回文件包名,这表示已经安装了该服务;
[root@centos7 ~]# rpm -qa|grep vsftpd
vsftpd-3.0.2-29.el7_9.x86_64 # 代表已安装
[root@centos7 ~]# vsftpd -version
vsftpd: version 3.0.2 # 代表已安装
[root@centos7 ~]# rpm -e vsftpd # 卸载vsftpd
# 再次检查
[root@centos7 ~]# rpm -qa|grep vsftpd
[root@centos7 ~]# vsftpd -version
bash: vsftpd: 未找到命令...
开始安装vsftpd
# 安装ftp服务器
yum install -y vsftpd
# 安装ftp客户端,客户端也可以不安装
yum install -y ftp lftp
# 设置为开机自动启动服务
systemctl enable vsftpd.service
# ftp服务器的服务名是vsftpd,相关的操作如下:
systenctl start vsftpd.service
systemctl stop vsftpd.service # 停止服务
systemctl restart vsftpd.service # 重启服务
systemctl status vsftpd.service # 查看服务状态
systemctl enable vsftpd.service # 设置开机自启动vsftpd服务
systemctl disable vsftpd.service # 禁用开机自启动vsftpd服务
# 也可以这样启动&关闭:
systemctl start vsftpd
systemctl stop vsftpd
# 新建用户和FTP目录
ftpuser是你为该ftp服务创建的用户名,/data/ftp/ftpuser为ftp服务器访问路径
# 新建ftp目录并授权,ftp文件上传就落入了这个目录中
# 创建文件目录
mkdir -p /data/ftp/ftpuser
# 为该目录配置权限
chmod -R 755 /data/ftp/ftpuser
如果我们直接使用useradd -d ftpuser,则新建的用户是可以登录系统的,这样会给FTP服务器带来安全隐患
因此我们为了不让FTP用户登录系统,就必须为FTP用户统一创建一个不能登录系统的shell,这一行的命令只运行一次即可,后面新建用户就不需要执行了
echo /usr/bin/nologin>>/etc/shells
新建ftp组及用户
# 新建用户组ftp
groupadd ftp
# 指定用户主目录:/data/ftp/ftpuser -M
# 指定用户的shell: -s /usr/bin/nologin
# 新建用户ftpuser,并且设置不支持ssh系统登录,只能登录ftp服务器
# -g 用户组; -d 指定家目录; -s 不能登陆系统; -M 不创建家目录
useradd -g ftp -d /data/ftp/ftpuser -M -s /usr/bin/nologin ftpuser
# 如果要恢复ftpuser用户的ssh登录(可登入CentOS7系统),执行下面的语句即可
usermod -s /bin/bash ftpuser
设置密码 & 新建ftp用户可写目录
# echo "新密码" | passwd --stdin 用户名
echo "ftppassword" | passwd --stdin ftpuser
# 由于/data/ftp/ftpuser是root用户创建的,其它用户都没有写的权限
# 所以要在该目录下新建一个目录用于文件的上传下载
mkdir -p /data/ftp/ftpuser/upload
chown ftpuser:ftp /data/ftp/ftpuser/upload
chmod 755 /data/ftp/ftpuser/upload
总结一下step5到目前的前置操作:
1.安装ftp服务端,客户端,并启动ftp服务端
2.创建ftp用户,此用户不能登陆服务器,只能用于ftp上传(局域网内也可以不做nologin限制),用户名:ftpuser 密码:ftppassword 我用的是123456, ,创建上传目录:/data/ftp/ftpuser/upload
-------------------------------------------------------------------------------------------------------------------------
配置ftp服务器,终于可以配置ftp服务器了
编辑配置文件,盲猜需要配置项目有:
1.谁能上传(哪个用户)?
2.ftp允许访问的目录是那些(别被ftp用户乱搞了)?
3.什么协议上传
4.上传文件后,给文件的权限是什么?
5.用户上传和下载的目录设置,端口配置等等
# 防止后期配置文件出错后无法还原
(base) [root@localhost workplace]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.backup
(base) [root@localhost workplace]# cd /etc/vsftpd/
(base) [root@localhost vsftpd]# ll
总用量 28
-rw-------. 1 root root 125 6月 10 2021 ftpusers
-rw-------. 1 root root 361 6月 10 2021 user_list
-rw-------. 1 root root 5116 6月 10 2021 vsftpd.conf
-rw-------. 1 root root 5116 12月 2 11:41 vsftpd.conf.backup
-rwxr--r--. 1 root root 338 6月 10 2021 vsftpd_conf_migrate.sh
编辑配置 vim /etc/vsftpd/vsftpd.conf,也可以自己跟着改,没多少行。
打开vsftpd.conf文件,全选删除(Esc+gg+dG)文件内容,然后用下面的配置进行替换文件
# 是否开启匿名用户,匿名都不安全,默认NO
anonymous_enable=NO
# 允许本机账号登录FTP
# 这个设定值必须要为YES时,在/etc/passwd内的账号才能以实体用户的方式登入我们的vsftpd主机
local_enable=YES
# 允许账号都有写操作
write_enable=YES
# 本地用户创建文件或目录的掩码
# 意思是指:文件目录权限:777-022=755,文件权限:666-022=644
local_umask=022
# 进入某个目录的时候,是否在客户端提示一下
dirmessage_enable=YES
# 当设定为YES时,使用者上传与下载日志都会被记录起来
xferlog_enable=YES
# 日志成为std格式
xferlog_std_format=YES
# 上传与下载日志存放路径
xferlog_file=/var/log/xferlog
# 开放port模式的20端口的连接
connect_from_port_20=YES
# 关于系统安全的设定值:
# ascii_download_enable=YES(NO)
# 如果设定为YES,那么client就可以使用ASCII格式下载档案
# 一般来说,由于启动了这个设定项目可能会导致DoS的攻击,因此预设是NO
# ascii_upload_enable=YES(NO)
# 与上一个设定类似的,只是这个设定针对上传而言,预设是NO
ascii_upload_enable=NO
ascii_download_enable=NO
# 通过搭配能实现以下几种效果:
# ①当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd/chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录
# ②当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd/chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录
# ③当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录
# ④当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录
# 限制用户只能在自己的目录活动
chroot_local_user=YES
chroot_list_enable=NO
chroot_list_file=/etc/vsftpd/chroot_list
# 可以更改ftp的端口号,使用默认值21
# listen_port=60021
# 监听ipv4端口,开了这个就说明vsftpd可以独立运行,不用依赖其他服务
listen=NO
# 监听ipv6端口
listen_ipv6=YES
# 打开主动模式
port_enable=YES
# 启动被动式联机(passivemode)
pasv_enable=YES
# 被动模式端口范围:注意:linux客户端默认使用被动模式,windows 客户端默认使用主动模式。在ftp客户端中执行"passive"来切换数据通道的模式。也可以使用"ftp -A ip"直接使用主动模式。主动模式、被动模式是有客户端来指定的
# 上面两个是与passive mode使用的port number有关,如果您想要使用64000到65000这1000个port来进行被动式资料的连接,可以这样设定
# 这两项定义了可以同时执行下载链接的数量
# 被动模式起始端口,0为随机分配
pasv_min_port=64000
# 被动模式结束端口,0为随机分配
pasv_max_port=65000
# 文件末尾添加
# 这个是pam模块的名称,我们放置在/etc/pam.d/vsftpd,认证用
pam_service_name=vsftpd
# 使用允许登录的名单,在/etc/vsftpd/user_list文件中添加新建的用户ftpuser
userlist_enable=YES
# 限制允许登录的名单,前提是userlist_enable=YES,其实这里有点怪,禁止访问名单在/etc/vsftpd/ftpusers
userlist_deny=NO
# 允许限制在自己的目录活动的用户拥有写权限
# 不添加下面这个会报错:500 OOPS: vsftpd: refusing to run with writable root inside chroot()
allow_writeable_chroot=YES
# 当然我们都习惯支持TCP Wrappers的啦
# Tcp wrappers : Transmission Control Protocol (TCP) Wrappers 为由 inetd 生成的服务提供了增强的安全性
tcp_wrappers=YES
# FTP访问目录
local_root=/data/ftp/ftpuser
vim /etc/vsftpd/user_list
将新建用户ftpuser添加到/etc/vsftpd/user_list文件末尾
注意:
这个是允许登录ftp的名单,一行一个用户,不能把多个写到一行
修改用户切换目录的权限
用户切换目录的规则设定在/etc/vsftpd/vsftpd.conf文件中,如果有用户有权限切换目录,则在/etc/vsftpd/chroot_list文件中添加即可(一行一个用户)
# 在chroot_list中添加新建用户ftpuser
# 第一步:打开文件
vim /etc/vsftpd/chroot_list
# 第二步:添加ftpuser用户
ftpuser
# 第三步:保存文件并退出
一个错误:
重启ftp服务出现报错:
原因在这里:
解决指引:
https://monica.blog.csdn.net/article/details/53215724
是因为windows的编辑莫名其妙加了特殊字符,这样解决:
启动成功,验证ftp上传
到这里正常情况已经可以了,但我的不行,现象是:
server端服务已经开启,
(base) [root@localhost vsftpd]# getenforce
Enforcing
(base) [root@localhost vsftpd]# vim vsftpd.conf
(base) [root@localhost vsftpd]# netstat -ntpl | grep 21
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 25941/vsftpd
但客户端telnet 无法通信
C:\Users\jianming_ge>telnet 172.18.42.200 21
正在连接172.18.42.200...无法打开到主机的连接。 在端口 21: 连接失败
检查一下防火墙:
systemctl status firewalld
尼玛防火墙开着呢,关闭后,telnet通了
systemctl stop firewalld
但是用winscp验证报错:用WINSCP,链接时,报错: 复制文件到远端时错误.
ref:https://blog.csdn.net/chen3888015/article/details/79739543
应该是某个目录权限没配对,你若也遇到这个问题,
可以 方法1:执行以下几个命令:
setsebool -P tftp_home_dir on
setsebool allow_ftpd_full_access 1
setsebool allow_ftpd_use_cifs 1
setsebool allow_ftpd_use_nfs 1
setsebool httpd_enable_ftp_server 1
set httpd_can_connect_ftp 1
方法2:
把这个vsftp.conf 替换即可(我若直接把这个文件在前面给出,就不会遇到这个问题了,嘿嘿)
# 是否开启匿名用户,匿名都不安全,默认NO
anonymous_enable=NO
# 允许本机账号登录FTP
# 这个设定值必须要为YES时,在/etc/passwd内的账号才能以实体用户的方式登入我们的vsftpd主机
local_enable=YES
# 允许账号都有写操作
write_enable=YES
# 本地用户创建文件或目录的掩码
# 意思是指:文件目录权限:777-022=755,文件权限:666-022=644
local_umask=022
# 进入某个目录的时候,是否在客户端提示一下
dirmessage_enable=YES
# 当设定为YES时,使用者上传与下载日志都会被记录起来
xferlog_enable=YES
# 日志成为std格式
xferlog_std_format=YES
# 上传与下载日志存放路径
xferlog_file=/var/log/xferlog
# 开放port模式的20端口的连接
connect_from_port_20=YES
# 关于系统安全的设定值:
# ascii_download_enable=YES(NO)
# 如果设定为YES,那么client就可以使用ASCII格式下载档案
# 一般来说,由于启动了这个设定项目可能会导致DoS的攻击,因此预设是NO
# ascii_upload_enable=YES(NO)
# 与上一个设定类似的,只是这个设定针对上传而言,预设是NO
ascii_upload_enable=NO
ascii_download_enable=NO
# 通过搭配能实现以下几种效果:
# ①当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd/chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录
# ②当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd/chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录
# ③当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录
# ④当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录
# 限制用户只能在自己的目录活动
chroot_local_user=YES
chroot_list_enable=NO
chroot_list_file=/etc/vsftpd/chroot_list
# 可以更改ftp的端口号,使用默认值21
# listen_port=60021
# 监听ipv4端口,开了这个就说明vsftpd可以独立运行,不用依赖其他服务
listen=NO
# 监听ipv6端口
listen_ipv6=YES
# 打开主动模式
port_enable=YES
# 启动被动式联机(passivemode)
pasv_enable=YES
# 被动模式端口范围:注意:linux客户端默认使用被动模式,windows 客户端默认使用主动模式。在ftp客户端中执行"passive"来切换数据通道的模式。也可以使用"ftp -A ip"直接使用主动模式。主动模式、被动模式是有客户端来指定的
# 上面两个是与passive mode使用的port number有关,如果您想要使用64000到65000这1000个port来进行被动式资料的连接,可以这样设定
# 这两项定义了可以同时执行下载链接的数量
# 被动模式起始端口,0为随机分配
pasv_min_port=64000
# 被动模式结束端口,0为随机分配
pasv_max_port=65000
# 文件末尾添加
# 这个是pam模块的名称,我们放置在/etc/pam.d/vsftpd,认证用
pam_service_name=vsftpd
# 使用允许登录的名单,在/etc/vsftpd/user_list文件中添加新建的用户ftpuser
userlist_enable=YES
# 限制允许登录的名单,前提是userlist_enable=YES,其实这里有点怪,禁止访问名单在/etc/vsftpd/ftpusers
userlist_deny=NO
# 允许限制在自己的目录活动的用户拥有写权限
# 不添加下面这个会报错:500 OOPS: vsftpd: refusing to run with writable root inside chroot()
allow_writeable_chroot=YES
# 当然我们都习惯支持TCP Wrappers的啦
# Tcp wrappers : Transmission Control Protocol (TCP) Wrappers 为由 inetd 生成的服务提供了增强的安全性
tcp_wrappers=YES
# FTP访问目录
local_root=/data/ftp/ftpuser
安全第一,设置防火墙永久关闭
(1)设置开机启用防火墙:systemctl enable firewalld.service
(2)设置开机禁用防火墙:systemctl disable firewalld.service
(3)启动防火墙:systemctl start firewalld
(4)关闭防火墙:systemctl stop firewalld
(5)检查防火墙状态:systemctl status firewalld
selinux 也关下,以下是临时关闭,开机就又有了
(base) [root@localhost vsftpd]# getenforce
Enforcing
(base) [root@localhost vsftpd]# setenforce 0
(base) [root@localhost vsftpd]# getenforce
Permissive
永久关闭
永久关闭(修改配置文件,即可永久关闭)[root@localhost ~]# vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=enforcing 修改为"SELINUX=disabled"
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
然后重启系统即可,
ps:其实对防火墙和selinux的检查应该放在最前面。
ftp的上传日志在这里:/var/log/xferlog
(base) [root@localhost log]# tail -f xferlog
Fri Dec 2 13:44:18 2022 1 172.18.19.191 0 /\xE7\xAE\x97\xE6\xB3\x95\xE7\xBB\x84\xE5\xB7\xA5\xE4\xBD\x9C\xE6\x80\xBB\xE7\xBB\x93&\xE8\xA7\x84\xE5\x88\x92.xmind b _ i r ftpuser ftp 0 * i
Fri Dec 2 13:44:56 2022 1 172.18.19.191 0 /1.png b _ i r ftpuser ftp 0 * i
Fri Dec 2 13:45:47 2022 1 172.18.19.191 0 /2.png b _ i r ftpuser ftp 0 * i
Fri Dec 2 13:54:28 2022 1 ::ffff:172.18.19.191 0 /2.png b _ i r ftpuser ftp 0 * i
Fri Dec 2 13:55:00 2022 1 ::ffff:172.18.19.191 0 /2.png b _ i r ftpuser ftp 0 * i
Fri Dec 2 13:55:46 2022 1 ::ffff:172.18.19.191 0 /2.png b _ i r ftpuser ftp 0 * i
Fri Dec 2 13:58:00 2022 1 ::ffff:172.18.19.191 58277 /upload/2.png b _ i r ftpuser ftp 0 * c
Fri Dec 2 14:02:50 2022 1 ::ffff:172.18.19.191 460054 /upload/1.png b _ i r ftpuser ftp 0 * c
Fri Dec 2 14:18:24 2022 1 ::ffff:172.18.19.191 460054 /upload/1.png b _ o r ftpuser ftp 0 * c
关于日志的含义解析,我的其它文章好像提过, 最重要的是 最后一个 c 代表传输完成。重点提及,是在摄像头ftp到server端,图像识别模型要根据图片处理推理,就要订阅这个日志了,根据 c 来跳过传半截的。
非必须,拉一个玩玩
docker pull justin0114/cpu_torch1.8_python3.8_fastapi
docker pull kevinchina/deeplearning:cuda10.2torch1.8yolov0.1
docker pull docker pull selenium/standalone-chrome:98.0
试想图片推理服务器不止一个,其它server要能共享到图片和日志,就需要nfs服务了, 这一部分未完待续。。。。
这个是否要安装,要看需求了,因为pytorch自己已经带了cuda,但是它的cuda是阉割版的,只是满足了torch的计算使用,自己要做模型量化啥的还是需要安装cuda的。
要升级gcc版本,自带的gcc是4.x,然后挑选一个版本安装。
安装opencv后,会报错:
>>> import cv2
Traceback (most recent call last):
File "", line 1, in
File "/root/miniconda3/lib/python3.9/site-packages/cv2/__init__.py", line 181, in
bootstrap()
File "/root/miniconda3/lib/python3.9/site-packages/cv2/__init__.py", line 153, in bootstrap
native_module = importlib.import_module("cv2")
File "/root/miniconda3/lib/python3.9/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
ImportError: libX11.so.6: cannot open shared object file: No such file or directory
多少次了,很好季节。
ln -s target source
ln -s:表示创建一个软连接;
target:表示目标文件(夹),即源文件。
source:表示当前目录的软连接名,即被创建出来的软连接名称以及放置在何处。
ftp服务器开启以后,其日志在/var/log/xferlog
为保持和原服务器一致,需要软连接过来
把原始文件/data/log/xferlog 和软连接/var/log/xferlog 建立关系
mkdir /data/log
ln -s /var/log/xferlog /data/log/xferlog
开启ftp服务
# 开启
systemctl start vsftpd
# 关闭
systemctl stop vsftpd
1.安装htop
yum install htop -y
2.其它随时补充
先这样吧