系统服务杂记

文章目录

一、高级命令扩展

find

# find 搜索路径 [选项 选项的值] ...
-name :根据文件的名称搜索文件,支持*通配符
-type :f代表普通文件、d代表文件夹
-mtime :根据文件的最后修改时间搜索文件  - :几天内  + :几天前
* 通配符
xargs :遇到grep过滤文件的时候需要用到
exec  : 第二种解决方案,效果同上
# find /var/log -name "*.log" -mtime +10 -exec rm -rf {} \;

touch

创建文件的命令,一般会用于修改时间
touch -m -d "2020-03-23 00:00" a.txt

dd创建一个符合条件的空文件

# dd if=/dev/zero of=moon.txt bs=1M count=1   创建一个1M的空文件
if代表输入文件
of代表输出文件
bs代表字节为单位的块大小。
count代表被复制的块。
其中/dev/zero是一个字符设备,会不断返回0值字节。

tree

功能:主要功能是创建文件列表,将所有文件以树的形式列出来
yum -y install tree
tree .

scp

作用是文件传输
-r 目录,递归
上传文件
# scp [选项] linux本地文件路径 用户名@linux主机地址:远程路径
scp 1.txt root@192.168.3.40:  不写路径,会上传到root家目录
下载文件
# scp [选项] 用户名@linux主机地址:资源路径  linux本地文件路径
scp root@192.168.3.40:/root/1.txt /root

date

#date
#date +"%F %T %Y %m %d %H %M %S"
%F : 2020-04-03
%T : 09:45:36
# date -s "2020-04-10"  设置计算机系统时间
# ntpdate cn.ntp.org.cn 手工同步时间

tar备份

自动备份 每天的凌晨2点0分把/etc目录备份一次/tmp目录下,要求把/etc打包成etc.tar.gz格式
# crontab -e
分 时 日 月 周 /usr/bin/tar -zcf /tmp/etc.tar.gz /etc
0 2 * * * /usr/bin/tar -zcf /tmp/etc.tar.gz /etc
0 2 * * * /usr/bin/tar -zcf /tmp/etc-$(date +"\%Y\%m\%d").tar.gz	/etc      #时间,不会覆盖

ln

ln -s /opt/axel/bin/axel /bin/axel 软连接

二、软件包管理

二进制软件包:已编译好,直接安装使用  rpm包
软件源码包:源代码,需要编译-->二进制软件包-->安装使用
二进制源码包 安装--》rpmbuild工具-->rpm包或者源码包--》安装使用

1、源码安装

源码安装需要的软件	
yum -y install gcc make zlib-devel pcre pcre-devel openssl-devel

源码安装一共分为三步(三步走):
第一步:配置过程(配置软件的安装路径)./configure
第二步:编译过程(把软件由源代码编译成可以安装的程序)  make
第三步:安装过程(把编译后的程序进行安装) make install
# ./configure && make && make install
windows下载的安装包,上传到了linux系统中
一、第一种方法,按照默认配置进行
# tar -xf 压缩包
# cd 软件包中
# ./configure && make && make install
二、第二种方法,修改了配置
--prefix=... Directories to put files in /usr/local 软件家目录
--bindir=... $prefix/bin 	命令的目录
--etcdir=... $prefix/etc 	配置文件的目录 httpd => /etc/httpd/httpd.conf
--mandir=... $prefix/share/man man	文档路径
--locale=... $prefix/share/locale 	语言编码

# tar -xf 压缩包
# cd 软件包中
# ./configure --prefix=/opt/axel   这里将/usr/local地址换到了/opt/axel
#make (这里需要gcc,yum安装的时候报错就使用这个命令 yum -y install gcc* --skip-broken)
#make install
lsof -i:80  查看80端口
测试
这里因为改变了软件家目录,系统查不到axel命令
①软连接  ln -s /opt/axel/bin/axel /bin/axel  (这里要看一下路径)
②环境配置 
 1.查看当前的系统变量 echo $PATH
 2.将axel目录添加进去 vim /etc/profile,最后一行加上下面这一句
 export PATH=$PATH:/opt/axel/bin
 3.source /etc/profile  刷新
 除了vim添加,还可以使用echo追加
 #echo 'export PATH=$PATH:/opt/axel/bin' >> /etc/profile
 #source /etc/profile	

