热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

两台服务器文件同步ftp,两台centos服务器之间要同步数据,其中一台对外提供ftp服务解决方案...

朋也的博客»首页»文章两台centos服务器之间要同步数据,其中一台对外提供ftp服务解决方案作者:朋也日期:2019-08-23类别:杂项版权声明:自由转载-非商用-非衍生-保持

朋也的博客 » 首页 » 文章

两台centos服务器之间要同步数据,其中一台对外提供ftp服务解决方案

作者:朋也

日期:2019-08-23

类别:杂项

版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)

碰到一个需求,两台服务器(A,B)A不对外联网,B对外联网,A,B互通

要求,A里的数据通过sftp(ssh)同步到B上,然后在B上启动一个ftp对外提供下载服务

首先在B上安装一个ftp服务,可以选择 vsftp 或者 pureftp,不多说

然后在B上通过同步工具将A服务器上的目录挂载到B上指定的目录上,既然B对象提供ftp服务,那B上的ftp用户肯定有一个根目录

问题:可以直接将A上的目录通过同步工具挂载到B的ftp用户根目录上吗?

不行

同步工具用的是 sshfs

安装:

yum install -y epel-release fuse-sshfs

挂载命令,假设两台服务器的ip分别是 A: 192.168.1.100 B: 192.168.1.101

B上的ftp用户名是 ftpuser 所以B上ftp用户的根目录就是 /home/ftpuser

要将A上的 /home/origin_dir 同步到 B上的 /home/ftpuser/sync_dir,命令如下

执行命令有两种选择

用B服务器上提供的ftp用户来执行下面这个命令

在命令中添加uid, gid参数来指定同步的目录所属用户和组

PS: 这里用了一个技巧,既然没法将A服务器上的目录挂载到B服务器上ftp用户的根目录上,那就挂载到根目录中的某一个目录上,就没有问题了

# 1. 直接在B服务器上的ftp用户下执行不需要添加参数

sshfs -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 root@192.168.1.100:/home/origin_dir/ /home/ftpuser/sync_dir/

# 2. 可以在其它用户下执行这个命令比如root登录的用户下执行,添加上 ftp 用户的uid和gid也是一样的效果

# 这个uid,gid可以通过 `cat /etc/passwd` 命令查看到, 我这查到的结果如下

# vsftpd:x:510:511::/home/vsftpd:/sbin/nologin

# 这里的uid就是510,gid就是511了

sshfs -o uid=510,gid=511,reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 root@192.168.1.100:/home/origin_dir/ /home/ftpuser/sync_dir/

这样在A上 origin_dir 里CRUD文件,实时的就同步到 B上的 sync_dir 里了

同样的使用 filezilla 工具通过ftp服务也可以读取到B上的目录结构

取消挂载(一定要先cd出这个挂载的目录才行,否则它会说当前目录处理忙碌状态)

fusermount -u /home/ftpuser/sync_dir/

注意:

先启动B上的ftp服务,然后再挂载同步

取消挂载要用 fusermount 命令,千万不要直接kill掉进程

一定要加上这几个参数 -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 ,如果不加会导致服务一会就死掉了

相关文章


推荐阅读
  • 本文详细介绍了如何在ARM架构的目标设备上部署SSH服务端,包括必要的软件包下载、交叉编译过程以及最终的服务配置与测试。适合嵌入式开发人员和系统集成工程师参考。 ... [详细]
  • 利用 Calcurse 在 Linux 终端高效管理日程与任务
    对于喜爱使用 Linux 终端进行日常操作的系统管理员来说,Calcurse 提供了一种强大的方式来管理日程安排、待办事项及会议。本文将详细介绍如何在 Linux 上安装和使用 Calcurse,帮助用户更有效地组织工作。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中安装 Python 3.7 的步骤,包括编译工具的安装、Python 3.7 源码的下载与编译、软链接的创建以及常见错误的处理方法。 ... [详细]
  • CentOS7通过RealVNC实现多人使用服务器桌面
    背景:公司研发团队通过VNC登录到CentOS服务器的桌面实现软件开发工作为防止数据外泄,需要在RealVNC设置禁止传输文件、访问粘贴板等策略过程&# ... [详细]
  • vsftpd配置(虚拟用户、匿名用户登录)
    一、ftp服务搭建(一)概述1.ftp连接及传输模式(1)控制连接TCP21,用于发送FTP命令信息 ... [详细]
  • 第14周实践项目(4)-验证平衡二叉树
    问题**Copyright(c)2015,烟台大学计算机学院*Allrightsreserved.*文件名称:test.cpp*作者:王敏*完成日 ... [详细]
  • 在Python编程中,经常需要处理文件下载的任务。本文将介绍三种常用的下载方法:使用urllib、urllib2以及requests库进行HTTP请求下载,同时也会提及如何通过ftplib从FTP服务器下载文件。 ... [详细]
  • 本文详细介绍如何在华为鲲鹏平台上构建和使用适配ARM架构的Redis Docker镜像,解决常见错误并提供优化建议。 ... [详细]
  • 如何处理PHP缺少扩展的问题
    本文将详细介绍如何解决PHP环境中缺少扩展的问题,包括检查当前环境、修改配置文件以及验证修改是否生效的具体步骤,帮助开发者更好地管理和使用PHP扩展。 ... [详细]
  • 对象存储与块存储、文件存储等对比
    看到一篇文档,讲对象存储,好奇,搜索文章,摘抄,学习记录!背景:传统存储在面对海量非结构化数据时,在存储、分享与容灾上面临很大的挑战,主要表现在以下几个方面:传统存储并非为非结 ... [详细]
  • 本文详细介绍了如何在 CentOS 7 及其衍生发行版(如 Red Hat, Oracle, Scientific Linux 7)上安装和完全卸载 GitLab。包括安装必要的依赖关系、配置防火墙、安装 GitLab 软件包以及常见问题的解决方法。 ... [详细]
  • CentOS 7 默认安装了 MariaDB,作为 MySQL 的一个分支。然而,出于特定需求,我们可能仍需在系统中安装 MySQL。本文将详细介绍如何通过 Yum 包管理器在 CentOS 7 上安装 MySQL,并提供一些常用的 MySQL 命令。 ... [详细]
  • 在开发板的启动选项中看到如下两行:7:LoadBootLoadercodethenwritetoFlashviaSerial.9:LoadBootLoadercodethenwri ... [详细]
  • 本文介绍了在 CentOS 7 系统中如何查看所有活动进程及其运行时间。通过使用 `netstat` 和 `ps` 命令,您可以轻松获取进程的详细信息,包括启动时间、用户、终端和命令等。 ... [详细]
  • centos 7.0 lnmp成功安装过程(很乱)
    下载nginx[rootlocalhostsrc]#wgethttp:nginx.orgdownloadnginx-1.7.9.tar.gz--2015-01-2412:55:2 ... [详细]
author-avatar
BLUE1352_126
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有