linux sync与rsync的区别

前言:面试的时候这俩个命令被问混淆了,所以今天抽空总结了下。

写缓存命令——sync

在用reboot命令启动unix系统后,系统提示出错信息,部分应用程序不能正常工作。经仔细检查系统文件,并和初始的正确备份进行比较,发现某些文件确实被破坏了,翻来覆去找不到文件遭破坏的原因,最后想到了写缓存命令——sync,在reboot前没有运行sync命令,导致了系统文件的改变而不能正常工作。

   sync 命令运行 sync 子例程。如果必须停止系统,则运行 sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件。

  sync命令的作用是,将有关文件系统的存储器常驻信息送入物理介质内。在暂停系统之前,比如要重新启动机器,一定要去执行sync命令。unix系统运行经验表明, 为确保可靠起见,应执行两遍sync命令, 这是因为sync命令完成时,并不保证信息实际写到了磁盘上,虽然已经执行了一遍这个命令。在执行sync命令以后,要等待磁盘工作灯灭了(假定有系统工作指示灯的话),再去真正暂停机器的运行或启动机器。
    unix系统遭受破坏是随时都可能发生的事情,一般不需运行该sycn命令,系统有update、和dbflush定时保存文件块信息,除非非正常启动机器或关机之前一定要运行sync命令。记住在任何情况下,慎重地执行sync命令,决不会有任何坏处

说到“同步”,不得不提的利器就是rsync,今天就来说说我从这个工具中看到的同步的艺术。

[不带任何选项]

我们经常这样使用rsync:

$ rsync main.c machineB:/home/userB

1 只要目的端的文件内容和源端不一样,就会触发数据同步,rsync会确保两边的文件内容一样。
2 但rsync不会同步文件的“modify time”,凡是有数据同步的文件,目的端的文件的“modify time”总是会被修改为最新时刻的时间。
3 rsync不会太关注目的端文件的rwx权限,如果目的端没有此文件,那么权限会保持与源端一致;如果目的端有此文件,则权限不会随着源端变更。
4 只要rsync有对源文件的读权限,且对目标路径有写权限,rsync就能确保目的端文件同步到和源端一致。
5 rsync只能以登陆目的端的账号来创建文件,它没有能力保持目的端文件的输主和属组和源端一致。(除非你使用root权限,才有资格要求属主一致、属组一致)

[-t选项]

我们经常这样使用-t选项:

$ rsync -t main.c machineB:/home/userB

