制作离线yum源 + NFS挂载+增量同步

本文介绍了如何配置本地YUM源,包括查看网络源、拉取指定源至本地、停用原有源并创建新源,以及生成缓存数据库。接着,详细讲解了NFS服务端和客户端的设置步骤,包括安装、启动服务、配置共享目录、防火墙规则和挂载共享。最后,提到了使用rsync工具进行增量同步的方法,包括基本命令格式和一个实际例子。
摘要由CSDN通过智能技术生成
# 1 查看配置好的网络源
yum repolist
# 2 将指定网络源拉到本地,这里的例子是base和docker-ce-stable
reposync -r base -p /root/base
reposync -r docker-ce-stable -p /root/docker-ce

# 3 停用原有yum源,将原有yum源文件备份
mkdir /etc/yum.repos.d/backup/
mv /etc/yum.repos.d/* /etc/yum.repos.d/backup/

# 4 创建新yum源
cat docker-local.repo
[docker-local]
name=Docker Local Repository
baseurl=file:///root/liu_yums/docker-ce/docker-ce-stable
gpgcheck=0
enabled=1

 cat local.repo
[base]
name=centos-base
baseurl=file:///root/liu_yums/base/base
gpgcheck=0
enabled=1

# 5 生成本地yum源缓存,将本地同步下来的源文件生成缓存数据库文件
createrepo /root/liu_yums/base/base
createrepo /root/liu_yums/docker-ce/docker-ce-stable
# 执行后会在/root/ownyum/base文件夹中生成一个叫repodata的文件,很重要!
# 它包含各软件包之间的依赖关系、版本信息等。
# 如需安装 createrepo
cd /root/liu_yums/createrepo
rpm -ivh deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm
rpm -ivh libxml2-python-2.9.1-6.el7_9.6.x86_64.rpm
rpm -ivh libxml2-2.9.1-6.el7_9.6.x86_64.rpm
rpm -ivh libxml2-python-2.9.1-6.el7_9.6.x86_64.rpm
rpm -Uvh libxml2-2.9.1-6.el7_9.6.x86_64.rpm
rpm -ivh libxml2-python-2.9.1-6.el7_9.6.x86_64.rpm
rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm

单独下载包

# 比如下载 ntfs-3g
yumdownloader --destdir=./ ntfs-3g

2 NFS挂载

112 上

yum install -y nfs-utils
systemctl start nfs-server
systemctl enable nfs-server

cat /etc/exports
/dfsdata 10.xxx.xxx.111(rw,sync)

两台机器 systemctl stop firewalld.service

111 上

mount -t nfs -o sync,actimeo=1 10.xxx.xxx.112:/dfsdata /dfsdata
echo “10.xxx.xxx.112:/dfsdata /dfsdata nfs sync,actimeo=1 0 0” >> /etc/fstab

第二种nfs方式

在两台Linux服务器之间设置NFS(Network File System)共享,以下是详细的步骤和命令示例。这里假设一台服务器是 NFS 服务端(Server),另一台作为客户端(Client),并且它们都已经安装了必要的NFS软件包。

在NFS服务端(例如:server1)上操作

步骤一:安装并启动NFS服务

对于较新的CentOS/RHEL系统:

sudo yum install nfs-utils rpcbind -y # 安装nfs-utils和rpcbind
sudo systemctl start rpcbind.service # 启动rpcbind服务
sudo systemctl enable rpcbind.service # 设置开机自启
sudo systemctl start nfs-server.service # 启动nfs服务
sudo systemctl enable nfs-server.service # 设置开机自启

对于较老的系统可能需要启动nfs而不是nfs-server

步骤二:配置NFS共享目录

编辑 /etc/exports 文件来定义要共享的目录以及访问权限和其他选项,例如:

sudo nano /etc/exports

然后添加一行配置,比如允许所有网络中的客户端读写 /mnt/nfs_share 目录:

/mnt/nfs_share    client_subnet(rw,sync,no_subtree_check)

这里的 client_subnet 应替换为实际的客户端IP地址或子网,例如:

/mnt/nfs_share    192.168.1.0/24(rw,sync,no_subtree_check)

注意:上述参数含义:

  • rw 表示读写权限。
  • sync 表示同步模式,数据在写入共享之前会确保在服务器上被写入磁盘。
  • no_subtree_check 可以提升性能,尤其当共享的是整个文件系统的子目录时。
步骤三:更新NFS共享配置

应用更改并通知NFS守护进程重新读取exports文件:

sudo exportfs -a
步骤四:检查防火墙规则

确保防火墙允许NFS相关的端口通信,如TCP 2049和UDP 111、2049等:

sudo firewall-cmd --permanent --add-service=nfs
sudo firewall-cmd --permanent --add-service=mountd
sudo firewall-cmd --permanent --add-service=rpc-bind
sudo firewall-cmd --reload

在NFS客户端(例如:client1)上操作

步骤五:安装NFS客户端工具

如果还没有安装,执行如下命令:

sudo yum install nfs-utils -y
步骤六:挂载NFS共享

创建一个本地挂载点(如果还没创建):

sudo mkdir /mnt/nfs_mountpoint

然后挂载远程NFS共享到本地目录:

sudo mount -t nfs server1:/mnt/nfs_share /mnt/nfs_mountpoint

为了使挂载在重启后仍然有效,可以将该挂载信息添加到 /etc/fstab 文件中:

echo "server1:/mnt/nfs_share /mnt/nfs_mountpoint nfs defaults 0 0" | sudo tee -a /etc/fstab

最后,测试挂载是否成功:

ls /mnt/nfs_mountpoint

以上就是基本的两台Linux服务器之间通过NFS实现文件共享的步骤和实例。请根据实际情况调整IP地址、共享目录路径以及权限配置。

3 两台服务器之间如何增量同步,给出命令和具体例子

两台服务器之间进行增量同步,可以使用 rsync 工具,它是一个在类Unix系统中广泛使用的文件和目录同步工具,支持仅传输自上次同步以来发生更改的数据,从而实现高效、带宽友好的增量同步。以下是基于Linux系统的rsync命令及其使用例子:

基本的增量同步命令格式:

rsync -avz --delete --progress [源路径] [目标服务器用户名@目标服务器IP地址:]远程路径

参数说明:

  • -a(archive):归档模式,保留文件属性。
  • -v(verbose):详细输出模式,显示同步过程中的详细信息。
  • -z(compress):压缩传输数据,节省带宽。
  • --delete:删除目标目录中源目录不存在的文件,保持两边同步一致性。
  • --progress:显示传输进度。

例如,在两台Linux服务器A和B之间同步 /var/www/html 目录:

rsync -avz --delete --progress /var/www/html userB@192.0.2.100:/var/www/html

在这个例子中,我们将服务器A上的 /var/www/html 目录的内容增量同步到服务器B的相同路径下。userB 是目标服务器B上用于登录的用户名,而 192.0.2.100 是服务器B的IP地址。

为了自动化这个任务,并确保定期增量同步,可以将此命令添加到cron作业中,或者使用inotifywait等工具监控文件变化并触发rsync执行。

请注意,如果需要通过SSH密钥而非密码进行无密码认证,应先在两台服务器之间设置好SSH免密登录以方便自动化同步操作。此外,根据实际需求,可能还需要调整rsync的其他选项来满足特定的同步策略。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值