centos7操作大全

news/2024/10/17 21:18:32/

不要走朋友,下面有很多安装教程(注意查阅目录)

基础命令

#查看cnetos7版本
cat /etc/centos-release
#更改密码
passwd
#(root指的是用户名,也可以不指定,默认更改当前用户)
passwd root
#删除文件命令
rm -f example.txt
#删除文件夹命令
rm -rf example
#解压命令
tar zxvf example.gz
#使profile文件生效
source /etc/profile
#查看端口使用情况
netstat -an | grep 3306
#查看分区和磁盘
lsblk
#查看分区
cfdisk /dev/sda
#查看当前磁盘挂载
df -h

免密及脚本

#1、添加hosts节点
vi /etc/hosts
#追加如下
#  IP          节点名称
192.168.10.121 node1
192.168.10.122 node2
#创建ssh密钥 分别在三个节点都执行 
ssh-keygen
#回车四次
#复制私钥到其他节点
ssh-copy-id -i node1(或者ip)
ssh-copy-id -i node2(或者ip)
#验证,例如复制文件
scp /root/1.txt node1:/root/

tmux

#1、基础配置、安装、使用
#安装
yum install tmux
#更新
yum update
#版本
tmux -V
#创建新会话
tmux new -s [会话名]
#删除会话
tmux kill-session -t  [会话名]
#会话更改名称
tmux rename -t  [旧会话名] [新会话名]
#查看会话
tmux ls
#进入会话
tmux a -t [会话名]
#退出会话
ctrl+b d
#新建窗口
ctrl+b c
#切换窗口
#切换到上一个window
ctrl+b p
#切换到下一个window
ctrl+b n
#切换到0号window,依次类推,可换成任意窗口序号
ctrl+b 0
#列出当前session所有window,通过上、下键切换窗口
ctrl+b w
#相邻的window切换
ctrl+b l
#水平分屏
ctrl+b "
#垂直分屏
ctrl+b %
#切换窗格
#依次切换当前窗口下的各个pane
ctrl+b o
#根据按箭方向选择切换到某个pane
ctrl+b Up|Down|Left|Right
#对当前窗口下的所有pane重新排列布局,每按一次,换一种样式
ctrl+b Space (空格键) 
#最大化当前pane。再按一次后恢复
ctrl+b z
#关闭窗格
ctrl+b x

crontab

#查看crontab文件
#root用户可以用-u参数查看指定用户的计划任务,如果没有-u参数,表示查看自己的计划任务。普通用户只查看自己的计划任务,不允许使用-u参数。
crontab -l [-u 用户名]
#编辑crontab文件 -u 同上
crontab -e [-u 用户名]
#删除crontab文件 -u 同上
crontab -r [-u 用户名]
#示例
#没6分钟执行 example.sh(脚本:必须写全路径)   example.log(结果输出位置)
*/6 * * * * /home/example.sh \> /home/example.log
#根据上面简单demo我们自行参考cron定时任务表达式。
https://cron.qqe2.com/

上面例子细观察,发现其表达式是在分钟开始,所以crontab是5位。如果我们想每秒进行任务处理。
编写一份sh文件,内容如下。

#!/bin/bash
#间隔的秒数,不能大于60
step=3
for (( i = 0; i < 60; i=(i+step) )); do#执行的命令$(curl http://www.baidu.com)sleep $step
done
exit 0
#保存上面的sh文件,这里我们假设本地保存至 /home/example.sh
#编写计划任务
crontab -e [-u 用户名]
#在最下方添加(crontab分钟单位,sh是秒单位。所以达到了我们的期望。)
* * * * * /home/example.sh
#我们保存并退出(重启生效)
#相关命令
service crond start
service crond stop
service crond restart
service crond reload
service crond status



JDK1.8.0_281

1、下载jdk
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
在这里插入图片描述

#2、上传jdk至服务器并进行相关配置
#解压
tar zxvf jdk.tar.gz
#编辑环境变量
vi /etc/profile
#编辑内容如下并保存
export JAVA_HOME=/home/server/jdk1.8.0_281
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
#使环境变量生效
source /etc/profile
#查看版本
java -version



mysql5.7.31

mysql5.7.31安装

1、基础准备、下载、解压、安装

#卸载CentOS7系统自带mariadb
rpm -qa|grep mariadb
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
#删除etc目录下的my.cnf(如果存在要删除)
rm /etc/my.cnf
#下载mysql
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
#解压
tar -zxvf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
#更改文件夹名字
mv mysql-5.7.31-linux-glibc2.12-x86_64 mysql-5.7.31
#检查该链接库文件有没有安装使用
rpm -qa|grep libaio
#未安装则运行
yum install libaio-devel.x86_64
#进入mysql/bin/目录,编译安装并初始化mysql,务必记住数据库管理员临时密码
./mysqld --initialize --user=root --datadir=/home/server/mysql-5.7.31/data --basedir=/home/server/mysql-5.7.31
#配置文件
vi /etc/my.cnf

#配置内容如下
[mysqld]
user=root
#数据位置
datadir = /home/server/mysql-5.7.31/data
#安装位置
basedir = /home/server/mysql-5.7.31
#端口
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#支持数据分区存储
symbolic-links = 0
#最大连接数
max_connections = 666
#最大错误连接数
max_connect_errors = 666
#数据库默认字符串
character-set-server = utf8mb4
#数据库字符集对应一些排序等规则
collation-server = utf8mb4_general_ci
#client连接mysql时的字符集,防止乱码
init_connect=‘SET NAMES utf8mb4’
#独享表空间
innodb_file_per_table=1
#表名大小写不明感,敏感为
#lower_case_table_names=1
#binlog日志文件保存的过期时间,过期后自动删除
expire_logs_days = 5
#日志
log_error = /home/server/mysql-5.7.31/log/error.log
slow_query_log = 1
slow_query_log_file = /home/server/mysql-5.7.31/log/slow.log

