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还没挂过!)。