2、rpm安装

安装: rpm -ivh
卸载:  rpm -e    [--nodeps强制]
查询: rpm -qa | grep 
升级: rpm -Uvh 

3、yum安装

源的作用:软件包管理器



更换本地源 
① 使用光盘镜像作为YUM源仓库
② 下载很多软件,使用软件包作为YUM源仓库
1.更换镜像源
2.将光盘挂载到某个目录下
3.把光盘挂载添加到开机启动文件中
    # chmod +x /etc/rc.local
    # echo 'mount -o ro /dev/sr0 /mnt' >> /etc/rc.local
4.编写本地yum源仓库
# cd /etc/yum.repos.d/
创建一个以*.repo结尾的文件,名称任意
# vim CentOS-Media.repo
[c7-media]                    [仓库标识名称],名称任意,在一个文件中可以拥有多个标识
name=local yum                仓库名称
baseurl=file:///mnt           仓库的路径,支持多种格式,file://本地路径,ftp://,http://或https://
gpgcheck=0                    gpgcheck=gpg密钥,0不检测,1检测(下方还要定义一个gpgkey=密钥连接)
enabled=1                     enabled=是否启动当前仓库,值可以0,也可以是1,默认为1,代表启动仓库
#基本源改名字
#mv CentOS-Base.repo CentOS-Base.repo.1
# yum clean all
# yum makecache
# yum repolist all
# yum list				查看仓库里的软件包



更换网络源    yum源--阿里云
# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# yum clean all
# yum makecache
yum install epel-release -y  epel.repo文件 => 扩展源,是对官方YUM源的一个补充


特殊软件源
# cd /etc/yum.repos.d
# vim nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

三、服务

1.ssh

sshd服务数据传输是加密的,可以防止信息泄漏,数据传输是压缩的,可以提高传输速度
ssh服务有远程链接和sftp服务
ssh服务中的sftp传输数据比ftp更加安全可靠
搭建sshd服务
1.关闭防火墙
# 临时关闭  systemctl stop firewalld
# 关闭开机自启动  systemctl disable firewalld
# 关闭selinux
selinux是个比防火墙更高级的网络防护
# 临时关闭  setenforce 0
# 查看  getenforce 
# 修改配置文件  永久关闭  vim /etc/selinux/config      SELINUX=disabled
2.配置yum 源
# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# yum clean all
# yum makecache
3、openssh软件的安装
# yum install openssh -y
# rpm -qa |grep openssh  或# yum list installed |grep openssh  检查openssh是否安装成功
#rpm -qf /usr/sbin/sshd
#rpm -qf /usr/bin/ssh
4、查看并修改ssh服务端的配置文件
# man 5 sshd_config
RealServer:禁止root账号远程登录
PermitRootLogin	=> yes or no,默认为yes 代表允许通过root账号远程登录此服务器
38行 PermitRootLogin no
5、sshd服务管理
# systemctl restart sshd	=>   重启
# systemctl status sshd		=> 	 状态
# systemctl stop sshd		=>   停止
# systemctl start sshd		=>   启动
# systemctl enable sshd		=>	 开机自启动
# systemctl disable sshd	=> 	 开机不自启
# ps -ef |grep sshd			=>	 进程
或# netstat -tnlp |grep sshd	=> 	 端口 (lsof -i:端口号) 
或# ss -naltp |grep sshd
6.更改SSH默认端口
# vim /etc/ssh/sshd_config
17行 Port 3712
7.重启SSH服务
# systemctl restart sshd 或# systemctl reload sshd    reload不停止现有业务,只是重新加载sshd对应的配置文件
8.禁域名
#vi /etc/ssh/sshd_config 
115 #UseDNS yes
#把上面的yes 改成no 禁止dns查询,加快连接sshd服务的速度
9.验证指纹
# vim /etc/ssh/ssh_config
35行 StrictHostKeyChecking no

root免密登录
1.在192.168.1.11上生成密钥对
#ssh-keygen -t dsa
2.查看生成的密钥对
#cd .ssh
#ls
3.将公钥发送给服务器192.168.1.12
ssh-copy-id -i .ssh/id_dsa.pub root@192.168.1.12
4.在服务器192.168.1.12上查看发送过来的公钥
#cd .ssh
#ls  测试可以远程执行命令