#添加文件夹授权
chmod 777 /home/server/mysql-5.7.31/
chmod 777 /home/server/mysql-5.7.31/data/
chmod 777 /home/server/mysql-5.7.31/log/
chmod 777 /home/server/mysql-5.7.31/log/error.log
#添加软连接
ln -s /home/server/mysql-5.7.31/support-files/mysql.server /etc/init.d/mysql
ln -s /home/server/mysql-5.7.31/bin/mysql /usr/bin/mysql
#重启mysql服务
service mysql restart
#启动时 /home/server/mysql-5.7.31/data/**.pid 可能缺少pid文件,看错误对应新建。
#登录mysql密码就是初始化时生成的临时密码
mysql -u root -p
#修改密码
set password for root@localhost = password('root');
#开放远程连接
use mysql;
update user set user.Host='%' where user.User='root';
flush privileges;
#设置开机自启
#赋予可执行权限
chmod +x /etc/init.d/mysql
#添加服务
chkconfig --add mysql
#显示服务列表
chkconfig --list
#开机启动
chkconfig mysql on
#启动命令
/etc/init.d/mysql restart



mysql备份

1、编写备份脚本 backup.sh 存放至/backup/mysql/sh/

#!/bin/bash
DATE=`date +%Y%m%d%H%M`                #开始时间
DATABASE=springboot-admin              #数据库名
DB_USERNAME=root                       #账号
DB_PASSWORD="mysql"                    #密码
BACKUP_PATH=/backup/mysql/data/        #备份位置#备份及压缩
/usr/bin/mysqldump -u$DB_USERNAME -p$DB_PASSWORD -h 127.0.0.1 -R --opt $DATABASE | gzip > ${BACKUP_PATH}\/${DATABASE}_${DATE}.sql.gz#保存5天的备份信息
find ${BACKUP_PATH} -mtime +5 -name "${DATABASE}_*.sql.gz" -exec rm -f {} \;

2、编写完脚本后以防万一,更改脚本字符集。

vi /backup/mysql/sh/backup.sh
:set ff=unix

3、给脚本授权、备份位置授权

chmod +x /backup/mysql/sh/backup.sh
chmod a+w /backup/mysql/data/

4、编写定时任务

crontab -e
#在文件中编写如下内容
#凌晨3点备份
00 3 * * * /backup/mysql/sh/backup.sh
#需要重启crond才能生效
service crond stop
service crond start
#查看状态
service crond status
#查看执行记录日志
less /var/log/cron

*注意事项

#出现如下警告。可以去my.cnf 里面设置[mysqldump] 并配置号账号密码(也可以忽略)
mysqldump: [Warning] Using a password on the command line interface can be insecure



oracle11g

oracle11g安装(无图形界面)

#查看磁盘空间:选择较大的路径用于建立用户和数据库的安装
df -lh
#创建安装Oracle程序用户组、DBA用户组,创建用户并授权
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
#修改用户密码
passwd oracle
#查看新建的用户
id oracle
#创建Oracle的主目录、配置目录
mkdir -p /home/oracle/Oracle11G
mkdir -p /home/oracle/Inventory11G
#先把下载好的Oracle文件传输到oracle目录下,切换到oracle目录下解压缩,自动生成database目录
cd /home/oracle
unzip 对应的压缩文件名称(2)
#新建的三个目录授权
chown -R oracle:oinstall /home/oracle/Oracle11G
chown -R oracle:oinstall /home/oracle/Inventory11G
chown -R oracle:oinstall /home/oracle/database
#输入以下命令:如果有提示未安装的软件包,用命令# yum -y install compat-libstdc++-33-3.2.3(软件包名称)安装对应的软件包即可,完成安装后的效果见下图
rpm -q binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
#查看firewalld防火墙状态
systemctl status firewalld.service
#关闭firewalld防火墙
systemctl stop firewalld.service
#禁止开机使用firewalld防火墙
systemctl disable firewalld.service
#修改文件
vi /etc/selinux/config

修改如下配置
SELINUX=disabled

#修改CentOS系统标识 (Oracle默认不支持CentOS)
vi /etc/redhat-release
#将文件所有内容替换为:redhat-7
mv redhat-release redhat-7
#修改此文件
vi /etc/security/limits.conf

在文件最后一行前,追加以下内容
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

#修改此文件
vi /etc/sysctl.conf

将下列内容加入该文件,要使 /etc/sysctl.conf 更改立即生效,保存后执行:# sysctl -p
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

#修改用户环境变量(需要通过vi编辑模式修改,文件是隐藏的)
vi /home/oracle/.bashrc

添加以下内容(对应安装目录),保存后执行:# source /home/oracle/.bashrc

export PATH
export ORACLE_BASE=/home/oracle/Oracle11G
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl
export ORACLE_UNQNAME=orcl
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export LANG=C
export NLS_LANG="SIMPLIFIED CHINESE_CHINA".ZHS16GBK
#重启
reboot
#切换到oracle用户,装数据库
su oracle
#编辑数据库安装文件
vi /home/oracle/database/response/db_install.rsp
#将下面配置参数根据安装目录修改

