① linux 下是否有实时同步文件的工具
rsync:与传统的cp、tar备份方式相比,rsync具有安全性高、备份迅速、支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据到远端服务器,对本地磁盘定期做数据镜像等。
inotify:inotify 是一种强大的、细粒度的、异步的文件系统事件监控机制,linux内核从2.6.13起,加入了Inotify支持,通过Inotify可以监控文件系统中添加、删除,修改、移动等各种细微事件,利用这个内核接口,第三方软件就可以监控文件系统下文件的各种变化情况,而inotify-tools就是这样的一个第三方软件。
rsync可以实现触发式的文件同步,但是通过crontab守护进程方式进行触发,同步的数据和实际数据会有差异,而inotify可以监控文件系统的各种变化,当文件有任何变动时,就触发rsync同步,结合使用rsync+inotify工具很好的解决了同步数据的实时性问题。
基础linux教程建议你看看《linux就该这么学》这本书:www.linuxprobe.com
② 怎么同步linux文件如何WinSCP如何设置
方法/步骤下载安装完成WinSCP软件后,进入到需要同步文件的目录,如下图进入到需要同步文件的目录后,点击界面上方的同步按钮,如下图点击后会弹出一个窗口,窗口名为同步第一个设置项就是本地目录也就是本地文件存放的位置,本地目录的下方是远程目录,是服务器文件存放的位置;在方向目录中如果是服务器同步文件到本地,就选择本地,如果是本地文件同步到服务器就选择远程,这里不要选择错了,不然后期非常麻烦接着就是模式设置,模式设置直接选择默认的“同步文件”选项即可;在同步选项设置里设置设置按照修改时间和选上预览修改即可如果选择了预览修改,然后会比较文件,当然这样可能要花一些比较的时间,但是如果设置出错了预览能够及时的发现,不至于产生破坏性的影响。
③ 如何实现Linux多台服务器间的文件双向同步
Linux自带了ntp服务 — /etc/init.d/ntpd,这个服务不仅可以设置让本机和某台/某些机器做时间同步,他本身还可以扮演一个time server的角色,让其他机器和他同步时间。配置文件就是/etc/ntp.conf。为了测试,设置让node2 — 192.168.1.102和node1 — 192.168.1.101做时间同步。第一步,node1做time server,node1本身不和其他机器时间同步,就是取本地时间。所以,先把node1机器的时间调准了:[[email protected] ~]date -s 08/03/2011 [[email protected] ~]date -s 11:12:00[[email protected] ~]clock -w[[email protected] ~]hwclock –systohc后两个命令是把设置的时间写到硬件时间中去(也就是CMOS里面的时间)。第二步,然后将node1配置成一个time server,修改/etc/ntp.conf,[[email protected] ~]vi /etc/ntp.conf其他的配置不怎么需要改,只需要关注restrict的配置:1. 注释掉原来的restrict default ignore这一行,这一行本身是不响应任何的ntp更新请求,其实也就是禁用了本机的ntp server的功能,所以需要注释掉。
④ linux中rsync异步服务器实现文件同步与备份
Rsync非常适合在两台机器之间快速同步大型、复杂的目录,例如论坛的附件目录。再配合ssh,则安全性也有保证,且可以利用sshpublickey和cron来进行自动定时同步。说明:两台机器分别为localhost和remotehost;用户分别为localuser和remoteuser。环境:FreeBSD4.9和FreeBSD6.1 代码如下 设置sshpublickey认证$ssh-keygen-tdsa-b2048生成所需的密钥$scp/home/localuser/.ssh/id_dsa.pub[email protected]:/home/remoteuser/.ssh/localuser_id_dsa.pub将公钥拷贝至remotehost$ssh[email protected]登录到?端 代码如下 $cd.ssh/;catlocaluser_id_dsa.pub>>authorized_keys至此,设置ssh认证完毕。设置rsync确认两端机器都安装rsync,freeBSD有ports,安装非常方便。写个脚本名为backup.sh,内容如下: 代码如下 #!/bin/shRSYNC=/usr/local/bin/rsyncSSH=/usr/bin/sshKEY=/home/localuser/.ssh/id_rsaRUSER=remoteuserRHOST=remotehostRPATH=/remote/dirLPATH=/this/dir$RSYNC-az—delte-e“$SSH-i$KEY”[email protected]$RHOST:$RPATH$LPATH-a选项相当于选项-rlptgoD。简单来讲,此选项可递归并将几乎所有的东西同步过去,非常有用。注意的是,-a默认不会保存hardlinks,不过可以单独用-H选项来实现。-z选项在传输中压缩文件,这无疑加快同步速度。-delete选项会删除接受方一些不应存在的文件,此文件在发送方已经被删除,这将保持目录完全同步。让cron每天凌晨1点来跑这个脚本 代码如下 $crontab-e01***/home/localuser/bin/backup.sh友情提示rsync是没有自动启动同步功能了,如果我们要定时去备份一个网站数据我们就需要用到定时功能了,上面的例子来使用到了linux中$crontab命令来定时执行备份数据脚本了哦。
⑤ linux服务器怎么同步修改时间
一、搭建时间服务器1、在一台linux服务器安装ntp server2、修改ntp.conf配置文件vi /etc/ntp.confrestrict default nomodify(允许任何IP的客户专机都可以进行时间同属步,如果是只允许某个网段的客户机进行时间同步可以这样写restrict 10.58.26.0 mask 255.255.255.0 nomodify)3、以守护进程启动ntpd#/etc/rc.d/init.d/ntpd -c /etc/ntp.conf -p /tmp/ntpd.pid#/etc/rc.d/init.d/ntpd start二、配置时间同步客户机ntpdate 10.128.14.25hwclock -w使用cron 定时同步vi /var/spool/cron/root(或crontab -e)增加一行,在每天的1点10分、9点10分、17点10分与时间同步服务器进行同步并写入BIOS10 1 ,9,17* * * root /usr/sbin/ntpdate 10.128.14.25; /sbin/hwclock -w
⑥ linux 下是否有实时同步文件的工具
linux下两台服复务器文件实时同步方制案设计和实现inotify-toolsrsync同步linux实时同步inotifylinux下两台服务器文件实时同步方案设计和实现假设有如下需求:假设两个服务器:192.168.0.1 源服务器 有目录 /opt/test/192.168.0.2 目标服务器 有目录…
⑦ 怎么同步linux文件
下载安装完成WinSCP软件后,进入到需要同步文件的目录,如下图进入到需要同步文件的目录专后,点击界面上方属的同步按钮,如下图点击后会弹出一个窗口,窗口名为同步第一个设置项就是本地目录也就是本地文件存放的位置,本地目录的下方是远程目录,是服务器文件存放的位置;在方向目录中如果是服务器同步文件到本地,就选择本地,如果是本地文件同步到服务器就选择远程,这里不要选择错了,不然后期非常麻烦接着就是模式设置,模式设置直接选择默认的“同步文件”选项即可;在同步选项设置里设置设置按照修改时间和选上预览修改即可如果选择了预览修改,然后会比较文件,当然这样可能要花一些比较的时间,但是如果设置出错了预览能够及时的发现,不至于产生破坏性的影响。河南新华网络运营协会
⑧ 如何在Linux服务器中实现数据实时同步及备份
科技时代,任何行业都离不开数据的分析以及统筹,如果掌握了最关键的数据及技术,那成功就指日可待,所以数据对于一个企业来说,就是最无形的财富,而一个企业的数据基本都有服务器保存及管理着,如何保证数据安全,实现数据同步及备份?诚恺科技小编就同大家一起来看看在Linux服务器中利用rsync配合inotify实现数据实时同步及备份的方法。rsync:可以镜像保存整个目录树和文件系统。可以很容易做到保持原来文件的权限、时间、软硬链接等等。第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。方案:起初用rsync进行数据备份是利用计划任务,定时执行一下命令实现rsync的同步,但最近开发这边修改比较频繁,看来需要实时同步备份来完善备份机制!所以需要利用inotify触发器来改善!达到一旦指定的位置有了新的变动就将其同步!环境:CentOS 6.4 64位rsync-3.0.9inotify-tools-3.14说明:10.10.1.6 (rsync+inotify)———-网站程序(/data0/htdocs/)10.10.1.9 (rsync)——————网站程序备份(/data0/htdocs/)目的:实现10.10.1.6的/data0/htdocs/目录下发生任何变动都将实时同步到10.10.1.9的/data0/htdocs/上(另,这两台都跑有keepalived+nginx,来实现出现故障自动切换的容灾,详细配置会在后面补上)一、web服务器10.10.1.6 (rsync+inotify)1、准备软件包2、安装Rsync1)、1234 tar-zxvf rsync-3.0.9.tar.gz2)、cdrsync-3.0.93)、./configure–prefix=/usr/local/rsync4)、make;makeinstall建立密码认证文件[[email protected] ~]# echo "111111">/etc/rsyncd/rsyncd.secrets建立密码认证文件*其中111111可以自己设置密码,rsyncd.secrets名字也可以自己设置;权限:要将/etc/rsyncd/rsyncd.secrets设置为root拥有, 且权限为600。# chmod 600 /etc/rsyncd/rsyncd.secrets3、安装inotify1)、1234 tar-zxvf inotify-tools-3.14.tar.gz2)、cdinotify-tools-3.143)、./configure–prefix=/usr/local/inotify4)、make;makeinstall4、创建rsync复制脚本此项功能主要是将ftp端的目录/data0/htdocs/里的内容,如果修改了(无论是添加、修改、删除文件)能够通过inotify监控到,并通过rsync实时的同步给10.10.1.9的/data0/htdocs里,下面是通过shell脚本实现的。[[email protected] ~]# vim /root/shell/rsync.sh[[email protected] ~]# chmod u+x /root/shell/rsync.sh[[email protected] ~]# setsid /root/shell/rsync.sh &#后台运行脚本,关闭shell终端继续后台运行rsync.sh脚本加入开机启动项# echo "/root/shell/rsync.sh" >> /etc/rc.local防火墙开启rsync端口:873添加:iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 873 -jACCEPT重启:# /etc/init.d/iptables restart二、备份服务器10.10.1.9(rsync)1、准备工作创建备份目录:# mkdir /data0/htdocs2、安装rsync(备份主机只安装rsync)1)、1234 tar-zxvf rsync-3.0.9.tar.gz2)、cdrsync-3.0.93)、./configure–prefix=/usr/local/rsync4)、make;makeinstall3、建立用户与密码认证文件[[email protected] ~]# echo "root:111111" > /etc/ rsyncd/rsyncd.secrets[[email protected] ~]# less /etc/rsyncd/rsyncd.secretsroot:111111注意:请记住,在10.10.1.6端建立的密码文件,只有密码,没有用户名;而在10.10.1.9里建立的密码文件,用户名与密码都有。权限:要将/etc/rsyncd/rsyncd.secrets设置为root拥有, 且权限为600。#chmod 600 /etc/rsyncd/rsyncd.secrets4、建立rsync配置文件[[email protected] ~]# vim /etc/rsyncd/rsyncd.conf启动rsync服务# /usr/local/rsync/bin/rsync –daemon –config=/etc/rsyncd.conf# ps -ef |grep rsyncRsync服务加入开机启动项# echo "/usr/local/rsync/bin/rsync –daemon –config=/etc/rsyncd.conf" >> /etc/rc.local防火墙开启rsync端口:873添加:iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 873 -jACCEPT重启:# /etc/init.d/iptables restart完成,其实这个时候数据已经同步了!测试一下:由于/data0/htdocs/下涉及到一些公司信息,所以就以/data0/htdocs/tmp/为例主机名可以区别是两台机器,里面的内容完全一直,连文件的属性都一样再对里面修改一下试试,创建一个文件,然后删除user目录试试
⑨ 关于linux下文件实时双向同步问题
#server1地址:192.168.20.1#shell:#!/bin/baship2="192.168.20.2"ip3="192.168.20.3"src2="/home/server1/"dst2="/home/server2/"dst3="/home/server3/"/usr/local/bin/inotifywait-mrq-ecreate,delete,modify,move$src2|whilereadline;do/usr/local/bin/unison-batch$src2ssh://$ip2/$dst2/usr/local/bin/unison-batch$src2ssh://$ip3/$dst3echo-n"$line">>/var/log/inotify.logecho`date|cut-d""-f1-4`>>/var/log/inotify.logdoneserver2地址192.168.20.2shell#!/bin/baship1="192.168.20.1"ip3="192.168.20.3"src1="/home/server2/"dst1="/home/server1/"dst3="/home/server3/"/usr/local/bin/inotifywait-mrq-ecreate,delete,modify,move$src1|whilereadline;do/usr/local/bin/unison-batch$src1ssh://$ip1/$dst1/usr/local/bin/unison-batch$src1ssh://$ip3/$dst3echo-n"$line">>/var/log/inotify.logecho`date|cut-d""-f1-4`>>/var/log/inotify.logdoneserver3地址192.168.20.3shell#!/bin/baship1="192.168.20.1"ip2="192.168.20.2"src3="/home/server3/"dst1="/home/server1/"dst2="/home/server2/"/usr/local/bin/inotifywait-mrq-ecreate,delete,modify,move$src3|whilereadline;do/usr/local/bin/unison-batch$src3ssh://$ip1/$dst1/usr/local/bin/unison-batch$src3ssh://$ip2/$dst2echo-n"$line">>/var/log/inotify.logecho`date|cut-d""-f1-4`>>/var/log/inotify.logdone
⑩ 求助: linux下怎么实现两个文件夹的同步(shell脚本)
提供一个思路给你源文件夹和目标文件夹,通过ls -R -1生成一个文件列表。然后逐个进行回对比如果不答同,则从源文件夹进行复制其实双向同步是比较麻烦的。因为如果一旦两个文件夹的同一个文件都被修改了,那么就会出现冲突。用脚本写,很麻烦…最好的方法,是搞一个git或者svn一类的版本管理。
未经允许不得转载:山九号 » linux文件实时修改同步|怎么同步linux文件