5.在192.168.1.11上免密码ssh登陆
#ssh 192.168.1.12 
echo $? 测试上面的命令是否执行成功,结果是0表示成功,非0表示识别


普通账号免密登录
su - girl
ssh-keygen -t dsa
ssh-copy-id -i .ssh/id_dsa.pub  girl@192.168.1.12   将公钥发送给各个服务器
ssh girl@192.168.1.12 /usr/sbin/ip addr  测试可以远程执行命令
scp /etc/hosts girl@192.168.1.12:/tmp/   免密码传输文件
scp /etc/hosts girl@192.168.1.12:/boot/   权限被拒绝了或者说权限不够导致的

2.rsync

1.本地同步
# rsync -av /dir1/ /dir2		=>   把/dir1目录中的所有文件拷贝到/dir2目录中
# rsync -av /dir1 /dir3			=>   把/dir1目录整体同步到/dir3目录中
2.远程同步
# rsync .tmux.conf .vimrc .tcshrc root@192.168.8.137:     上传
# rsync -av -e "ssh -p 2222" root@121.43.54.39:/root/xxx.txt 下载
3.系统服务
# natstat naput | grep 2222 端口监听
# systemctl start rsyncd
# /usr/bin/rsync --daemon 后台启动
4.周期性任务备份文件 主机A备份到主机B
1.关防火墙(后期可以设置防火墙端口开放)
# systemctl stop firewalld
# systemctl disable firewalld
# setenforce 0
# vim /etc/selinux/config
SELINUX=disabled
2.准备需要备份的目录--A主机需要备份的
# mkdir /app/java_project -p
# mkdir /app/java_project/aa{1..3}
# touch /app/java_project/file{1..9}.java
3. 服务器的模块设置--A主机模块
# vim /etc/rsyncd.conf
[app]
path=/app/java_project
log file=/var/log/rsync.log

# systemctl start rsyncd
# ps -ef |grep rsync
# netstat -tnlp |grep rsync
4.B主机进行创建备份目录
# mkdir /backup/app1_java -p
# rsync -a root@192.168.1.11::app   测试
-a:获取rsync服务对应的同步目录标签
# rsync -av root@192.168.1.11::app /backup/app1_java  下载文件到本地
5.编写周期任务--B主机进行编写
# crontab -e
3 1 * * * /root/rsync_java.sh 
# vim rsync_java.sh
#!/bin/bash
rsync -av root@192.168.1.11::app /backup/app1_java &>/dev/null #表示错误重定向和正确重定向

# chmod +x rsync_java.sh

rsync集合inotify工具
1.主机A-->主机B(备份机)
A主机
# yum -y install gcc make zlib-devel pcre pcre-devel openssl-devel
# tar xf inotify-tools-3.13.tar.gz -C /usr/local/
# cd /usr/local/inotify-tools-3.14
# ./configure
# make 
# make install
# vim inotify.sh

/usr/local/bin/inotifywait -mrq -e modify,delete,create,attrib,move /app/java_project |while read events
do
	rsync -av --delete /app/java_project/ root@192.168.8.138:/backup/app1_java 2>&1
	echo "`date +%F\ %T`出现事件$events" >> /var/log/rsync.log 2>&1
done

# chmod +x inotify.sh
# nohup ./inotify.sh  &
& : 让inotify.sh在计算机后台运行,可以使用jobs命令查看,kill %编号结束,当我们退出终端时,这个执行会自动结束
nohup : 让程序一直在后台运行,即使我们关闭了终端
# cat /var/log/rsync.log  查看rsync.log日志文件


2.主机b-->主机A(备份机)
A主机
# yum -y install gcc make zlib-devel pcre pcre-devel openssl-devel
# tar xf inotify-tools-3.13.tar.gz -C /usr/local/
# cd /usr/local/inotify-tools-3.14
# ./configure
# make 
# make install
# vim inotify.sh

/usr/local/bin/inotifywait -mrq -e modify,delete,create,attrib,move /backup/app1_java |while read events
do
	rsync -av --delete /backup/app1_java root@192.168.1.12:/app/java_project 2&>1
	echo "`date +%F\ %T`出现事件$events" >> /var/log/rsync.log 2>&1
done

# chmod +x inotify.sh
# nohup ./inotify.sh  &

