LINUX数据同步一个目录,不需要同步某个文件
答案:2 悬赏:20 手机版
解决时间 2021-02-19 18:41
- 提问者网友:星軌
- 2021-02-18 20:58
三台LINUX服务器,搭建nginx+tomcat 群集,如果要使用这三台tomcat 的ROOT目录数据一致,(其中ROOT底下有一个目录是不能相同的),我该使用什么技术去做?
最佳答案
- 五星知识达人网友:掌灯师
- 2021-02-18 22:29
1.先写一个shell脚本
文件内容:
rsync -arz /export/apps/ /share/apps/
保存为 rs.sh
2.利用crontab定时运行脚本
# crontab -u root -e /加入定时任务
*/5 * * * * /root/rs.sh /每五分钟执行一次
# crontab -u root -l /查看定时任务
————————————
/share/apps/ 相当于/export/apps/的文件镜像,在/export/apps/里增加修改文件,过5分钟后自动同到镜像目录里。当然你也可以手动运行rs.sh来实现及时同步。
文件内容:
rsync -arz /export/apps/ /share/apps/
保存为 rs.sh
2.利用crontab定时运行脚本
# crontab -u root -e /加入定时任务
*/5 * * * * /root/rs.sh /每五分钟执行一次
# crontab -u root -l /查看定时任务
————————————
/share/apps/ 相当于/export/apps/的文件镜像,在/export/apps/里增加修改文件,过5分钟后自动同到镜像目录里。当然你也可以手动运行rs.sh来实现及时同步。
全部回答
- 1楼网友:北方的南先生
- 2021-02-18 22:55
一、rsync简介
用于替代rcp的一个工具,rsync可以通过rsh或ssh使用,也能以daemon模式去运行,在以daemon方式运行时rsync
server会开一个873端口,等待客户端去连接,连接时,rsync
server会检查口令是否相符,若通过口令查核,则可以通过进行文件传输,第一次连通完成时,会把整份文件传输一次,以后则就只需进行增量备份;
二、rsync常用参数
-v,--verbose 详细模式输出;
-a,--archive 归档模式,表示以递归的方式传输文件,并保持所有文件属性不变,相当于使用了组合参数-rlptgod;
-r, --recursive 对子目录以递归模式处理;
-l, --links 保留软链结;
-p, --perms 保持文件权限;
-t, --times 保持文件时间信息;
-g, --group 保持文件属组信息;
-o, --owner 保持文件属主信息;
-d, --devices 保持设备文件信息;
-h, --hard-links 保留硬链结;
-s, --sparse 对稀疏文件进行特殊处理以节省dst的 空间;
--delete 删除那些dst中src没有的文件;
-z, --compress 对备份的文件在传输时进行压缩处理;
三、rsync的六种不同的工作模式;
1)拷贝本地文件;
当src和des路径信息中不包含冒号":"分隔符时,就启用这种工作模式:
[root@cmmailapp1 /]# rsync -avsh /home/coremail/ /cmbak/
2)使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器,当dst路径地址包括冒号":"分隔符时启动该模式;
[root@cmmailapp1 /]# rsync -avsh /home/coremail/ 192.168.11.12:/home/coremail/
3)使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器,当src地址路径包括冒号":"分隔符时启动该模式;
[root@cmmailapp2 /]# rsync -avsh 192.168.11.11:/home/coremail/ /home/coremail/
4)从远程rsync服务器中拷贝文件到本地机。当src路径信息包含"::"分隔符时启动该模式。
如:rsync -av root@172.16.78.192::www /databack
5)从本地机器拷贝文件到远程rsync服务器中。当dst路径信息包含"::"分隔符时启动该模式。
如:rsync -av /databack root@172.16.78.192::www
6)列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。
如:rsync -v rsync://192.168.11.11/data
四、rsync服务端的配置;
环境:192.168.11.11为生产机;192.168.11.12为备份机;
那么需要192.168.11.11需要作为rsync的client;
192.168.11.12作为rsync的service端;
1、192.168.11.12_service端的配置;
1)[root@cmmailapp2 data]# touch /etc/rsyncd.conf //此文件为rsync的主配置问题,默认不存在需要手动创建;
2)定义同步的配置;
[root@cmmailapp2 data]# cat /etc/rsyncd.conf
[data]
path = /data/
auth users = coremail
uid = root
gid = root
secrets file = /etc/rsyncd.secrets
read only = no
[mysql]
path = /home/coremail/var/mysql
auth users = coremail
uid = root
gid = root
secrets file = /etc/rsyncd.secrets
read only = no
[cmxt]
path = /home/coremail/
auth users = coremail
uid = root
gid = root
secrets file = /etc/rsyncd.secrets
read only = no
3)定义密码文件/etc/rsyncd.secrets
[root@cmmailapp2 data]# cat /etc/rsyncd.secrets
coremail:coremail
4)启动rsync启动服务
[root@cmmailapp2 data]# cat /etc/xinetd.d/rsync
# default: off
# description: the rsync server is a good addition to an ftp server, as it \
# allows crc checksumming etc.
service rsync
{
disable = yes //需要修改为no;
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += userid
}
[root@cmmailapp2 data]# chkconfig --level 2345 rsync on
[root@cmmailapp2 data]# chkconfig rsync on
[root@cmmailapp2 data]# chkconfig --level 2345 xinetd on
[root@cmmailapp2 data]# service xinetd restart
stopping xinetd: [ ok ]
starting xinetd: [ ok ]
2、192.168.11.11_client端的配置;
[root@cmmailapp1 /]# cat /etc/rsyncd.secrets
coremail
[root@cmmailapp1 /]# rsync -asvh --password-file=/etc/rsyncd.secrets /home/coremail/coremail@192.168.11.12::data
[root@cmmailapp1 /]# rsync -asvh --password-file=/etc/rsyncd.secrets /home/coremail/coremail@192.168.11.12::mysql
[root@cmmailapp1 /]# rsync -asvh --password-file=/etc/rsyncd.secrets /home/coremail/coremail@192.168.11.12::cmxt
五、定义定时自行rsync同步,指定同步的日志所在的路径/var/log/rsync/下;
[root@cmmailapp1 log]# cat /root/rsync.sh
date=`date +%y%m%d%h%m`
rsync -asvh --password-file=/etc/rsyncd.secrets /home/coremail/ coremail@192.168.11.12::data>/var/log/rsync.date.$date
rsync -asvh --password-file=/etc/rsyncd.secrets /home/coremail/ coremail@192.168.11.12::mysql>/var/log/rsync.mysql.$date
rsync -asvh --password-file=/etc/rsyncd.secrets /home/coremail/ coremail@192.168.11.12::cmxt>/var/log/rsync.cmxt.$date
chmod u+x /root/rsync.sh
[root@cmmailapp1 log]# crontab -l
0 3 * * * /root/rsync.sh
执行时候的日子记录文件:
[root@cmmailapp1 log]# ls |grep 'rsync'
rsync.cmxt.20
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