1 使用-t选项后,rsync总会想着一件事,那就是将源文件的“modify time”同步到目标机器。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Rsync是一种在Linux系统中使用的文件同步工具,它可以在本地或远程服务器之间同步文件和目录。以下是安装和配置Rsync的步骤: 1. 安装RsyncLinux系统中,可以使用以下命令安装Rsync: Ubuntu/Debian系统: sudo apt-get install rsync CentOS/RHEL系统: sudo yum install rsync 2. 配置Rsync 在使用Rsync之前,需要进行一些配置。可以在/etc/rsyncd.conf文件中进行配置,该文件包含了Rsync的配置信息。 首先,需要创建一个Rsync用户,并为其设置密码: sudo useradd rsync sudo passwd rsync 然后,在/etc/rsyncd.conf文件中添加以下内容: uid = rsync gid = rsync use chroot = no max connections = 4 pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock log file = /var/log/rsyncd.log [backup] path = /home/backup/ comment = Backup directory read only = no list = yes auth users = rsync secrets file = /etc/rsyncd.secrets 其中,[backup]是同步目录的名称,path是同步目录的路径,auth users是允许访问该目录的用户,secrets file是存储密码的文件。 最后,需要创建一个密码文件/etc/rsyncd.secrets,并将用户名和密码添加到该文件中: rsync:password 其中,rsync是用户名,password是密码。 3. 启动Rsync 完成配置后,可以使用以下命令启动Rsync: sudo rsync --daemon 现在,Rsync已经成功安装和配置,可以使用rsync命令进行文件同步了。例如,将本地目录/home/local同步到远程服务器的/backup目录: rsync -avz /home/local/ rsync@remote:/backup/ 其中,-a表示同步所有文件和目录,-v表示显示详细信息,-z表示压缩传输。remote是远程服务器的IP地址或主机名,rsync是用户名。 ### 回答2: rsync是一种快速、灵活、可靠的文件同步和备份工具,适用于Linux、Unix、Mac等系统,它可以通过本地网络或者互联网对文件进行远程同步和备份。下面是在Linux系统下安装和配置rsync的详细步骤: 一、安装rsync 通常情况下,rsync都已经默认安装在Linux系统中,如果不确定是否已经安装,可以通过以下命令进行检查: ``` rsync --version ``` 如果显示出版本信息,则说明已经安装,否则需要执行命令进行安装。 在Debian和Ubuntu系统中,可以通过以下命令进行安装: ``` sudo apt-get install rsync ``` 在CentOS和Red Hat系统中,可以通过以下命令进行安装: ``` sudo yum install rsync ``` 二、配置rsync 1. 配置rsync服务器 要配置一个rsync服务器,首先需要创建一个目录(例如/var/backup),作为rsync同步和备份的目标文件夹。然后通过编辑/etc/rsyncd.conf文件进行配置,可参考以下示例: ``` uid = root gid = root max connections = 10 timeout = 300 pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock log file = /var/log/rsync.log [backup] path = /var/backup comment = Backup directory read only = no list = yes auth users = backupuser secrets file = /etc/rsyncd.secrets ``` 其中,[backup]是配置文件夹的名称,path是需要同步和备份的目标文件夹,auth users为需要授权的用户,在/etc/rsyncd.secrets文件中定义。 2. 添加授权用户 在/etc/rsyncd.secrets文件中,可以添加授权用户并设置密码,可参考以下示例: ``` backupuser:password ``` 然后对/etc/rsyncd.secrets文件进行权限设置: ``` sudo chmod 600 /etc/rsyncd.secrets sudo chown root:root /etc/rsyncd.secrets ``` 3. 启动rsync服务器 要启动rsync服务器,可以通过以下命令: ``` sudo rsync --daemon --config=/etc/rsyncd.conf ``` 4. 测试rsync服务器 要测试rsync服务器是否正常运行,可以在另一台Linux机器上执行以下命令: ``` rsync -avz [email protected]::backup /var/backup ``` 其中192.168.1.100为rsync服务器的IP地址,backup为在/etc/rsyncd.conf配置文件中设置的[backup]名称,/var/backup为本地同步和备份的目标文件夹。 三、使用rsync同步 要使用rsync进行同步和备份,可以执行以下命令: ``` rsync -avz /path/to/source [email protected]:/var/backup ``` 其中/path/to/source为需要同步和备份的源文件夹,192.168.1.100为rsync服务器的IP地址,/var/backup为在/etc/rsyncd.conf配置文件中设置的[backup]名称,需要授权用户backupuser的账号和密码。 这是rsync的简单安装和配置过程,可以根据实际情况进行扩展和调整。 ### 回答3: rsync是一种可靠的文件同步工具,可以在不同的主机之间进行文件同步和备份。在Linux系统中,rsync是非常常用的工具之一,本文将介绍如何安装和配置rsync。 一、安装rsync 在不同的Linux版本中,rsync的安装方法可能会略有差异,一般通过包管理工具进行安装即可。以Ubuntu为例,可以通过以下命令安装: sudo apt-get update sudo apt-get install rsync 二、配置rsync 在使用rsync进行文件同步之前,需要进行相应的配置。 1. 创建rsync配置文件 可以在/etc目录下创建一个rsyncd.conf文件,用于存放rsync的配置信息。 sudo nano /etc/rsyncd.conf 2. 配置rsync服务端 (1)设置运行rsync的用户和组 在rsyncd.conf文件中添加一行: uid = username gid = groupname 其中,username和groupname是指定的用户和组。 (2)设置rsync共享模块 添加以下内容: [module_name] path = /path/to/directory comment = module description writeable = yes list = yes 其中,module_name是共享模块的名称,path定义了共享的路径,comment是注释信息。 (3)设置rsync服务的日志 可以为rsync服务设置错误和日志文件: log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid (4)设置rsync服务的端口号 可以通过端口号来限制服务器与客户端之间的访问。 port = 873 3. 配置rsync客户端 在使用rsync进行文件同步之前,需要在客户端进行相应的配置。 (1)创建一个rsync配置文件 创建一个rsync配置文件,存放在/home/user/.rsyncd.conf中。 sudo nano /home/user/.rsyncd.conf (2)配置rsync同步 在rsync配置文件中添加以下内容: [module_name] path = /path/on/remote/server comment = module description 其中,module_name是共享模块的名称,path定义了共享服务器上的路径。 (3)使用rsync同步文件 使用以下命令即可进行同步: rsync -avz /path/to/source user@remote_server:/path/on/server 其中,-a表示同步所有的目录和文件属性,-v表示打印出详细信息,-z表示启用压缩。 4. 启动rsync服务 可以使用以下命令启动rsync服务: sudo systemctl start rsync 5. 配置rsync服务的开机启动 可以使用以下命令配置rsync服务的开机启动: sudo systemctl enable rsync 6. 设置防火墙 在使用rsync进行文件同步时,需要在防火墙中打开873端口,允许客户端和服务器之间的通信: sudo ufw allow 873 通过以上步骤,就可以在Linux系统中安装和配置rsync了。rsync是一款强大的文件同步工具,可以帮助我们更好地进行文件备份和同步。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值