linux同步文件夹?linux共享内存

大家好,关于linux同步文件夹很多朋友都还不太明白,今天小编就来为大家分享关于linux共享内存的知识,希望对各位有所帮助!

求助: linux下怎么实现两个文件夹的同步(shell脚本)

提供一个思路给你

源文件夹和目标文件夹,通过ls-R-1

生成一个文件列表。

然后逐个进行对比

如果不同,则从源文件夹进行复制

其实双向同步是比较麻烦的。因为如果一旦两个文件夹的同一个文件都被修改了,那么就会出现冲突。

用脚本写,很麻烦...

最好的方法,是搞一个git或者svn一类的版本管理。

linux多服务器之间的目录文件同步

web1:10.80.11.243 web2:10.80.11.244 code:10.80.11.245更新code服务器的代码后,自动同步到web1和web2,删除code服务器文件,web1和web2也删除服务器端的安装(N台WEB都这样配置) 1、首先要求Linux内核在2.6以上,才支持inotify [root@web1 html]# uname-a Linux web1 2.6.18-194.el5#1 SMP Fri Apr 2 14:58:35 EDT 2010 i686 i686 i386 GNU/Linux 2、检查是否安装rsync软件 [root@web1 html]# rpm-qa|grep rsync rsync-2.6.8-3.1如果没有的话,通过yum–y install rsync安装 3、新建rsync配置文件,该软件安装默认没有配置文件#vim/etc/rsyncd.conf motd file=/etc/rsyncd.motd uid=root gid=root max connections=36000 use chroot=no log file=/var/log/rsyncd.log log format=%t%a%m%f%b pid file=/var/run/rsyncd.pid lock file=/var/run/rsyncd.lock timeout= 300 [tongbu] path=/var/www/html list=yes comment= this is comment ignore errors= yes read only= no hosts allow= 10.80.11.245 hosts deny=* auth users backup secrets file=/etc/rsyncd.secrets注:tongbu为发布模块,相当于路径的别名 hosts allow是只允许连接的IP secrets file=/etc/rsyncd.secrets这是密码文件,同步的用户为backup,下面创建同步用户#useradd backup#passwd backup#vim/etc/rsyncd.secrets backup:123456格式为用户名:密码#chmod 600/etc/rsyncd.secrets设置只有root用户才能查看这个文件 4、启动服务/usr/bin/rsync--daemon--config=/etc/rsyncd.conf其他的WEB服务器配置和上面是一样的。如果需要开机启动,加入到/etc/rc.local

发布端的配置 1、发布端主要利用开源软件sersync,网站为: –zxvf sersync2.5RC1_32bit_binary.tar.gz#cd GNU-Linux-x86 2、修改配置文件#vim confxml.xml/var/www/html为发布服务器的源码发布目录主要修改红色标记部分,密码文件为/etc/rsync.pas#vim/etc/rsync.pas 123456#解释:123456代表的是Rsync server端的密码,并且要以"#"做结尾。如果有多个密码,增加多行就行。#chmod 600/etc/rsync.pas 3、启动服务#./sersync2-d–r这种方式常驻进程,如果需要开机启动,加入到/etc/rc.local

这样只要修改发布服务器/var/www/html的文件,web服务器就会自动同步。

**********************************************************************************************************

附录二:rsyncd.onf文件注释

全局参数

uid= root//运行RSYNC守护进程的用户

gid= root//运行RSYNC守护进程的组

use chroot= no//不使用chroot

max connections= 4//最大连接数为4

strict modes=yes//是否检查口令文件的权限

port= 873//默认端口873

模块参数

[backup]//这里是认证的模块名,在client端需要指定

path=/home/backup///需要做镜像的目录,不可缺少!

comment= This is a test//这个模块的注释信息

ignore errors//可以忽略一些无关的IO错误

read only= yes//只读

list= no//不允许列文件

auth users= hening//认证的用户名,如果没有这行则表明是匿名,此用户与系统无关

secrets file=/etc/rsync.pas//密码和用户名对比表,密码文件自己生成

hosts allow= 192.168.1.1, 10.10.10.10//允许主机

hosts deny= 0.0.0.0/0//禁止主机

#transfer logging= yes

注释:下面这些绿色文件是安装完RSYNC服务后自动生成的文件

pid file=/var/run/rsyncd.pid//pid文件的存放位置

lock file=/var/run/rsync.lock//锁文件的存放位置

log file=/var/log/rsyncd.log//日志记录文件的存放位置

利用syncthing实现同设备不同文件夹实时同步

以前写过一篇syncthing在windows和linux下的安装与使用: syncthing搭建私人网盘分享,但是,syncthing只支持不同设备的文件夹同步,如果想实现同设备的不同文件夹的实时同步该咋办呢?

syncthing只支持不同设备间的文件同步,如果想实现同个设备下文件的实时备份,可以借助docker容器实现这个需求,本机上安装syncthing,docker里也安装一个,然后映射到本地文件夹,这样就相当于两个设备之间同步,实现了同个设备间的同步问题。

上面的文章中已经介绍过本机安装syncthing的步骤,这里就不多赘述,下面介绍下docker安装syncthing的步骤。

如上图第二条是官方开源镜像

如果我们本地原先装过syncthing的话,8384和22000端口肯定是有占用的了,所以上面这条命令用8385映射docker里面的8384,22001映射docker里面的22000,用本机的/home/zhaohy/myspace/syncthingDocker文件夹映射docker里面默认存储的/var/syncthing文件夹。

浏览器访问就可以访问docker里面的syncthing设置页面了,注意设置同步文件夹的时候docker里面的文件夹要用/var/syncthing路径下的,其他操作就和第一篇文章里面讲的一样了。

如果想进入docker里的syncthing容器则执行 docker exec-it syncthing/bin/sh即可,exit命令退出容器。

这样就能在本机上同步不同文件夹了,比如ubuntu下面的/home目录,可以实时同步到外接移动硬盘上就不怕哪天挂掉丢失资料啦(以防万一,ubuntu还没挂过!)。

阅读剩余
THE END