3.ftp

一、搭建ftp服务--创建指定用户在指定目录
1.关闭防火墙
# systemctl stop firewalld
# systemctl disable firewalld
# setenforce 0
# vim /etc/selinux/config
SELINUX=disabled

2.配置yum源
# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# yum clean all
# yum makecache

3.服务器安装vsftpd软件
# yum install vsftpd -y
# systemctl start vsftpd
# systemctl enable vsftpd

4.配置
# grep -v ^# /etc/vsftpd/vsftpd.conf>vsftpd.conf.1 
# vim vsftpd.conf.1
修改内容
anonymous_enable=NO    #禁止匿名用户访问	
local_enable=YES
write_enable=YES
local_root=/data/wu    #指定账号访问的目录
chroot_local_user=YES   #限定wu/123只能在/data/wu目录下活动
allow_writeable_chroot=YES  #版本问题,不添加会报错
local_umask=022
dirmessage_enable=YES    #启用消息功能
xferlog_enable=YES       #开启或启用xferlog日志
connect_from_port_20=YES   #支持主动模式(默认被动模式)
xferlog_std_format=YES
listen=YES                #ftp服务独立模式下的监听

pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=NO       #开启白名单,黑名单
tcp_wrappers=YES

排错指南
重启vsftpd服务时,报错
#systemctl status vsftpd 下面是failed ,
这里检查两个,一个是配置文件vsftpd.conf 一个是进程21
losf -i:21  直接kill   
配置文件检查里面是否有写错的地方,如果没有明显错误,就检查有没有空格,每行的后面也要检查

#cat vsftpd.conf.1 >/etc/vsftpd/vsftpd.conf  
5.创建可登录用户和创建家目录--测试
# useradd wu
# useradd zs 
# useradd lisi
# echo 123 |passwd --stdin wu
# echo 123 |passwd --stdin zs
# echo 123 |passwd --stdin lisi 
# mkdir /data/wu -p
如果无法上传:# setfacl -R -m u:wu:rwx /data/wu	

6.重启服务
# systemctl restart vsftpd
7.特殊权限用户
# vim /etc/vsftpd/vsftpd.conf
105行 chroot_list_enable=YES					    开启用户列表文件
107行 chroot_list_file=/etc/vsftpd/chroot_list	指定用户列表文件
echo wu >> /etc/vsftpd/chroot_list        代表wu这个账号不会被禁锢在指定目录
# systemctl restart vsftpd
二、windows链接和linux链接,上传下载文件
windows
浏览器、文件管理器
ftp://192.168.8.137   
要可以上网的地址
linux
1.下载ftp以及lftp
yum install ftp lftp -y
ftp 192.168.8.137
三、ftp客户端管理工具
1.ftp
单个文件:
上传: put 文件名
下载: get 文件名
多个文件:
上传多个文件(支持通配符):mput 文件名1 文件名2
下载多个文件(支持通配符):mget 文件名1 文件名2
整个目录:
上传文件夹:mirror -R 文件夹名
下载文件夹:mirror 下载文件夹存放到本地目录的位置
2.lftp工具:批量操作
针对某个命令求帮助:help + 命令
1、登录ftp
lftp用户名:密码@ftp地址:传送端口(默认为21)
lftp wu:123@192.168.8.137回车
2、下载文件
下载文件前首先要设置还本地的目录,用来存放下载的文件
lcd /home/ivy/doc   ##设置本地存放目录get  filename (如1.txt,ppt, pdf) 
//下载单个文件mget *.txt                   
//下载一组文件,也即是批量下载所有的txt文件
get -c 1.txt                    //断点续传下载
mget -c *.txt                   //断点续传
pget -c n 10 file.dat  //最多10个线程以允许断点续传的方式下载file.dat
mget -d dirname/(通配符*)    //下载目录
mirror dirname         //将目录的整个下载下来,子目录也会自动复制到,本地自动建立目录