安装类型
oracle.install.option=INSTALL_DB_SWONLY
主机名称
ORACLE_HOSTNAME=oracle.server
安装组
UNIX_GROUP_NAME=oinstall
INVENTORY目录
INVENTORY_LOCATION=/home/oracle/Inventory11G
选择语言
SELECTED_LANGUAGES=en,zh_CN
oracle_home
ORACLE_HOME=/home/oracle/Oracle11G/product/11.2.0/db_1
oracle_base
ORACLE_BASE=/home/oracle/Oracle11G
oracle版本
oracle.install.db.InstallEdition=EE
dba用户组
oracle.install.db.DBA_GROUP=dba
oper用户组
oracle.install.db.OPER_GROUP=oinstall
数据库类型
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
globalDBName
oracle.install.db.config.starterdb.globalDBName=orcl
SID
oracle.install.db.config.starterdb.SID=orcl
默认数据库编码
oracle.install.db.config.starterdb.characterSet=AL32UTF8
自动管理内存的最小内存(M)
oracle.install.db.config.starterdb.memoryLimit=800
设定所有数据库用户使用同一个密码
oracle.install.db.config.starterdb.password.ALL=oracle
设置安全更新
DECLINE_SECURITY_UPDATES=true

注意:安装出现swap(交换空间)不足,如下示例。
解决方案如下在这里插入图片描述

#检查 Swap 空间在设置 Swap 文件之前,有必要先检查一下系统里有没有既存的 Swap 文件。运行以下命令
swapon -s
#如果返回的信息概要是空的,则表示 Swap 文件不存在。
#检查文件系统在设置 Swap 文件之前,同样有必要检查一下文件系统,看看是否有足够的硬盘空间来设置 Swap 
df -hal
#创建并允许 Swap 文件下面使用 dd 命令来创建 Swap 文件。检查返回的信息,还剩余足够的硬盘空间即可。
dd if=/dev/zero of=/swapfile bs=1024 count=512k
#参数解读:if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >bs=bytes:同时设置读入/输出的块大小为bytes个字节count=blocks:仅拷贝blocks个块,块大小等于bs指定的字节数。
#格式化并** Swap 文件上面已经创建好 Swap 文件,还需要格式化后才能使用。
mkswap /swapfile
#Swap ,运行命令
swapon /swapfile
#以上步骤做完,再次运行命令,你会发现返回的信息概要
swapon -s
#如果要机器重启的时候自动挂载 Swap ,那么还需要修改 fstab 配置。
vi /etc/fstab
#添加下面内容
/swapfile          swap            swap    defaults        0 0
#最后,赋予 Swap 文件适当的权限(自选)
chown root:root /swapfile 
chmod 0600 /swapfile
#编辑完成输入
/home/oracle/database/runInstaller -silent -responseFile /home/oracle/database/response/db_install.rsp -ignorePrereq
#正式开始安装Oracle…
#如有报错自行百度处理,一般情况不会出现。
#切换root用户
su root
#执行如下
/home/oracle/Inventory11G/orainstRoot.sh
/home/oracle/Oracle11G/product/11.2.0/db_1/root.sh
#切换oracle用户-配置监听
su oracle
vi /home/oracle/database/response/netca.rsp
#修改配置
#安装的类型
INSTALL_TYPE=""custom""
#监听器数量
LISTENER_NUMBER=1
#监听器的名称列表
LISTENER_NAMES={"LISTENER"}
#监听器使用的通讯协议列表
LISTENER_PROTOCOLS={"TCP;1521"}
#监听器启动的名称
LISTENER_START=""LISTENER""
#保存后执行
/home/oracle/Oracle11G/product/11.2.0/db_1/bin/netca /silent /responseFile /home/oracle/database/response/netca.rsp
#开启和关闭监听不用执行,上面安装好后,监听会自动开启
#开启监听 
#/home/oracle/Oracle11G/product/11.2.0/db_1/bin/lsnrctl start
#关闭监听 
#/home/oracle/Oracle11G/product/11.2.0/db_1/bin/lsnrctl stop
#添加数据库实例
vi /home/oracle/database/response/dbca.rsp
#修改配置
#不要变
RESPONSEFILE_VERSION="11.2.0"
#操作为创建实例
OPERATION_TYPE="createDatabase"
#数据库实例名
GDBNAME="orcl"
#实例名字
SID="orcl"
#建库用的模板文件`
TEMPLATENAME="General_Purpose.dbc"
#SYS管理员密码
SYSPASSWORD="oracle"
#SYSTEM管理员密码
SYSTEMPASSWORD="oracle"
SYSMANPASSWORD="oracle"
DBSNMPPASSWORD="oracle"
#数据文件存放目录`
DATAFILEDESTINATION=/home/oracle/Oracle11G/oradata
#恢复数据存放目录
RECOVERYAREADESTINATION=/home/oracle/Oracle11G/flash_recovery_area
#字符集
CHARACTERSET="AL32UTF8"
#字符集
NATIONALCHARACTERSET="AL16UTF16"
#1638MB,物理内存2G*80%
TOTALMEMORY="1638"
#保存后输入
/home/oracle/Oracle11G/product/11.2.0/db_1/bin/dbca -silent -responseFile /home/oracle/database/response/dbca.rsp
#查看实例是否运行
ps -ef | grep ora_ | grep -v grep
#修改启动和关闭实例的程序
vi /home/oracle/Oracle11G/product/11.2.0/db_1/bin/dbstart
vi /home/oracle/Oracle11G/product/11.2.0/db_1/bin/dbshut


ORACLE_HOME_LISTNER=$1
修改为
ORACLE_HOME_LISTNER=/home/oracle/Oracle11G/product/11.2.0/db_1

#接着执行
vi /etc/oratab


orcl:/home/oracle/Oracle11G/product/11.2.0:N
修改为
orcl:/home/oracle/Oracle11G/product/11.2.0:Y

