scrollview嵌套listview时 动态设置listview高度
2014-09-01 14:17
381 查看
1、环境介绍
192.168.1.2 (rsync+inotify)-----------FTP主节点
192.168.1.3 (rsync)-------------------backup备份节点
实验目的:实现文件实时同步
FTP主节点(192.168.1.2)-------> 文件备份节点(192.168.1.3)
一、FTP主节点(需同时安装rsync+inotify)1、准备软件包[root@ftp ~]# mkdir /mnt/ftpdata[root@ftp ~]# wget http://rsync.samba.org/ftp/rsync/rsync-3.0.9.tar.gz[root@ftp ~]# wget http://cloud.github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz 2、安装Rsync[root@ftp ~]# tar -zxvf rsync-3.0.9.tar.gz[root@ftp ~]# cd rsync-3.0.9[root@ftp rsync-3.0.9]# ./configure --prefix=/usr/local/rsync[root@ftp rsync-3.0.9]# make;make install 配置两台主机互信[root@ftp ~]# echo "111111">/etc/rsyncd.secrets[root@ftp ~]# less /etc/rsyncd.secrets test123*其中test123可以自己设置密码,rsyncd.secrets名字也可以自己设置;权限:要将/etc/rsyncd.secrets设置为root拥有, 且权限为600。[root@ftp ~]# chmod 600 /etc/rsyncd.secrets[root@ftp ~]# ll /etc/rsyncd.secrets-rw------- 1 root root 7 Jun9 21:24 /etc/rsyncd.secrets 3、安装inotify[root@ftp ~]# tar -zxvf inotify-tools-3.14.tar.gz [root@ftp ~]# cd inotify-tools-3.14[root@ftp inotify-tools-3.14]# ./configure --prefix=/usr/local/inotify[root@ftp inotify-tools-3.14]# make;make install 4、创建rsync复制脚本此项功能主要是将ftp端的目录/data/ftpdata里的内容,如果修改了(无论是添加、修改、删除文件)能够通过inotify监控到,并通过rsync实时的同步给backup的/data/ftpdata里,下面是通过shell脚本实现的。
请记住,在ftp端建立的密码文件,只有密码,没有用户名;而在备份服务端backup里建立的密码文件,用户名与密码都有。
权限:要将/etc/rsyncd.secrets设置为root拥有, 且权限为600。
192.168.1.2 (rsync+inotify)-----------FTP主节点
192.168.1.3 (rsync)-------------------backup备份节点
实验目的:实现文件实时同步
FTP主节点(192.168.1.2)-------> 文件备份节点(192.168.1.3)
一、FTP主节点(需同时安装rsync+inotify)1、准备软件包[root@ftp ~]# mkdir /mnt/ftpdata[root@ftp ~]# wget http://rsync.samba.org/ftp/rsync/rsync-3.0.9.tar.gz[root@ftp ~]# wget http://cloud.github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz 2、安装Rsync[root@ftp ~]# tar -zxvf rsync-3.0.9.tar.gz[root@ftp ~]# cd rsync-3.0.9[root@ftp rsync-3.0.9]# ./configure --prefix=/usr/local/rsync[root@ftp rsync-3.0.9]# make;make install 配置两台主机互信[root@ftp ~]# echo "111111">/etc/rsyncd.secrets[root@ftp ~]# less /etc/rsyncd.secrets test123*其中test123可以自己设置密码,rsyncd.secrets名字也可以自己设置;权限:要将/etc/rsyncd.secrets设置为root拥有, 且权限为600。[root@ftp ~]# chmod 600 /etc/rsyncd.secrets[root@ftp ~]# ll /etc/rsyncd.secrets-rw------- 1 root root 7 Jun9 21:24 /etc/rsyncd.secrets 3、安装inotify[root@ftp ~]# tar -zxvf inotify-tools-3.14.tar.gz [root@ftp ~]# cd inotify-tools-3.14[root@ftp inotify-tools-3.14]# ./configure --prefix=/usr/local/inotify[root@ftp inotify-tools-3.14]# make;make install 4、创建rsync复制脚本此项功能主要是将ftp端的目录/data/ftpdata里的内容,如果修改了(无论是添加、修改、删除文件)能够通过inotify监控到,并通过rsync实时的同步给backup的/data/ftpdata里,下面是通过shell脚本实现的。
#!/bin/bash SRC=/data/ftpdata/ DST=root@192.168.1.3::ftpdata /usr/local/inotify/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format'%T %w%f' -e modify,delete,create,attrib $SRC| while read files do /usr/bin/rsync -vzrtopg --delete --password-file=/etc/rsyncd.secrets$SRC $DST> /dev/null done:wq[root@ftp ~]# chmod 755 /opt/rsync.sh rsync.sh脚本加入开机启动项[root@ftp ~]# echo "/opt/rsync.sh" >> /etc/rc.local 防火墙开启rsync端口:873[root@ftp ~]# vim /etc/sysconfig/iptables添加:-A INPUT -m state --state NEW -m tcp -p tcp --dport 873 -jACCEPT重启:[root@ftp ~]# /etc/init.d/iptables restart说明:源机器主要是一个inotify的监控脚本,这个脚本如同一个守护进程,会一直运行监控着相应目录的增删减动作,一经发现,立即运行rsync进行同步(推送),不要担心源目录下的文件权限与客户机的不一致,只要源机能读取到,推送过去的文件或目录,客户机都会根据rsyncd.conf文件配置的uid,gid进行重置。二、备份服务器(rsync)1、准备工作创建备份目录:
[root@backup ~]# mkdir /data/ftpdata2、准备软件包
[root@backup ~]# wget [root@backup' target='_blank'>http://rsync.samba.org/ftp/rsync/rsync-3.0.9.tar.gz3、安装rsync(备份服务器只安装rsync)
[root@backup ~]# tar -zxvf rsync-3.0.9.tar.gz [root@backup ~]# cd rsync-3.0.9 [root@backup rsync-3.0.9]# ./configure --prefix=/usr/local/rsync [root@backup rsync-3.0.9]# make;make install4、建立用户与密码认证文件
[root@backup ~]# echo "root:test123" > /etc/rsyncd.secrets [root@backup ~]# less /etc/rsyncd.secrets root:test123注意:
请记住,在ftp端建立的密码文件,只有密码,没有用户名;而在备份服务端backup里建立的密码文件,用户名与密码都有。
权限:要将/etc/rsyncd.secrets设置为root拥有, 且权限为600。
[root@backup ~]#chmod 600 /etc/rsyncd.secrets5、建立rsync配置文件
[root@backup ~]# vim /etc/rsyncd.conf uid = root gid = root port = 873 use chroot = yes read only = yes hosts allow=192.168.1.0/255.255.255.0 hosts deny=* max connections = 5 log file =/var/log/rsyncd.log pid file =/var/run/rsyncd.pid lock file =/var/run/rsyncd.lock log format = %t %a %m %f%b syslog facility = local3 timeout = 300 [ftpdata] path = /data/ftpdata list = no read only = no ignore errors auth users = root secrets file =/etc/rsyncd.secrets:wq 启动rsync服务
[root@backup ~]# /usr/local/rsync/bin/rsync --daemon--config=/etc/rsyncd.conf [root@backup ~]# ps -ef |grep rsyncRsync服务加入开机启动项
[root@backup ~]# echo "/usr/local/rsync/bin/rsync --daemon --config=/etc/rsyncd.conf" >> /etc/rc.local防火墙开启rsync端口:873
[root@backup ~]# vim /etc/sysconfig/iptables添加:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 873 -jACCEPT重启:
[root@backup ~]# /etc/init.d/iptables restart现在rsync与inotify在ftp端安装完成,rsync在备份服务器backup端也安装完成! 重启
[root@ftp ~]# reboot [root@backup ~]# reboot三、测试验证1、在ftp端/data/ftpdata 目录上创建一个文件夹:
[root@ftp ftpdata]# mkdir zl2、在backup端查看/data/ftpdata目录是否相同;
[root@backup ~]# ll /data/ftpdata/四、备份与恢复1、手动备份192.168.1.2---------->192.168.1.3
[root@ftp ~]# /usr/bin/rsync -vzrtopg --delete--password-file=/etc/rsyncd.secrets /data/ftpdata/ root@192.168.1.3::ftpdata2、手动恢复192.168.1.3 ---------->192.168.1.2
[root@ftp ~]# /usr/bin/rsync -vzrtopg --delete--password-file=/etc/rsyncd.secrets root@192.168.1.3::ftpdata /data/ftpdata/五、常见问题:upper limit on inotify watches reached!解决:
echo 81920 > /proc/sys/fs/inotify/max_user_watches本文出自 “冷水泡茶” 博客,请务必保留此出处http://miaocbin.blog.51cto.com/689091/1662466
相关文章推荐
- 【Android基础学习】动态设置 listView的高度,解决scrollView中嵌套listview时显示不全的问题
- Android在ScrollView中嵌套ListView,ListView高度设置问题
- 通过动态设置ListView高度来解决ScollView与ListView互相嵌套的问题
- 动态设置ScrollView里面的ListView的高度
- 通过动态设置ListView高度来解决ScollView与ListView互相嵌套的问题
- scrollview嵌套listview、gridview时全面展示重新设置高度的工具类
- android scrollview 嵌套 Viewpager, Viewpager 不能动态的设置高度,一直使用第一个fragment页面的高度
- ListView嵌套ScrollView后,设置dividerHeight属性后高度计算
- 计算并设置ListView的高度,防止嵌套ScrollView监听出现问题,(两种方法,一种自定义,一种测量)
- ScrollView嵌套GridView,自定义Gridview动态设置Item的高度,屏幕适配
- scrollview嵌套listview后设置listview的高度
- 在ScrollView中嵌套ListView时,需要根据内容来设置listView的高度
- 实现ScrollView中包含ListView,动态设置ListView的高度(listview不能显示全,不能正确计算item的高度)
- 关于ListView head 动态设置高度
- ScrollView里面嵌套Listview调整listview的高度
- 为了解决scrollview和listview冲突 设置了listview的高度 结果进页面就不是在顶部了 如何才能解决该情况
- ListView中根据手机屏幕高度动态设置只显示一屏幕的item个数
- ScrollView 嵌套listview 如果子item数量多的话 listview高度不准确问题
- Android 当ScrollView里面嵌套Listview时计算高度
- ListView中根据手机屏幕高度动态设置只显示一屏幕的item个数