精华内容
下载资源
问答
  • 文件同步
    千次阅读
    2022-04-20 08:39:16


    1. rsync简介

      rsync 即remote sync(远程同步),实现本地主机和远程主机上的文件同步(包括本地推到远程,远程拉到本地两种同步方式),也可以实现本地不同路径下文件的同步,但不能实现远程路径1到远程路径2之间的同步(scp可以实现)。使用 rsync 命令备份数据时,不会直接覆盖以前的数据(如果数据已经存在),而是先判断已经存在的数据和新数据的差异,只有数据不同时才会覆盖

    安装rsync:

    yum install -y rsync
    

    2. rsync语法

    rsync    -av       目录/文件名            远程主机用户名@主机ip或域名:目录/文件名
    

    参数说明:

    选项功能
    -a归档拷贝
    -v显示复制过程

    如:
    (1)把本地/home/m目录同步到192.168.42.103服务器相同目录下

    rsync    -av      /home/m/*            root@192.168.42.103:/home/m
    

    在这里插入图片描述
    (2)修改a.txt文件再同步(增量同步)

    在这里插入图片描述

    3 集群中文件同步

    当前服务器为hadoop102,同步文件到hadoop103、hadoop104(前提:配置ssh免密登录)

    #!/bin/bash
    if [ $# -lt 1 ]
    then
      echo "缺少参数,文件或目录列表"
      exit;
    fi
    for host in  hadoop103 hadoop104
    do
      echo ====================  $host  ====================
      for file in $@
      do
        if [ -e $file ]
        then
          pdir=$(cd -P $(dirname $file); pwd)
          fname=$(basename $file)
          ssh $host "sudo mkdir -p $pdir;sudo chown $USER:$USER -R $pdir"
          rsync -av $pdir/$fname $host:$pdir
        else
          echo $file does not exists!
        fi
      done
    done
    

    更多相关内容
  • 文件同步PHP版V1.0,同步服务器文件

    热门讨论 2012-01-10 15:33:01
    文件同步 V1.0 本程序用于同步两台服务器之间的文件系统,需要CURL支持 使用方法:将本程序放在两台服务器的根目录下,登陆其中一台服务器的filesync.php,然后输入另一台服务器中filesync.php的链接地址,勾选同步类型...
  • Syncthing:开源 P2P 文件同步工具

    千次阅读 2021-12-10 22:16:52
    简介:Syncthing 是一个开源的点对点文件同步工具,可用于在多个设备(包括 Android 手机)之间同步文件。 通常,我们有像MEGA或 Dropbox这样的云同步解决方案,可以在云上备份我们的文件,同时更容易共享。 但是...

    GitHub - syncthing/syncthing: Open Source Continuous File Synchronizationicon-default.png?t=LA92https://github.com/syncthing/syncthing

    简介:Syncthing 是一个开源的点对点文件同步工具,可用于在多个设备(包括 Android 手机)之间同步文件。

    通常,我们有像MEGA或 Dropbox这样的云同步解决方案,可以在云上备份我们的文件,同时更容易共享。

    但是,如果您想跨多个设备同步文件而不将它们存储在云中,您会怎么做?

    这就是Syncthing派上用场的地方。

    Syncthing:一种跨设备同步文件的开源工具

    同步截图

    Syncthing 可让您跨多个设备同步文件(包括对 Android 智能手机的支持)。它主要通过 Linux 上的 Web UI 工作,但也提供 GUI(单独安装)。

    但是,Syncthing 根本不使用云——它是一个点对点文件同步工具。您的数据不会进入中央服务器。相反,数据与它们之间的所有设备同步。因此,它并没有真正取代Linux 上典型云存储服务要添加远程设备,您只需要设备 ID(或只需扫描二维码),不涉及 IP 地址。

    如果您想要远程备份您的文件 – 您可能应该依靠云。

    同步 Gtk

    同步图形用户界面

    综合考虑,Syncthing 可以在很多事情上派上用场。从技术上讲,您可以安全、私密地在多个系统上访问您的重要文件,而不必担心有人监视您的数据。

    例如,您可能不想将某些敏感文件存储在云上——因此您可以添加其他受信任的设备来同步并保留这些文件的副本。

    尽管我简单地描述了它,但它还有更多的东西,而不是眼前的景象。如果您有兴趣,我还建议您阅读官方常见问题解答以清除对其工作方式的一些困惑。

    同步的特点

    您可能不希望同步工具中有很多选项——可靠地同步文件应该非常简单。

    Syncthing 确实非常简单且易于理解——即使如果你想使用它的每一个功能,建议你应该阅读文档

    在这里,我将重点介绍 Syncthing 的一些有用功能:

    跨平台支持

    同步安卓

    在 Android 上同步

    作为一个开源解决方案,它确实支持 Windows、Linux 和 macOS。

    除此之外,它还支持Android智能手机。如果您拥有 iOS 设备,您会感到失望 - 到目前为止,还没有 iOS 支持计划。

    文件版本控制

    同步文件版本控制

    同步文件版本控制

    如果旧文件被替换或删除,Syncthing 利用各种文件版本控制方法来存档旧文件。

    默认情况下,您不会发现它已启用。但是,当您创建要同步的文件夹时,您就会找到将文件版本控制切换为首选方法的选项。

    使用方便

    虽然是点对点文件同步工具,但它开箱即用,无需任何高级调整。

    但是,它确实允许您在需要时配置高级设置。

    安全与隐私

    即使您不与任何云服务提供商共享您的数据,仍有一些连接可能会引起窃听者的注意。因此,Syncthing 使用 TLS 确保通信是安全的。

    除此之外,还有可靠的身份验证方法可确保只有您明确允许的设备/连接才能获得同步/读取数据的访问权限。

    对于 Android 智能手机,如果您使用Orbot 应用程序,您还可以强制通过 Tor 传输流量。您还会发现其他几个适用于 Android 的选项。

    其他功能

    同步截图1

    在自己探索该工具时,您会注意到您可以同步的文件夹数量和可以同步的设备数量没有限制。

    因此,作为具有许多有用功能的免费开源解决方案,对于希望拥有点对点同步客户端的 Linux 用户来说,它是一个令人印象深刻的选择。

    在 Linux 上安装 Syncthing

    您可能不会在其官方下载网页上看到 .deb 文件或 .AppImage 文件。但是,您确实会在Snap 商店中获得一个 snap 包——如果您好奇,您可以阅读有关在 Linux 上使用 snap 应用程序的内容。

    您可能在软件中心找不到它(如果找到了,它可能不是最新版本)。

    注意: 如果您想要一个 GUI 来管理它,还有一个Syncthing-GTK可用 - 而不是浏览器。

    如果您有基于 Debian 的发行版,您也可以使用终端来安装它——说明在官方下载页面上

    我对 Syncthing 的体验

    就个人而言,我在 Pop!_OS 19.10 上安装了它,并在写这篇文章之前使用了一段时间。

    我尝试同步文件夹、删除它们、添加重复文件以查看文件版本控制如何工作,等等。它工作得很好。

    但是,当我尝试将其同步到手机 (Android) 时 - 同步开始有点晚,速度不是很快。因此,如果我们可以选择明确强制同步,那会有所帮助。或者,我错过了这个选项?如果我这样做了,请在评论中告诉我。

    从技术上讲,它使用您系统的资源来工作 - 因此,如果您有多个连接到同步的设备,它应该有可能提高同步速度(上传/下载)。

    总的来说,它运行得很好——但我必须说你不应该依赖它作为唯一的数据备份解决方案。

    展开全文
  • Ftp实现文件同步

    千次阅读 2019-07-24 21:40:43
    通常在做服务器与服务器文件、服务器与本地文件同步时通过Ftp服务实现,下面就以服务器文件和本地同步为例,介绍一下Ftp同步文件:首先建立一个Ftp站点服务,基本身份验证登陆,端口号为默认的21;Ftp文件同步前端界面...

    通常在做服务器与服务器文件、服务器与本地文件同步时通过Ftp服务实现,下面就以服务器文件和本地同步为例,介绍一下Ftp同步文件:
    首先建立一个Ftp站点服务,基本身份验证登陆,端口号为默认的21;
    Ftp文件同步前端界面如下:

    Ftp文件同步后台实现

      1 #region 获取Ftp服务端文件比较替换
      2         /// <summary>
      3         /// 比较替换
      4         /// </summary>
      5         private void btnQuery_Click(object sender, EventArgs e)
      6         {           
      7             msg.AppendText(Environment.NewLine + "开始连接...");
      8             FtpHelp fw = new FtpHelp(service.Text.Trim(), "", lognName.Text.Trim(), Pwd.Text.Trim());
      9             if (fw.ISOK())
     10             {
     11                 msg.AppendText(Environment.NewLine + "连接成功!\r\n");
     12                 Replace(service.Text.Trim(), hostAdress.Text.Trim());
     13             }
     14             else
     15             {
     16                 msg.AppendText(Environment.NewLine + "连接失败!\r\n");
     17             }      
     18         }
     19         private bool _isOver = false;
     20         private void Replace(string ftpAdress, string hostAdress)
     21         {
     22             if (!_isOver)
     23             {
     24                 _isOver = true;
     25                 //链接ftp服务
     26                 FtpHelp ftphelp = new FtpHelp(service.Text.Trim(), "", lognName.Text.Trim(), Pwd.Text.Trim());
     27                 //获取本地文件
     28                 LogHostFile[] hostFile = GetFile(hostAdress);
     29                 LogWriter.LogInfo("获取本地文件完成共:" + hostFile.Count());
     30                 //获取FTP服务器文件
     31                 DateTime begin = DateTime.Now;
     32                 FtpFile[] files = ftphelp.GetFilesList("ftp://" + ftpAdress.Trim(), "");
     33                 DateTime end = DateTime.Now;
     34                 time.Text = "获取服务文件用时:" + (end - begin).Milliseconds.ToString() + "ms;共" + files.Count() + "个文件";
     35                 if (files.Count() == 0)
     36                 {
     37                     LogWriter.LogInfo("获取服务器文件完成共:" + files.Count() + "可能是服务器连接失败或真的没有文件请管理员查看");
     38                 }
     39                 else
     40                 {
     41                     LogWriter.LogInfo("获取服务器文件完成共:" + files.Count());
     42                 }
     43                 Dictionary host = new Dictionary();
     44                 Dictionary ftp = new Dictionary();
     45                 if (hostAdress == "")
     46                 {
     47                     LogWriter.LogError("本地路径为空");
     48                 }
     49                 else
     50                 {
     51                     try
     52                     {
     53                         //遍历Ftp服务器端的文件
     54                         ftp.Clear();
     55                         foreach (FtpFile ftpfile in files)
     56                         {
     57                             if (!ftp.ContainsKey(ftpfile.FileFullName))
     58                             {
     59                                 ftp.Add(ftpfile.FileFullName, ftpfile.FileSize);
     60                             }
     61                         }
     62                         //遍历本地服务器端的文件
     63                         host.Clear();
     64                         foreach (LogHostFile ftpfile in hostFile)
     65                         {
     66                             if (!host.ContainsKey(ftpfile.FileFullName))
     67                             {
     68                                 host.Add(ftpfile.FileFullName, ftpfile.FileSize);
     69                             }
     70                         }
     71                     }
     72                     catch (Exception ex)
     73                     {
     74                         LogWriter.LogError("将本地和服务文件放入Dictionary集合中出错:" + ex.Message);
     75                     }
     76                     finally
     77                     {
     78                         _isOver = false;
     79                     }
     80                     LogWriter.LogInfo("开始循环服务器中的文件比较替换");
     81                     bool IsRelpace = false;
     82                     foreach (KeyValuePair ftpfile in ftp)
     83                     {
     84                         #region 判断服务器端的文件是否在本地存在
     85                         //判断服务器端的文件是否在本地存在
     86                         if (host.Count != 0)//如果本地没有文件
     87                         {
     88                             #region 是否有这个文件
     89                             if (host.ContainsKey(ftpfile.Key))
     90                             {
     91                                 #region 如果存在判断两个文件的大小是否相等
     92                                 //如果存在判断两个文件的大小是否相等
     93                                 if (host[ftpfile.Key] != ftpfile.Value)
     94                                 {
     95                                     IsRelpace = true;
     96                                     LogWriter.LogInfo(ftpfile.Key + " 文件在本地的大小:" + host[ftpfile.Key] + ";在服务器的大小:" + ftpfile.Value);
     97                                     //不相等就等换
     98                                     try
     99                                     {
    100                                         if (ftphelp.Download(hostAdress, ftpfile.Key.Trim()))
    101                                         {
    102                                             msg.AppendText(Environment.NewLine + "开始替换" + "ftp://" + ftpAdress.Trim() + "/" + ftpfile.Key + "\r\n");
    103                                             msg.AppendText(Environment.NewLine + "替换中..." + "\r\n");
    104                                             msg.AppendText(Environment.NewLine + "替换成功!" + "\r\n");
    105                                             LogWriter.LogInfo("替换文件:" + ftpfile.Key.Trim() + "本地文件大小:" + host[ftpfile.Key] + ";   FTP文件大小:" + ftpfile.Value);
    106                                         }
    107                                         else
    108                                         {
    109                                             msg.AppendText(Environment.NewLine + "替换失败!" + "\r\n");
    110                                             LogWriter.LogError("替换文件:" + ftpfile.Key.Trim() + "失败");
    111                                         }
    112                                     }
    113                                     catch (Exception ex)
    114                                     {
    115                                         LogWriter.LogError("文件" + ftpfile.Key + "比较替换时失败:" + ex.Message);
    116                                     }
    117                                     finally
    118                                     {
    119                                         _isOver = false;
    120                                     }
    121                                 }
    122                                 #endregion
    123                             }
    124                             else
    125                             {
    126                                 IsRelpace = true;
    127                                 try
    128                                 {
    129                                     if (ftphelp.Download(hostAdress, ftpfile.Key.Trim()))
    130                                     {
    131                                         msg.AppendText(Environment.NewLine + "本地没有的文件开始下载" + "ftp://" + ftpAdress.Trim() + "/" + ftpfile.Key);
    132                                         msg.AppendText(Environment.NewLine + "下载中...");
    133                                         msg.AppendText(Environment.NewLine + "下载成功!");
    134                                         LogWriter.LogInfo("下载服务器文件" + ftpfile.Key.Trim());
    135                                     }
    136                                     else
    137                                     {
    138                                         msg.AppendText(Environment.NewLine + "下载新文件失败!");
    139                                         LogWriter.LogError("下载服务器文件" + ftpfile.Key.Trim() + "失败");
    140                                     }
    141                                 }
    142                                 catch (Exception ex)
    143                                 {
    144                                     LogWriter.LogError("文件" + ftpfile.Key + "下载时失败:" + ex.Message);
    145                                 }
    146                                 finally
    147                                 {
    148                                     _isOver = false;
    149                                 }
    150                             }
    151                             #endregion
    152                         }
    153                         else
    154                         {
    155                             IsRelpace = true;
    156                             try
    157                             {
    158                                 if (ftphelp.Download(hostAdress, ftpfile.Key.Trim()))
    159                                 {
    160                                     msg.AppendText(Environment.NewLine + "本地没有的文件开始下载" + "ftp://" + ftpAdress.Trim() + "/" + ftpfile.Key);
    161                                     msg.AppendText(Environment.NewLine + "下载中...");
    162                                     msg.AppendText(Environment.NewLine + "下载成功!");
    163                                     LogWriter.LogInfo("下载服务器文件" + ftpfile.Key.Trim());
    164                                 }
    165                                 else
    166                                 {
    167                                     msg.AppendText(Environment.NewLine + "下载新文件失败!");
    168                                     LogWriter.LogError("下载服务器文件" + ftpfile.Key.Trim() + "失败");
    169                                 }
    170                             }
    171                             catch (Exception ex)
    172                             {
    173                                 LogWriter.LogError("文件" + ftpfile.Key + "下载时失败:" + ex.Message);
    174                             }
    175                             finally
    176                             {
    177                                 _isOver = false;
    178                             }
    179                         }
    180                         #endregion
    181                     }
    182                     if (IsRelpace)
    183                     {
    184                         LogWriter.LogInfo("替换工作完成!!");
    185                     }
    186                     else
    187                     {
    188                         LogWriter.LogInfo("FTP和本地的文件没有不同不需要替换");
    189                     }
    190                 }
    191             }
    192             else
    193             {
    194                 LogWriter.LogInfo("上一次替换未执行完成不进行下一次的操作!");
    195             }
    196         }
    197         #endregion
    198         #region 获取本地文件
    199         public LogHostFile[] GetFile(string str)
    200         {
    201             List hostFile = new List();
    202             if (str != "")
    203             {
    204                 string filepath = hostAdress.Text.Trim();
    205                 DirectoryInfo theFolder = new DirectoryInfo(str);
    206                 //LogWriter.LogInfo(str);
    207                 FileSystemInfo[] fileinfo = theFolder.GetFileSystemInfos();
    208                 foreach (FileSystemInfo NextFolder in fileinfo)
    209                 {
    210                     if (this.GetFileType(NextFolder.FullName) == 0)//wenjian
    211                     {
    212                         FileInfo Next = (FileInfo)NextFolder;
    213                         long size = Next.Length;
    214                         //获取文件的名称
    215                         hostFile.Add(new LogHostFile() { FileSize = size, FileFullName = NextFolder.FullName.Replace("\\", "/").Remove(0, filepath.Length).Substring(1) });
    216                         LogWriter.LogInfo(NextFolder.FullName);
    217                     }
    218                     else if (this.GetFileType(NextFolder.FullName) == 1)//wenjianjia
    219                     {
    220                         LogHostFile[] hostfile = GetFile(NextFolder.FullName);
    221                         foreach (LogHostFile file in hostfile)
    222                         {
    223                             hostFile.Add(file);
    224                         }
    225                     }
    226                 }
    227             }
    228             else
    229             {
    230                 LogWriter.LogError("没有给本地文件路径!");
    231             }
    232             return hostFile.ToArray();
    233         }
    234         #endregion
    235         /// <summary>
    236         /// 判断是文件还是文件夹
    237         /// </summary>
    238         public int GetFileType(string path)
    239         {
    240             if (File.Exists(path))
    241             {
    242                 return 0;
    243                 // 是文件
    244             }
    245             else if (Directory.Exists(path))
    246             {
    247                 return 1;
    248                 // 是文件夹
    249             }
    250             else
    251             {
    252                 return 2;
    253                 // 都不是
    254             }
    255         }
    View Code

    Ftp操作帮助类

      1 public class FtpHelp
      2     {
      3         string ftpServerIP;
      4         string ftpRemotePath;
      5         string ftpUserName;
      6         string ftpPassword;
      7         string ftpURI;
      8         #region 连接FTP
      9         /// <summary>
     10         /// 连接FTP
     11         /// </summary>
     12         /// FTP连接地址
     13         /// 指定FTP连接成功后的当前目录, 如果不指定即默认为根目录
     14         /// 用户名
     15         /// 密码
     16         public FtpHelp(string FtpServerIP, string FtpRemotePath, string FtpUserName, string FtpPassword)
     17         {
     18             ftpServerIP = FtpServerIP;
     19             ftpRemotePath = FtpRemotePath;
     20             ftpUserName = FtpUserName;
     21             ftpPassword = FtpPassword;
     22             ftpURI = "ftp://" + ftpServerIP + "/";
     23         }
     24         /// <summary>
     25         /// 是否连接成功
     26         /// </summary>
     27         public bool ISOK()
     28         {
     29             try
     30             {
     31                 FtpWebRequest reqFTP;
     32                 reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI));
     33                 reqFTP.Credentials = new NetworkCredential(ftpUserName, ftpPassword);
     34                 return true;
     35             }catch(Exception e)
     36             {
     37                 return false;
     38             }           
     39          }
     40         #endregion
     41         #region  下载
     42         /// <summary>
     43         /// 下载
     44         /// </summary>
     45         public bool Download(string filePath, string fileName)
     46         {
     47             FtpWebRequest reqFTP;
     48             try
     49             {
     50                 string newpath="";
     51                 if (fileName.Contains("/"))
     52                 {
     53                     newpath=fileName.Substring(0,fileName.LastIndexOf(@"/"));
     54                     newpath = newpath.Replace("/", "\\");
     55                 }
     56                 string path = filePath+"\\" + newpath;
     57                 DirectoryInfo di = new DirectoryInfo(path);
     58                 if (!di.Exists)
     59                 {
     60                     di.Create();
     61                 }
     62                 FileStream outputStream = new FileStream(filePath + "\\" + fileName, FileMode.Create);
     63                 reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI + fileName));
     64                 reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
     65                 reqFTP.UseBinary = true;
     66                 reqFTP.Credentials = new NetworkCredential(ftpUserName, ftpPassword);
     67                 FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
     68                 Stream ftpStream = response.GetResponseStream();
     69                 long cl = response.ContentLength;
     70                 int bufferSize = 2048;
     71                 int readCount;
     72                 byte[] buffer = new byte[bufferSize];
     73                 readCount = ftpStream.Read(buffer, 0, bufferSize);
     74                 while (readCount &gt; 0)
     75                 {
     76                     outputStream.Write(buffer, 0, readCount);
     77                     readCount = ftpStream.Read(buffer, 0, bufferSize);
     78                 }
     79                 ftpStream.Close();
     80                 outputStream.Close();
     81                 response.Close();
     82                 return true;
     83             }
     84             catch (Exception ex)
     85             {
     86                 LogWriter.LogError("文件" + fileName + "下载失败:" + ex.Message);
     87                 // Insert_Standard_ErrorLog.Insert("FtpWeb", "Download Error --&gt; " + ex.Message);
     88                 return false;
     89             }
     90         }
     91         #endregion
     92         #region 获取当前目录下明细(包含文件和文件夹)
     93         string name = "";
     94         public FtpFile[] GetFilesList(string ftpURI,string name)
     95         {
     96             List result = new List();           
     97             try
     98             {
     99                 FtpWebRequest ftp;
    100                 Uri uri = new Uri(ftpURI);
    101                 LogWriter.LogInfo(uri.Host);
    102                 LogWriter.LogInfo(uri.HostNameType.ToString());
    103                 LogWriter.LogInfo(uri.IsFile.ToString());
    104                 LogWriter.LogInfo(uri.LocalPath);
    105                 ftp = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI));
    106                 ftp.Credentials = new NetworkCredential(ftpUserName, ftpPassword);
    107                 ftp.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
    108                 ftp.Timeout = 10000;
    109                 string aa = "";
    110                 using (WebResponse response = ftp.GetResponse())
    111                 {
    112                     using (StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.ASCIIEncoding.UTF8))
    113                     {
    114                         aa = reader.ReadToEnd();
    115                         reader.Close();
    116                         response.Close();
    117                     }
    118                 }
    119                 string[] ftpFileList = aa.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
    120                 foreach(string line in ftpFileList)
    121                 {
    122                     if (line.Contains(""))
    123                     {
    124                         string dirName = GetFileName(line);
    125                         string newUrl = ftpURI + @"/" + dirName;
    126                         string newName = name + @"/" + dirName;
    127                         FtpFile[] files = GetFilesList(newUrl, newName);
    128                         foreach (FtpFile file in files)
    129                         {
    130                             result.Add(file);
    131                         }
    132                     }
    133                     else
    134                     {
    135                         string fileName = GetFileName(line);
    136                         string[] ftpFile = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
    137                         //获取文件的大小 和全路径
    138                         result.Add(new FtpFile() { FileSize = int.Parse(ftpFile[2]), FileFullName = (name + @"/" + fileName).Substring(1) });
    139                     }
    140                 }                                
    141             }
    142             catch (Exception ex)
    143             {                
    144                 string message = ex.Message;
    145                 // Insert_Standard_ErrorLog.Insert("FtpWeb", "GetFilesDetailList Error --&gt; " + ex.Message);
    146                 LogWriter.LogError(ex.Message);              
    147             }
    148             return result.ToArray();
    149         }
    150         private string GetFileName(string line)
    151         {
    152             string newStr = line.Substring(line.IndexOf(" "));
    153             newStr = newStr.TrimStart();
    154             newStr = newStr.Substring(newStr.IndexOf(" "));            
    155             newStr = newStr.TrimStart();
    156             newStr = newStr.Substring(newStr.IndexOf(" "));          
    157             return newStr.Trim();
    158         }        
    159         /// <summary>
    160         /// 获取当前目录下明细(包含文件和文件夹)
    161         /// </summary>
    162         public string[] GetFilesDetailList()
    163         {
    164             string[] downloadFiles;
    165             try
    166             {
    167                 StringBuilder result = new StringBuilder();
    168                 FtpWebRequest ftp;
    169                 ftp = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI));
    170                 ftp.Credentials = new NetworkCredential(ftpUserName, ftpPassword);
    171                 ftp.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
    172                 WebResponse response = ftp.GetResponse();
    173                 StreamReader reader = new StreamReader(response.GetResponseStream());
    174                 //string aa = reader.ReadToEnd();
    175                 string line = reader.ReadLine();
    176                 while (line != null)
    177                 {
    178                     result.Append(line);
    179                     result.Append("\n");
    180                     line = reader.ReadLine();
    181                 }
    182                 result.Remove(result.ToString().LastIndexOf("\n"), 1);
    183                 reader.Close();
    184                 response.Close();
    185                 return result.ToString().Split('\n');
    186             }
    187             catch (Exception ex)
    188             {
    189                 downloadFiles = null;
    190                 string message = ex.Message;
    191                 // Insert_Standard_ErrorLog.Insert("FtpWeb", "GetFilesDetailList Error --&gt; " + ex.Message);
    192                 return downloadFiles;
    193             }
    194         }
    195         #endregion
    196     }
    View Code

    Ftp文件同步工具最终效果

    转载于:https://www.cnblogs.com/huhangfei/p/4989176.html

    展开全文
  • Synology NAS设置文件同步

    千次阅读 2021-03-18 15:04:41
    1.NAS安装套件Synology Drive Server 2.电脑上下载并安装Synology Drive Client 3.选择同步任务 4.

    1.NAS安装套件Synology Drive Server
    在这里插入图片描述
    2.打开Synology Drive管理控制台,在团队文件夹中选中你要同步的文件夹点击启用
    在这里插入图片描述

    3.电脑上下载并安装Synology Drive Client
    在这里插入图片描述
    4.选择同步任务
    在这里插入图片描述
    5.输入nas服务器名称或IP地址以及账户以及密码
    在这里插入图片描述
    6.下一步显示了服务器和客户端信息
    在这里插入图片描述

    7.选择同步文件夹和更改本地文件夹
    在这里插入图片描述
    在这里插入图片描述

    8.创建完成后默认是双向同步的,你可以点击上方同步规则修改,还可以通过文件后缀过滤不想上传的格式文件在这里插入图片描述
    注意可以是多台客户端同步共享一个文件夹(客户端可以是服务器和PC同时同步共享)

    展开全文
  • 群晖通过Cloud Sync套件进行文件同步

    千次阅读 2022-03-20 17:59:45
    群晖通过Cloud Sync套件进行文件同步
  • 如何轻松在两个NAS之间文件同步

    千次阅读 2021-08-06 09:24:47
    什么是“文件同步”?说到“文件同步”,可能会想到“文件备份”。备份是对数据的一种复制,存档,通常是需要对数据进行镜像压缩,也就是会把数据打包成类似压缩文件zip格式,它具有备份镜像,一旦需要恢复数据,便...
  • 说起文件同步工具,现在网上这样的程序很多,微软也为用户提供了一款免费的远程同步软件——Windows Live Sync。该程序提供的文件同步功能允许用户在两台或更多电脑上对指定的文件夹中的文件进行同步更新。小知识:...
  • Zotero数据及文件同步

    千次阅读 2021-01-30 10:24:23
    Zotero数据及文件同步 面临的问题 Zotero是一款知识管理利器,对于从事科研工作的人来说尤其方便和高效。在多个不同终端中使用Zotero经常需要资源同步,然而Zotero服务器提供的免费存储空间只有300MB大小,依靠它...
  • 您不必手动进行上传下载,只需在登录时设置一个同步文件夹即可,客户端将对这个文件夹里的文件和服务器上的文件进行自动同步。您不必在每次更新文件后都再把文件上传一次,只要开着客户端,这些操作都会被客户端自动...
  • 明天试试安装群晖Drive,实现多台电脑文件同步原创: 老于杂货铺 老于杂事铺 6月5日因为家里有两台电脑,一台客厅电脑,一台台式机。有时候需要相互拷东西,比较费劲,听说群晖可以在多台电脑之间进行同步或共享,...
  • FastDFS文件同步原理与文件目录简介

    千次阅读 2020-06-20 20:16:29
    FastDFS文件同步原理 同一组内的StorageServer之间是对等的,文件上传、删除等操作可以在任意一台StorageServer上进行; 文件同步(添加/删除/修改)只在同组内的StorageServer之间进行,采用push方式,即源服务器...
  • 电脑文件同步备份软件哪个好用?

    千次阅读 2021-06-26 23:03:48
    工作中养成数据备份是个非常好的习惯,那么我们如何才能实现将电脑文件同步自动备份至另一个文件夹内或者是另一个设备内呢?今天小西就给大家讲讲电脑文件同步备份软件哪个更好用。 其实市面上可能有很多文件同步...
  • 首先大家自行检索FileYee,然后进行下载安装,这是一款专业的电脑文件同步软件,对于我们日常的本地文件同步、网盘文件同步、FTP文件同步,都可以实现,操作还是比较简单方便的,最关键的是能提高我们工作效率。...
  • 云备份 先说说我一直在使用的云备份 金山WPS 和 微软OneDrive 免费的有5G云空间, 用来存放一些文档和小工具是足够的 如果5G不够, WPS可以开会员, 目前最高可以...随着文件越来越多, 尤其是一些大文件 使用云空间显然
  • 超大文件同步如何实现?

    千次阅读 2018-08-14 16:24:03
    随着计算机技术和互联网的快速发展...如何保证多个设备之间的数据一致性以及如何高效地进行文件同步成为了人们关注的焦点,除此之外,数据的可追溯性也逐渐进入人们的视野。 现有的文件同步软件大都没有提供数据的...
  • Linux下rsync(本地、远程)文件同步

    千次阅读 2020-07-12 18:02:53
    sync同步:刷新文件系统缓存,强制将修改过的数据块写入磁盘,并且更新超级快。一般重启系统前执行sync命令 async:将数据先缓存在缓冲区,再周期性(一般是30s)的去同步到磁盘 。性能好,但是不能保证数据的安全性...
  • Linux下用rsync实现文件同步

    千次阅读 2018-09-13 17:38:36
    rsync是linux下的一款快速增量备份工具Remote Sync,是一款实现远程同步功能的软件(数据镜像备份软件),它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息。它不像FTP那样需要全备份,rsync...
  • 从fastdfs文件系统结构中我们可以看出不管是上传文件、删除文件、修改文件及新增storager server,文件同步都是同组 内多台storager server之间进行的; tracker server的配置文件中没有出现storage server,而...
  • 文件备份对企业的价值 对于绝大多数人而言,电脑中的不少文件对于我们来说都非常重要,一旦丢失,损失将会难以估量。 随着网络威胁的不断发展和变得越来越复杂,文件传输和托管文件传输之间的区别对于企业来说至关...
  • 多服务器之间实现文件同步功能

    千次阅读 2020-06-18 11:36:13
    多服务器之间实现文件同步,详细步骤如下(本文档为懒人教程,粘贴复制就可成功,简单实用,快来试试吧~) 简介:本例为主服务器上的文件同步到多台从服务器一.首先,主服务器与从服务器之间建立相互信任关系 参考:...
  • 1、在国产Linux发行版deepin/UOS之间进行文件同步 1.1、通过深度应用商店一键安装syncthing 国产Linux发行版deepin或UOS一直致力于将Linux更加易用,使得没有Linux基础的使用者可以更加轻松的上手。deepin或者UOS...
  • 重要资料,必需备份。狡兔还有三窟呢,更不说突然断电就可能OVER的...但对于几十G的大文件来说,显示就是不可行的。我们也不可能时不时的删除之前的备份,重新复制一份吧,毕竟是动辄需要几个小时。 这时,一个时时...
  • 项目最近需要将一台服务器文件同步到另一台,由于文件有 100 来 M 不适合使用 MQ 来操作,就了解了一下 Camel FTP,记录一下用法和一些问题。
  • 同步方案有很多种,比如 Seafile 和 Nextcloud,这两者都是正儿八经的云盘,功能多,体型庞大,部署起来很麻烦,如果应用场景仅仅是需要同步一下公司电脑和家里电脑的文档,犯不上用这两者。 Syncthing不是云盘,...
  • 然而在使用的过程中发现对于较大的数据(如训练数据集、训练的模型数据等),通常会存在google colab虚拟机中网盘文件与真实的google网盘文件同步的情况。这样在退出虚拟机时会导致数据丢失,从而使相关操作的数据...
  • fastdfs文件同步延迟

    千次阅读 2019-01-08 11:28:17
    文件同步延迟问题的提出  客户端将一个文件上传到一台Storage server后,文件上传工作就结束了。由该Storage server根据binlog中的上传记录将这个文件同步到同组的其他Storage server。这样的文件同步方式是异步...
  • 写一个shell脚本(脚本名称:xsync,又称xsync命令):实现多个电脑或者虚拟机之间的文件同步?一·xsync命令与rsync命令之间关系介绍:(1)xsync命令来源于一个xsync的脚本,这个脚本不是Linux系统自带的,是...
  • 引言:之前博文介绍过了mysql/oracle与ES...1、目的:将本地磁盘存储的日志文件同步(全量同步、实时增量同步)到ES中。 2、源文件:[root@5b9dbaaa148a test_log]# ll -rwxrwxrwx 1 root root 170 Jul 5 08:02 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,383,599
精华内容 553,439
关键字:

文件同步

友情链接: ymzxcx.rar