#设置开启启动
chmod +x /etc/rc.d/rc.local
vi /etc/rc.d/rc.local
#修改内容如下
su oracle -lc "/home/oracle/Oracle11G/product/11.2.0/db_1/bin/lsnrctl start"
su oracle -lc "/home/oracle/Oracle11G/11.2.0/db_1/bin/dbstart"

oracle客户端链接

#修改安装目录下的 listener.ora
vi /安装目录(目录不一,自行查找)/listener.ora
#参考配置
LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.104)(PORT = 1521))))SID_LIST_LISTENER =
(SID_LIST =(SID_DESC =#  (GLOBAL_DBNAME = ORCL)(ORACLE_HOME = /home/oracle/app/oracle/product/11.2.0/dbhome_1)(SID_NAME = orcl))
)
ADR_BASE_LISTENER = /home/oracle/app



redis6.2.1

1、基础准备、下载、解压、安装

#下载
wget http://download.redis.io/releases/redis-6.2.1.tar.gz
#解压
tar -zxvf /home/server/redis-6.2.1.tar.gz
#安装依赖包
#安装gcc(期间可能由于你的centos7版本导致还是不能编辑,自行升级且切换gcc使用)
yum install gcc
#redis目录中进行编译
make install

#redis.conf 配置内容介绍如下
#访问IP
bind 0.0.0.0
#端口
port 6379
#守护进程
daemonize yes
#进程文件地址(redis.pid 自行新建)
pidfile /home/server/redis-6.2.1/run/redis-6379.pid
#当客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能
timeout 0
tcp-keepalive 60
#设置数据库的数量
databases 6
#数据库文件名
dbfilename dump.rdb
#数据库文件地址
dir /home/server/redis-6.2.1/data/
#连接密码
requirepass pssword

#切换到redis/src/下启动
cd /home/server/redis-6.2.1/src/
./redis-server /home/server/redis-6.2.1/redis.conf
#添加软连接
ln -s /home/server/redis-6.2.1/src/redis-server /etc/init.d/redis-server
ln -s /home/server/redis-6.2.1/src/redis-cli /usr/bin/redis-cli
#设置开机自启
#编辑配置文件
vi /etc/init.d/redis
#!/bin/bash
# chkconfig:   2345 90 10
# description:  Redis is a persistent key-value database
PATH=/usr/local/bin:/sbin:/usr/bin:/bin
REDISPORT=6379
EXEC=/home/server/redis-6.2.1/src/redis-server
REDIS_CLI=/home/server/redis-6.2.1/src/redis-cliPIDFILE=/home/server/redis-6.2.1/run/redis-6379.pid
CONF="/home/server/redis-6.2.1/redis.conf"
#密码一定要设置正确
AUTH='scepter'case "$1" instart)if [ -f $PIDFILE ]thenecho "$PIDFILE exists, process is already running or crashed."elseecho "Starting Redis server..."$EXEC $CONFfiif [ "$?"="0" ]thenecho "Redis is running..."fi;;stop)if [ ! -f $PIDFILE ]thenecho "$PIDFILE exists, process is not running."elsePID=$(cat $PIDFILE)echo "Stopping..."$REDIS_CLI -p $REDISPORT -a $AUTH SHUTDOWNsleep 2while [ -x $PIDFILE ]doecho "Waiting for Redis to shutdown..."sleep 1doneecho "Redis stopped"fi;;restart|force-reload)${0} stop${0} start;;*)echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2exit 1
esac
#赋予可执行权限
chmod +x /etc/init.d/redis
#添加服务
chkconfig --add redis
#显示服务列表
chkconfig --list
#开机启动
chkconfig redis on
#启动服务(如果其他方式启动过,删除对应的pid文件)
/etc/init.d/redis start



svn

1、基础配置、下载、安装

#安装
yum -y install subversion
#项目仓库
mkdir -p /home/server/svn/project
#版本库
svnadmin create /home/server/svn/project
#切换至版本库配置

配置详解
在这里插入图片描述
#conf目录下
authz:负责账号权限的管理,控制账号是否读写权限
passwd:负责账号和密码的用户名单管理
svnserve.conf:svn服务器配置文件
编辑 authz 文件(注意:[/]也是必须的)
[/] 表示根目录,即 /var/svnrepos
luo = rw 表示用户luo对根目录具有读写权限。
在这里插入图片描述
编辑 passwd 文件
用户名为:luo,认证密码为:luo123456
在这里插入图片描述
编辑 svnserve.conf 文件(注意:配置的前面不能有空格,一定要顶格写)
anon-access = none:表示禁止匿名用户访问。
auth-access = write:表示授权用户拥有读写权限。
password-db = passswd:指定用户名口令文件,即 passwd 文件。
authz-db = authz:指定权限配置文件,即 authz 文件。
realm = /home/server/svn/project:指定认证域,即 /var/svnrepos 目录。
在这里插入图片描述

输入账号密码后,提示 svn: Authorization failed解决办法
把authz 文件 [/] 改为 [] 试试

#设置开机自启
#编辑配置文件
vi /etc/init.d/svn
#!/bin/bash
# chkconfig: 2345 85 15
# description: svn server
SVN_HOME=/home/server/svn/project
SVN_SERVER=/usr/bin/svnserve
SVN_PORT=1234
if [ ! -x $SVN_SERVER ]; thenecho "svnserver startup: cannot start"exit
ficase "$1" instart)echo "Starting svnserve…"$SVN_SERVER -d -r $SVN_HOME --listen-port $SVN_PORTecho "Finished!";;stop)echo "Stoping svnserve…"killall svnserveecho "Finished!";;restart)$0 stop$0 start;;*)echo "Usage: svn { start | stop | restart } "exit 1
esac
#赋予可执行权限
chmod +x /etc/init.d/svn
#添加服务
chkconfig --add svn
#显示服务列表
chkconfig --list
#开机启动
chkconfig svn on
#启动服务
/etc/init.d/svn start
#客户端访问SVN
svn://ip:port/project