3、 上传文件put  1.txt
mput *.txt
mirror -R miao //上传整个目录
mput -d dirname/*   #上传目录
基本使用方法:
1)、下载服务器端文件:
# mirror --vn RCD LCD   //RCD为远程路径,LCD为本地路径
2)、上传文件:
# mirror --R LCD RCD4.从远程主机上下载目录文件通过sftp下载目录:
lftp sftp://user@host -p port         lftp :> mirror my_path

四、黑名单白名单,网络限速,禁止ip,网段
1.ip
# vim /etc/hosts.deny
服务程序:主机
vsftpd:all                        全部拒绝
vsftpd:all EXCEPT 192.168.0.2    拒绝所有除了192.168.0.2  
vsftpd:192.168.0.254			  拒绝单个IP地址
vsftpd:192.168.0.254:allow  
//以上是允许192.168.0.254访问,类似/etc/hosts.allow里增加vsftpd:192.168.0.254
vsftpd:192.168.0.0/255.255.255.0   拒绝某个网段
vsftpd:192.168.0.0/255.255.255.0 EXCEPT 192.168.0.254   拒绝某个网段,但是除了某个ip地址
注意:子网掩码不支持192.168.0.0/24这种写法
vim /etc/hosts.deny
vsftpd,sshd:10.1.1.1
2.黑名单,白名单
ftpusers		黑名单	
user_list		默认是黑名单(可以成为白名单)
user_list要成为白名单,需要再配置文件里增加:
userlist_deny=NO
注意:如果user_list是白名单,那么必须在该文件里的用户才可以访问ftp服务。
3.限制流量
# vim /etc/vsftpd/vsftpd.conf
local_max_rate=0
0代表不限速

local_max_rate=数值 + 字节
local_max_rate=1024K

4.NFS

powershell 复制代码
网络文件系统nfs  ------------本地文件系统 ntfs  fat32  ext4  ,xfs 
NFS(Network File System)网络文件系统,主要用于Linux系统上实现文件共享的一种协议,其客户端主要是Linux
没有用户认证机制,且数据在网络上传送的时候是明文传送,一般只能在局域网中使用
支持多节点同时挂载及并发写入
企业应用:为集群中的web server提供后端存储(做静态资源服务器)
搭建NFS服务器(用于静态资源的存储如图片、视频、附件)
rpcbind : 负责NFS的数据传输,远程过程调用  ==tcp/udp协议 端口111==
nfs-utils :控制共享哪些文件,权限管理
RPC(Remote Procedure Call Protocol):
远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,不需要了解底层网络技术的协议。

nfs服务器实验
操作步骤如下:
nft服务器操作
在192.168.8.137上配置nfs服务端
1.环境准备
关闭防火墙
# systemctl stop firewalld
# systemctl disable firewalld
关闭SELinux
# setenforce 0
# vim /etc/selinux/config
SELINUX=disabled

2.配置YUM源
# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# yum clean all
# yum makecache
# yum -y install net-tools  #安装ifconfig命令
#ifconfig ens33 192.168.1.12

3.安装nfs服务和rpcbind服务
# yum -y install nfs-utils rpcbind -y
# rpm -qa | egrep "nfs|rpcbind"
# rpm -q rpcbind
# rpm -aq|grep ^nfs
# rpcinfo -p localhost  查看

4. 先启动rpcbind服务 监听的端口号是:111
# systemctl start rpcbind 
# systemctl status rpcbind|grep active
   Active: active (running) since 五 2021
# rpcinfo -p localhost
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    启动nfs服务
# systemctl start nfs
# systemctl enable nfs
# systemctl enable rpcbind
5.编辑nfs的主配置文件有两个
/etc/nfs.conf   /etc/exports
# mkdir /data
# vi /etc/exports   
/data 192.168.8.0/24(rw,sync,no_root_squash)
(这里写的是网段)
rw表示客户端对/data目录的权限是可读可写
sync表示客户端对/data目录的写入要马上同步到磁盘,以防止数据的丢失
开始存储到内存,sync的意思是将内存的数据立刻存储到硬盘
no_root_squash: root不用不需要转换身份
什么叫异步?
写数据到缓存,直到缓存满了,才会向硬盘进行写入操作

6. 重启服务
# systemctl reload nfs

优雅的重启 跟重启的区别

命令上:/etc/init.d/nfs reload
重启:/etc/init.d/nfs restart
Reload 其实是不中断对外提供服务的基础上,重新加载配置文件
给客户的感觉 非常 优雅 nice 
Restart 缺点是中断了对外的提供的服务,重新加载配置文件
生产环境下,一般要reload

7.测试
在服务器上自我测试共享是否成功了
# showmount -e localhost
Export list for localhost:
/data 192.168.1.0/24
表示测试成功,服务端配置完毕

共享权限的问题
客户端访问nfs服务器使用的账号是 nfsnobody 这个账号对于/data目录由两种权限
A.系统权限 为 只读和执行
B.nfs权限  为 可读可写
综合以上两点,默认情况下,客户端访问/data是没有写权限的。
下面是关于权限的设置
# grep 65534 /etc/passwd
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
这个账号是nfs程序的默认账号
# chown -R nfsnobody.nfsnobody /data

客户机操作
在192.168.8.138上配置nfs客户端
1.配置ip地址和yum源 并安装rpcbind
ip为192.168.8.138 
yum源配置为网络源
# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# yum clean all
# yum makecache
# yum install -y rpcbind
# mount /dev/sr0 /media/cdrom   #本地光盘做yum源,不需要
# yum -y install showmount
# showmount -e 192.168.8.137
Export list for 192.168.8.137:
/data 192.168.8.0/24
表示测试成功了
3. 下面是挂载
# mkdir /data1
# mount -t nfs 192.168.8.137:/data  /data1
# echo "mount -t nfs 192.168.8.137:/data /data1" >> /etc/rc.local
# chmod +x /etc/rc.d/rc.local
测试在客户端上是否能够创建文件删除文件等
#cd /data1
# touch {1..10}
# ls
1  10  2  3  4  5  6  7  8  9

之后在nfs服务器上去查看一下有没有刚才创建的文件
如果有表示nfs没问题
[root@hd2 ~]# cd /data
[root@hd2 ~]#ls
1  10  2  3  4  5  6  7  8  9

实现自动挂载 --这个不建议使用,适合本地实验,网络中使用会有各种报错
[root@hd1 ~]#vim /etc/fstab
192.168.1.12:/data	/data1	nfs4	defaults	0 0
[root@hd1 ~]#mount -a

NFS的配置文件
# vim /etc/exports   (vim /etc/nfs.conf)
共享目录   共享选项
/share    *(ro,sync)
/public	  *(ro,sync)

共享主机:
*   :代表所有主机
192.168.0.0/24:代表共享给某个网段192.168.0.1 ~ 192.168.0.254
192.168.0.0/24(rw) 192.168.1.0/24(ro) :代表共享给不同网段
192.168.0.254:共享给某个IP
*.hd.cn:代表共享给某个域下的所有主机

共享选项:
ro:只读
rw:读写
sync:实时同步,直接写入磁盘(安全性最高)
async:异步,先缓存数据在内存然后再同步磁盘(效率最高,但是有丢失文件风险)
anonuid:设置访问nfs服务的用户的uid,uid需要在/etc/passwd中存在
anongid:设置访问nfs服务的用户的gid
root_squash :默认选项 root用户创建的文件的属主和属组都变成nfsnobody,其他人nfs-server端是它自己,client端是nobody。(访问NFS服务器时,映射为匿名账号)
no_root_squash:root用户创建的文件属主和属组还是root,其他人server端是它自己uid,client端是nobody。(访问NFS服务器时,映射为root管理员账号)
all_squash: 不管是root还是其他普通用户创建的文件的属主和属组都是nfsnobody

说明:
anonuid和anongid参数和all_squash一起使用。
all_squash表示不管是root还是其他普通用户从客户端所创建的文件在服务器端的拥有者和所属组都是nfsnobody;服务端为了对文件做相应管理,可以设置anonuid和anongid进而指定文件的拥有者和所属组

5.LAMP项目部署

powershell 复制代码
LAMP = Linux + Apache + MySQL + PHP
一、环境检测
☆ 关闭防火墙
    # systemctl stop firewalld
    # systemctl disable firewalld
☆ 关闭SELinux
获取SELinux的状态:
    # getenforce
临时关闭SElinux:重启后SELinux还会自动启动
    # setenforce 0
永久关闭SELinux:编辑SELinux的配置文件
    # vim /etc/selinux/config
    SELINUX=disabled
☆ 检查系统中是否已安装Apache
    # rpm -qa |grep httpd 
    # rpm -e httpd-2.4.6-90.el7.centos.x86_64
    # rpm -e httpd-tools-2.4.6-90.el7.centos.x86_64
☆ 检查系统中是否已安装MySQL
    # rpm -qa |grep mysql
☆ 检查系统中是否已安装PHP
    # rpm -qa |grep php
AMP安装指南:在Linux中安装AMP必须先安装Apache,在安装MySQL,最后安装PHP
A 阿帕奇 M msql p php
二、Apache配置
第一步:安装httpd软件
# yum install httpd -y
第二步:配置/etc/httpd/conf/httpd.conf文件
# vim /etc/httpd/conf/httpd.conf
/ServerName => 搜索
96 ServerName localhost:80
第三步:启动httpd服务
# systemctl start httpd
第四步:把httpd服务添加到开机启动项中
# systemctl enable httpd
第五步:使用ss或netstat命令查询httpd占用的端口
# netstat -tnlp |grep httpd
或
# ss -naltp |grep httpd
第六步:浏览器测试
http://ip地址
三、MySQL安装
1、直接安装软件包
# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
2、安装官方源mysql镜像源 ,yum下载
# rpm -ivh mysql-community-release-el7-5.noarch.rpm
# yum install mysql-community-server -y
3、启动mysql
# systemctl start mysqld
# netstat -tnlp |grep mysqld
4、初始化
# mysql_secure_installation        初始化数据,设置root密码
输入当前root数据库管理员密码,直接回车
是否需要给root管理员设置一个密码,必须设置,按Y
输入密码
确认密码
是否移除匿名密码,按Y,必须移除,基于安全考虑
是否禁止root远程登录,按Y代表禁止,n代表不禁止
是否移除测试数据库,按Y代表移除,按n代表不移除
是否刷新权限,让刚才的更改立即生效,按Y,确认刷新
# systemctl enable mysqld           把mysqld服务添加到开机启动项
5、链接数据库,测试
# mysql -uroot -p
删除mysql的方法
# rpm -qa | grep -i mysql  查看是否安装mysql
# systemctl status mysqld  查看mysql状态
# systemctl stop mysqld  
删除mysql的安装目录
# find / -name mysql
# rm -rf /etc/my.cnf    删除所有检测出来的
删除mysql相关组件
# rpm -qa | grep -i mysql  查看所有mysql的相关组件
# rm -rf 文件
删除mysql配置文件
# rm -rf /etc/rc.d/init.d/mysql
删除mysql用户组
# userdel mysql

四、PHP安装
# yum install php -y
# systemctl restart httpd
测试LAMP环境
# cd /var/www/html
# vim demo.php
<?php
	echo 'hello world';
?>

http://公网IP/demo.php

五、部署Discuz论坛
下载地址:https://gitee.com/ComsenzDiscuz/DiscuzX  
# yum install unzip -y
# unzip discuz.zip

# mv discuz/* /var/www/html/
或
# cp -vRp disczu/* /var/www/html/

# chmod -R a+w /var/www/html
# yum install php-mysqli -y   #php的一个扩展
# systemctl restart httpd

常用的命令

端口

netstat -naput | grep 端口
lsof  可列出各种进程打开的文件信息,一般可以通过结合参数来获取更加精确的信息
lsof -i:22
lsof -i tcp:22
相关推荐
繁依Fanyi几秒前
简易安卓句分器实现
java·服务器·开发语言·算法·eclipse
C-cat.几秒前
Linux|环境变量
linux·运维·服务器
yunfanleo15 分钟前
docker run m3e 配置网络,自动重启,GPU等 配置渠道要点
linux·运维·docker
m512715 分钟前
LinuxC语言
java·服务器·前端
运维-大白同学37 分钟前
将django+vue项目发布部署到服务器
服务器·vue.js·django
糖豆豆今天也要努力鸭1 小时前
torch.__version__的torch版本和conda list的torch版本不一致
linux·pytorch·python·深度学习·conda·torch
烦躁的大鼻嘎1 小时前
【Linux】深入理解GCC/G++编译流程及库文件管理
linux·运维·服务器
乐大师1 小时前
Deepin登录后提示“解锁登陆密钥环里的密码不匹配”
运维·服务器
ac.char1 小时前
在 Ubuntu 上安装 Yarn 环境
linux·运维·服务器·ubuntu
敲上瘾1 小时前
操作系统的理解
linux·运维·服务器·c++·大模型·操作系统·aigc