nginx 1.18.0

nginx 1.18.0安装

1、基础配置、下载、安装

#安装依赖环境
#安装gcc环境
yum install -y gcc
#安装PCRE库,用于解析正则表达式
yum install -y pcre pcre-devel
#安装zlib压缩和解压缩依赖
yum install -y zlib zlib-devel
#安装openssl,SSL安全加密的套接字协议层,用于HTTP安全传输,也就是https
yum install -y openssl openssl-devel
#下载nignx包
wget http://nginx.org/download/nginx-1.18.0.tar.gz
#解压上传上来的Nginx压缩包
tar -zxvf nginx-1.18.0.tar.gz
#切换到nginx目录安装
#编译配置项 运行./configure进行默认配置的设置,当然你也可以使用自定义方式进行配置
./configure

在这里插入图片描述

#编译
make
#安装
make install
#开机自启
vi /etc/init.d/nginx
#!/bin/bash
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig:   2345 85 15
# description:  NGINX is an HTTP(S) server, HTTP(S) reverse \
#               proxy and IMAP/POP3 proxy server
# processname: nginx
# config:      /etc/nginx/nginx.conf
# config:      /etc/sysconfig/nginx
# pidfile:     /var/run/nginx.pidnginx=/usr/local/nginx/sbin/nginx
prog=$(basename $nginx)
NGINX_CONF_FILE=/usr/local/nginx/conf/nginx.confstart() {$nginx -c $NGINX_CONF_FILE
}stop() {$nginx -s stop
}restart() {teststopsleep 1start
}reload() {test$nginx -s stop
}test() {$nginx -t -c $NGINX_CONF_FILE
}status() {echo `ps -A | grep nginx`
}V() {$nginx -V
}case "$1" instart)$1;;stop)$1;;restart|test)$1;;reload)$1;;status)$1;;V)$1;;*)echo $"Usage: $0 {start|stop|status|restart|reload|test|V}"exit 2
esac
#启动nginx
/usr/local/nginx/sbin/./nginx
#赋值一份pid
cp /usr/local/nginx/logs/nginx.pid /run
#更改nginx.conf
pid /run/nginx.pid
#赋予可执行权限
chmod +x /etc/init.d/nginx
#添加服务
chkconfig --add nginx
#显示服务列表
chkconfig --list
#开机启动
chkconfig nginx on
#启动服务
/etc/init.d/nginx start

nginx 注意事项

虚拟目录 alias、root

1、root与alias主要区别在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上。
2、root的处理结果是:root路径+location路径。
3、alias的处理结果是:alias路径替换location路径。
4、还有一个重要的点是alias后面必须要用"/"结束。

nginx 基础配置

#配置用户或者组,默认为nobody nobody
user  administrator administrators;
#允许生成的进程数,默认为1
worker_processes  2;
#指定nginx进程运行文件存放地址
pid  /nginx/nginx.pid;
#制定日志路径,级别。这个设置可以放入全局块,http块,server块,级别以此为:debug|info|notice|warn|error|crit|alert|emerg
error_log  log/error.log debug;events {#设置网路连接序列化,防止惊群现象发生,默认为onaccept_mutex  on;#设置一个进程是否同时接受多个网络连接,默认为offmulti_accept  on;#事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventportuse epoll;#最大连接数,默认为512worker_connections  1024;
}http {#文件扩展名与文件类型映射表include  mime.types;#默认文件类型,默认为text/plaindefault_type  application/octet-stream;#取消服务日志access_log  off;#自定义格式log_format  myFormat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for';#combined为日志格式的默认值access_log  log/access.log myFormat;#允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。sendfile on;#每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限。sendfile_max_chunk 100k;#连接超时时间,默认为75s,可以在http,server,location块。keepalive_timeout 65;#允许最大上传client_max_body_size 5M;upstream mysvr {   server 127.0.0.1:8081;#热备server 192.168.1.110:8081  backup;}#错误页error_page 404 https://www.error.com;server {#监听端口listen  80;#监听地址server_name  127.0.0.1;#单连接请求上限次数。keepalive_requests  120;#请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。location ~*^.+$ {#将代理服务器收到的用户的信息传到真实服务器上proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;     		#根目录#root path;#设置默认页#index vv.txt;#请求转向mysvr 定义的服务器列表proxy_pass  http://mysvr;#拒绝的ipdeny 127.0.0.1;#允许的ipallow 172.18.5.54;} }#HTTP可用于访问RTMP统计数据server {listen      8080;#此URL提供XML格式的RTMP统计信息location /stat {rtmp_stat all;#使用此样式表可以将XML作为网页查看,在浏览器中rtmp_stat_stylesheet stat.xsl;}location /stat.xsl {#查看RTMP统计数据的XML样式表。将stat.xsl复制到任何需要的地方然后把完整的目录路径放在这里root /path/to/stat.xsl/;}location /hls {#提供HLS碎片types {application/vnd.apple.mpegurl m3u8;video/mp2t ts;}root /tmp;add_header Cache-Control no-cache;}location /dash {#提供DASH碎片root /tmp;add_header Cache-Control no-cache;}}
}#模块通过自动流推送到 nginx 工作人员来支持多工作人员直播。此选项由 rtmp_auto_push 指令切换。
rtmp {server {listen 1935;chunk_size 4000;#电视模式:一个出版商,多个订户application mytv {#启用实时流媒体live on;#记录流的前1Krecord all;record_path /tmp/av;record_max_size 1K;#将当前时间戳附加到每个flvrecord_unique on;#仅从本地主机发布(不配置就是所有)allow publish 127.0.0.1;deny publish all;}#转码(需要ffmpeg)application big {live on;#在每个pusblished流上运行此命令(ffmpeg)#使用替换:$app/${app},$name/${name}作为应用程序和流名称。#此ffmpeg调用接收来自此应用程序的流,将分辨率降低到32x32。#该流是发布到的同名的“小型”应用程序#ffmpeg可以对流做任何事情,比如视频/音频转码、调整大小、更改容器/编解码器参数等#可以指定多个exec行。exec ffmpeg -re -i rtmp://localhost:1935/$app/$name -vcodec flv -acodec copy -s 32x32 -f flv rtmp://localhost:1935/small/${name};      }#分辨率降低的视频来自ffmpeg(上面的配置)application small {live on;}application webcam {live on;#来自本地网络摄像头的流exec_static ffmpeg -f video4linux2 -i /dev/video0 -c:v libx264 -an -f flv rtmp://localhost:1935/webcam/mystream;      }application mypush {live on;#这里发布的每一条流自动推送到这两台机器push rtmp1.example.com;push rtmp2.example.com:1934;}application mypull {live on;#从远程计算机中提取所有流在本地玩pull rtmp://rtmp3.example.com pageUrl=www.example.com/index.html;}application mystaticpull {live on;#在nginx启动时启动静态拉动pull rtmp://rtmp4.example.com pageUrl=www.example.com/index.html name=mystream static;}#视频点播application vod {play /var/flvs;}application vod2 {play /var/mp4s;}#很多出版商,很多订户,没有支票,没有录音application videochat {live on;#以下通知接收所有会话变量以及HTTP POST中的特定调用参数请求,发出HTTP请求并使用HTTP代码决定是否允许发布,是否从这个连接on_publish http://localhost:8080/publish;#播放一样on_play http://localhost:8080/play;#发布/播放结束(断开连接时重复)on_done http://localhost:8080/done;#上述所有通知均收到标准connect()参数以及播放/发布。如果发送了任何参数使用GET style语法进行播放和发布.这些也包括在内。#示例URL:rtmp://localhost/myapp/mystream?a=b&c=d#每2分钟录制10个视频关键帧(无音频)record keyframes;record_path /tmp/vc;record_max_frames 10;record_interval 2m;#异步通知已记录的flvon_record_done http://localhost:8080/record_done;}#HLS#要使HLS正常工作,请在tmpfs中创建一个目录(/tmp/HLS here)寻找碎片。目录内容通过HTTP提供(请参阅)http{}节(在配置中)传入流必须为H264/AAC格式。对于iPhone,使用基线H264配置文件(参见ffmpeg示例)。此示例从准备用于HLS的电影创建RTMP流:#ffmpeg-loglevelverbose-re-i电影。avi-vcodec libx264#-vprofile基线-acodec libmp3lame-ar 44100-ac 1#-f flvrtmp://localhost:1935/hls/movie#如果您需要对实时流进行转码,请使用“exec”功能。application hls {live on;hls on;hls_path /tmp/hls;}#MPEG-DASH类似于HLSapplication dash {live on;dash on;dash_path /tmp/dash;}}
}

nginx https

#关闭nginx进程
/etc/init.d/nginx stop
#切换到nginx解压目录
cd /home/server/nginx-1.18.0/
#执行如下命令(可自行更改对应改装目录)
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
#接着执行
make
#nginx解压目录下的objs目录中的nginx程序,拷贝到nginx的安装目录/usr/local/nginx/sbin目录下.替换时注意回复 y .
cp /home/server/nginx-1.18.0/objs/nginx /usr/local/nginx/sbin/nginx
#检查模块是否安装
/etc/init.d/nginx V

nginx rtmp

参考地址:https://github.com/arut/nginx-rtmp-module
下载 nginx-rtmp-module 模块

#关闭nginx进程
/etc/init.d/nginx stop
#切换到nginx解压目录
cd /home/server/nginx-1.18.0/
#执行如下命令(可自行更改对应改装目录)
./configure --add-module=/home/server/nginx-1.18.0/nginx-rtmp-module
#多个版本的 nginx (1.3.14 - 1.5.0) 也需要添加 http_ssl_module
./configure --add-module=/home/server/nginx-1.18.0/nginx-rtmp-module --with-http_ssl_module
#接着执行
make
make install
#(如果你安装了https则执行此命令)nginx解压目录下的objs目录中的nginx程序,拷贝到nginx的安装目录/usr/local/nginx/sbin目录下.替换时注意回复 y .
cp /home/server/nginx-1.18.0/objs/nginx /usr/local/nginx/sbin/nginx
#检查模块是否安装
/etc/init.d/nginx V

nginx 负载均衡

#负载示例,在http{}配置与server{}同级
upstream example{ip_hash;server 192.168.0.1:8080;server 192.168.0.2:8080 weight=100 down;server 192.168.0.3:8080 weight=100;server 192.168.0.4:8080 weight=100 backup;server 192.168.0.5:8080 weight=100 max_fails=3 fail_timeout=30s;
}
#配置讲解
#down:表示当前的server暂时不参与负载
#weight:默认为1.weight越大,负载的权重就越大。
#backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
#上例中 192.168.0.5 设置最大失败次数为 3,也就是最多进行 3 次尝试,且超时时间为 30秒。max_fails 的默认值为 1,fail_timeout 的默认值是 10s。
#注意,当upstream中只有一个 server 时,max_fails 和 fail_timeout 参数可能不会起作用。weight\backup 不能和 ip_hash 关键字一起使用。
#使用
server {/example {proxy_pass http://example(对应upstream的名字)/}
}



node、pm2

node安装

#确认服务器有nodejs编译及依赖相关软件,如果没有可通过运行以下命令安装
yum -y install gcc gcc-c++ openssl-devel
#进入要存放下载资源的目录(本演示目录)
wget http://nodejs.org/dist/v14.16.1/node-v14.16.1-linux-x64.tar.gz
#解压
tar -zxvf node-v14.16.1-linux-x64.tar.gz
#解压完成后重命名文件夹,将文件夹重命名为node
mv node-v14.16.1-linux-x64 node-v14.16.1
#进入 node 目录下的bin目录,执行 ls命令(会看到node和npm) node -v 检查版本
cd node-v14.16.1/bin && ls 
#设置全局变量
vi /etc/profile
#加入以下内容
export NODE_HOME=/home/server/node-v14.16.1
export PATH=$PATH:$NODE_HOME/bin
export NODE_PATH=$NODE_HOME/lib/node_modules
#保存修改,然后使用如下命令使配置生效
source /etc/profile
#在任意位置执行node -v命令
node -v
#为npm添加淘宝镜像
npm config set registry https://registry.npm.taobao.org
npm config get registry
#使用淘宝npm镜像的cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
#安装yarn(自己选择)
npm install -g yarn 或者 cnpm install -g yarn

将服务项目,放到服务器内。进入项目目录。
进行相应的环境编译与windows无误。
例如 cnpm install 、yarn install 、npm install

pm2安装

#PM2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等
npm install -g pm2
#运行服务(run start 指运行命令,也可以脚本启动,自行百度。)
pm2 start yarn --name "名字标识" -- run start
#设置pm2开机自启动
pm2 startup
#移除pm2开机自启动
pm2 unstartup
#保存当前进程开机自启动	
pm2 save
#<进程启动命令> [--name <进程名>]	启动应用程序	
pm2 start
#显示所有进程状态 
pm2 list
#监控进程	
pm2 monit
#[进程id或名字]	显示进程日志	
pm2 logs 
#停止[所有]进程
pm2 stop [all]	
#重启[所有]进程
pm2 restart [all]	
#删除指定[所有]进程
pm2 delete [<进程名或者id>,all]
#查看应用程序信息
pm2 info [进程id或名字]	



文件上传下载

#使用lrzsz 安装如下
yum -y install lrzsz
#仅操作文件 非 文件夹
#下载
sz
#上传
rz



frp内网穿透

服务端安装

下载对应安装包:https://github.com/fatedier/frp/releases
本人资源里面也有
在这里插入图片描述

#主备工作
#1台外网服务器、1台windows电脑(一般内网电脑)、外网IP(域名也可以)
#此安装过程分为 服务端和客户端
#打开安装包 里面有 frps.ini(服务端配置文件)、frpc.ini(客户端配置文件)
#安装服务端
#上传文件至 centos7 内(例:/home/server/frp_0.40.0_linux_amd64.tar.gz)
#解压
cd /home/server
tar -zxvf frp_0.40.0_linux_amd64.tar.gz
cd frp_0.40.0_linux_amd64/
#编辑服务端配置文件
vi frps.ini
#配置文件内容如下
[common]
# frp监听的端口,默认是7000,可以改成其他的
bind_port = 7000
# 授权码,请改成更复杂的
token = 123456# frp管理后台端口,请按自己需求更改
dashboard_port = 7500
# frp管理后台用户名和密码,请改成自己的
dashboard_user = userName
dashboard_pwd = password
enable_prometheus = true# frp日志配置
log_file = /home/server/frp_0.40.0_linux_amd64/log/frps.log
log_level = info
log_max_days = 3

后台启动服务
cd /home/server/frp_0.40.0_linux_amd64/
nohup ./frps -c ./frps.ini > /dev/null &

访问 外网IP + 7500 出现如下后台管理页面 输入上面配置的账号密码
在这里插入图片描述

至此我们服务端搭建完成

客户端安装

#windows 客户端启动
#解压安装包 frp_0.40.0_windows_amd64

解压内容如下
在这里插入图片描述

#修改客户端配置文件 frpc.ini
#配置内容如下
[common]
#服务端IP(域名)
server_addr = *.*.*.*
#服务认证端口
server_port = 7000
#服务端token
token = 123456[web]
type = tcp
local_ip = 127.0.0.1
#本地服务端口
local_port = 8082
#外网映射端口
remote_port = 8090

启动服务(用命令启动)
切换到对应的盘符启动命令
frpc.exe -c frpc.ini
在这里插入图片描述
测试:外网IP + 映射端口(8090)+ 对应路径 ---------> 直达 127.0.0.1:8082 + 对应路径




漏洞处理

CVE-2020-12321

RHSA-2021:0339: linux-firmware 安全更新

#解决方案
yum update iwl100-firmware
yum update iwl1000-firmware
yum update iwl105-firmware
yum update iwl135-firmware
yum update iwl2000-firmware
yum update iwl2030-firmware
yum update iwl3160-firmware
yum update iwl3945-firmware
yum update iwl4965-firmware
yum update iwl5000-firmware
yum update iwl5150-firmware
yum update iwl6000-firmware
yum update iwl6000g2a-firmware
yum update iwl6000g2b-firmware
yum update iwl6050-firmware
yum update iwl7260-firmware
yum update linux-firmware
#重启验证
reboot

CVE-2020-25648

RHSA-2021:1384: nss 安全和BUG修复更新

#解决方案
yum update nss
#重启验证
reboot

CVE-2021-20305

RHSA-2021:1145: nettle 安全更新

#解决方案
yum update nettle
#重启验证
reboot

CVE-2021-27803

RHSA-2021:0808: wpa_supplicant 安全更新

#解决方案
yum update wpa_supplicant
#重启验证
reboot

CVE-2020-8625

RHSA-2021:0671: bind 安全更新

#解决方案
yum update bind-export-libs
yum update bind-libs-lite
#重启验证
reboot

CVE-2021-27219

RHSA-2021:2147: glib2 安全更新

#解决方案
yum update glib2
#重启验证
reboot

CVE-2019-25013\CVE-2020-10029\CVE-2020-29573

RHSA-2021:0348: glibc 安全和BUG修复更新

#解决方案
yum update glibc
#重启验证
reboot

CVE-2021-25215

RHSA-2021:1469: bind 安全更新

#解决方案
yum update bind-export-libs
yum update bind-libs-lite
#重启验证
reboot

CVE-2020-10543\CVE-2020-10878\CVE-2020-12723

RHSA-2021:0343: perl 安全更新

#解决方案
yum update perl-Pod-Escapes
yum update perl-macros
yum update perl
#重启验证
reboot

CVE-2020-25692

RHSA-2021:1389: openldap 安全更新

#解决方案
yum update openldap
#重启验证
reboot

CVE-2021-25217

RHSA-2021:2357: dhcp 安全更新

#解决方案
yum update dhclient
#重启验证
reboot

CVE-2020-0543、CVE-2020-0548、CVE-2020-0549、CVE-2020-24489

在这里插入图片描述

RHSA-2021:3028: microcode_ctl security,bug fix和修复更新

#解决方案
yum update microcode_ctl
#重启验证
reboot

CVE-2020-24489、CVE-2020-24511、CVE-2020-24512、CVE-2020-24513

RHSA-2021:2305: microcode_ctl security,bug fix和修复更新

#解决方案
yum update microcode_ctl
#重启验证
reboot

OpenSSH CVE-2018-15919

一般情况更新7.8以上版本就可以了
官方地址:http://www.openssh.com/portable.html
选择http下面的china
进入阿里下载地址 https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/
选择较高版本

#解决方案
#解压文件
tar -zxvf openssh-8.8p1.tar.gz
cd openssh-8.8p1
./configure
make
make install
#检查版本
ssh -V

有帮助,感谢!
在这里插入图片描述


http://www.ppmy.cn/news/743008.html

相关文章

可能是史上最全面的内存管理文章

iOS内存管理 概述 什么是内存管理 应用程序内存管理是在程序运行时分配内存(比如创建一个对象,会增加内存占用)与清除内存(比如销毁一个对象,会减少内存占用)的过程 为什么要管理内存 目前iPhone手机内存大多为1G,分配给每个应用程序的内存空间极其有限,当应用程序运行过程…

Android内存管理机制

转载地址&#xff1a;https://www.cnblogs.com/nathan909/p/5372981.html 1、基于Linux内存管理 Android系统是基于Linux 2.6内核开发的开源操作系统&#xff0c;而linux系统的内存管理有其独特的动态存储管理机制。不过Android系统对Linux的内存管理机制进行了优化&#xff0c…

取得当前iPhone内存使用量

文章转自&#xff1a;http://www.wangdg.com/?p482 #import <mach/mach.h> #import <mach/mach_host.h>static void print_free_memory () {mach_port_t host_port;mach_msg_type_number_t host_size;vm_size_t pagesize;host_port mach_host_self();host_size …

iPhone 内存管理

iPhone 内存管理 http://www.cnblogs.com/wwwkhd/archive/2011/01/12/1933788.html iPhone 内存管理(转) http://blog.csdn.net/ilysony/article/details/6332483 异步加载的网络图片的控件 http://hi.baidu.com/yangcong121/home http://dev.10086.cn/cmdn/wiki/i…

unity占内存大小_unity texture 占用内存大小对比

打包多种类型的项目,空项目和10张放在Resources文件夹中的图为比较案例。以下是比较数据。 IPHONE: 1.空项目----空间占用量42.3MB----IPA大小10MB 2.10张1200*520无压缩Texure 单张图占用量2.8MB----空间占用量70.2MB----IPA大小22.9MB 3.10张1200520压缩成10241024PVRTC4 单…

山东省职业院校技能大赛高职组“信息安全管理与评估”赛项样卷

发一个去年省赛的样题给大家比较一下 2022年山东省职业院校技能大赛高职组 “信息安全管理与评估”赛项 样卷 目录 一、赛项名称 二、赛项时间 第一阶段竞赛项目试题 (一)竞赛任务介绍 (二)

前端三件套之css(5) BFC

目录 什么是BFC 能触发BFC的标签或属性 BFC布局的标准规则 什么是BFC BFC全称(Block formatting context) 意为&#xff1a;"块级格式化上下文"。 它就像我们学校分班级一样&#xff0c;虽然都是一个学校&#xff0c;但是每个班是独立的&#xff0c;不相干扰的…

在Rust中使用torch------day1环境配置Yolov8推理

现在不管什么专业,貌似多多少少都得和深度学习扯上点关系才好写文章(水文章).其中最常用的深度学习框架应该是tensorflow,pytorch这些python的三方库,既然最近在学Rust那就来借机讲讲torch的Rust绑定—tch-rs 其实tch实际上是基于libtorch的封装,而不是pytorch.因此使用起来如…