Inotify 是文件系統(tǒng)事件監(jiān)控機(jī)制,計(jì)劃包含在即將發(fā)布的 Linux 內(nèi)核中作為 dnotify 的有效替代。dnotify 是較早內(nèi)核支持的文件監(jiān)控機(jī)制。Inotify一種強(qiáng)大的、細(xì)粒度的、異步的機(jī)制,它滿足各種各樣的文件監(jiān)控需要,不僅限于安全和性能。下面讓我們一起學(xué)習(xí)如何安裝 inotify 和如何構(gòu)建一個(gè)示例用戶空間應(yīng)用程序來(lái)響應(yīng)文件系統(tǒng)事件。
1.1同步工具安裝
1、輸入命令:su root,切換到超級(jí)用戶。
2、先查看linux的內(nèi)核是否支持inotify,支持inotify的內(nèi)核最小為2.6.13,輸入命令:uname –a。如下圖所示,內(nèi)核為2.6.27,支持inotify:
注:如果內(nèi)核低于2.6.13,請(qǐng)升級(jí)內(nèi)核或重新安裝內(nèi)核版本更高的linux系統(tǒng)。
3、建立同步ssh信任關(guān)系,輸入命令:cd $HOME,進(jìn)入用戶根目錄。
輸入命令:ssh-keygen -t rsa (會(huì)出現(xiàn)幾個(gè)提示信息,一直按回車(chē)即可)。
會(huì)在 cd $HOME/.ssh/目錄下生成2個(gè)文件id_rsa、id_rsa.pub。
輸入命令:cp id_rsa.pub authorized_keys,將id_rsa.pub拷貝成authorized_keys。
將授權(quán)密鑰分發(fā)到iEPG服務(wù)器(192.168.100.101)上,輸入命令:
scp ~/.ssh/authorized_keys root@192.168.100.101:/root/.ssh/
如果有多臺(tái)下載服務(wù)器,每臺(tái)都須運(yùn)行一次上面的密鑰下發(fā)命令。
4、通過(guò)如下命令查看系統(tǒng)是否支持inotify:ll /proc/sys/fs/inotify
如果有如下輸出,表示系統(tǒng)內(nèi)核已經(jīng)支持inotify:
total 0
-rw-r--r-- 1 root root 0 Feb 21 01:15 max_queued_events
-rw-r--r-- 1 root root 0 Feb 21 01:15 max_user_instances
-rw-r--r-- 1 root root 0 Feb 21 01:15 max_user_watches
5、取得軟件包inotify-tools-3.13.tar.gz,放在/tmp下。
6、輸入命令:tar zvxf inotify-tools-3.13.tar.gz,解壓軟件包。
7、輸入命令:cd inotify-tools-3.13,進(jìn)入解壓后的目錄。
8、輸入命令:./configure
9、輸入命令:make
10、輸入命令:make install
11、在系統(tǒng)下執(zhí)行命令:man inotify、 man inotifywait、 man inotifywatch即可得到相應(yīng)的幫助信息,表示inotify安裝成功。
12、輸入命令:rsync,查看rsync是否安裝。
rsync一般是系統(tǒng)默認(rèn)安裝,如果沒(méi)有安裝就取得軟件包,安裝方法同inotify。
同步腳本使用
1、取得syncapps.sh腳本























































































root@10.10.80.76:/root/files/
3、輸入命令:chmod +x *.sh,給文件賦可執(zhí)行權(quán)限。
4、輸入命令:./syncapps.sh start,啟動(dòng)同步工具。
啟動(dòng)同步工具的輸入命令:./syncapps.sh start
停止同步工具的輸入命令:./syncapps.sh stop
重啟同步工具的輸入命令:./syncapps.sh restart
查看同步工具狀態(tài)的輸入命令:./syncapps.sh status
link
首先閱讀此文之前,最好閱讀
http://hi.baidu.com/maml897/blog/item/324bf86369961ed4e6113a5c.html
http://hi.baidu.com/maml897/blog/item/fa5f0a7e1edef00129388ae2.html
其次還要知道一點(diǎn)常識(shí),就是我們?cè)谟浭卤镜纫恍┪谋竟ぞ咧?寫(xiě)的都是字符,沒(méi)有誰(shuí)會(huì)去寫(xiě)字節(jié)(可以寫(xiě)字節(jié),但是要用具特殊的編輯器),但是其實(shí),我們的寫(xiě)的是字符,但磁盤(pán)上真實(shí)存儲(chǔ)的是字節(jié)。
這里就出現(xiàn)了轉(zhuǎn)換的問(wèn)題,當(dāng)然,這些問(wèn)題記事本本身會(huì)幫助我們解決。我們打開(kāi)一個(gè)記事本,然后文件--另存為,你會(huì)發(fā)現(xiàn)有幾種存儲(chǔ)格式供您選擇,
ANSI格式:就是ascii的格式
Unicode格式:采用國(guó)際通用的編碼存儲(chǔ)
Unicode big endian格式:這個(gè)和unicode有點(diǎn)區(qū)別,但我也不明太具體的不同
UTF-8:采用utf-8存儲(chǔ),看過(guò)上面的兩篇文章,你會(huì)十分的了解這里介紹的編碼。Utf-8,是unicode的一種實(shí)現(xiàn)方式。
例如我們?cè)谟浭卤纠锩孑斎?#8220;連通”兩個(gè)字。
1.我們另存記事本的時(shí)候,采用unicode存儲(chǔ),那么雖然我們看到的字符還是“連通”,但是其實(shí)存儲(chǔ)在磁盤(pán)上的字節(jié) 確實(shí)
8FDE(連) 901A (通),這個(gè)是規(guī)定的,unicode是國(guó)際上規(guī)定的,給世界上的每個(gè)字符分配的唯一編碼。獲取某個(gè)字符的unicode的方法,可以去網(wǎng)上查找,最簡(jiǎn)單的方法,就是打開(kāi)word文檔,輸入字符,把光標(biāo)移動(dòng)到字符后面,按alt+x,word會(huì)自動(dòng)把字符轉(zhuǎn)換成unicode編碼,這里呢我們也可以看到,用unicode存儲(chǔ)漢字啊,每個(gè)漢字占用兩個(gè)字節(jié)。
2.我們另存記事本的時(shí)候,采用utf-8存儲(chǔ),雖然我們看到的字符還是“連通”,但是其實(shí)存儲(chǔ)在磁盤(pán)上的字節(jié) 確實(shí)已經(jīng)變化了,這時(shí)候存儲(chǔ)的是
E8 BF 9E (連)E9 80 9A(通)。這就是utf-8的存儲(chǔ)的編碼,至于utf-8為什么這樣存儲(chǔ),你可以閱讀上面的兩篇文章來(lái)了解,可以看到,utf-8使用3個(gè)字節(jié)存儲(chǔ)一個(gè)漢字。
另外我們還要知道的就是:電腦怎么區(qū)分一個(gè)記事本是用什么存儲(chǔ)的呢?
換句話說(shuō),為什么我用unicode存儲(chǔ)的8FDE(連) 901A (通),電腦就知道這是unicode編碼,從而使用unicode解碼,還原為“連通”呢?電腦又怎么知道E8 BF 9E (連)E9 80 9A(通)這是按照utf-8的存儲(chǔ)方式存儲(chǔ)的呢?
這里有一點(diǎn)標(biāo)記,就是在存儲(chǔ)字節(jié)的時(shí)候,記事本首先在最前面 標(biāo)明,這個(gè)記事本下面的存儲(chǔ)格式 是utf-8,還是unicode。
例如,
1.unicode存儲(chǔ)“連通”。磁盤(pán)字節(jié)真實(shí)存儲(chǔ)的其實(shí)是:
FF FE 8FDE 901A
前兩個(gè)FF FE是標(biāo)記,告訴電腦,這個(gè)文檔的存儲(chǔ)方式是unicode
2.utf-8存儲(chǔ)“連通”。磁盤(pán)字節(jié)真實(shí)存儲(chǔ)的其實(shí)是:
EF BB BF E8 BF 9E E9 80 9A
前三個(gè)EF BB BF 告訴電腦 這個(gè)文檔是utf-8存儲(chǔ)的
根據(jù)不同編碼的特點(diǎn)和標(biāo)志,對(duì)一個(gè)文本文件判斷編碼方法如下
1 . UTF7 所有字節(jié)的內(nèi)容不會(huì)大于127,也就是不大于&HFF
2 . UTF8 起始三個(gè)字節(jié)為"0xEF 0xBB 0xBF"
3 . UTF-16BE 起始三個(gè)字節(jié)為"0xFE 0xFF"
4 . UTF-16LE 起始三個(gè)字節(jié)為"0xFF 0xFE"

































































































1.導(dǎo)入cglib-nodep-2.1.3.jar
2.在javaBean 對(duì)象中重寫(xiě)toString()方法 比如是UserManageVo.Java
public String toString(){
return BeanTools.getBeanDesc(UserManageVo.this);
}
java 代碼

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

java代碼
/Files/yjlongfei/beanUtil.rar 一、簡(jiǎn)介:
BeanUtils提供對(duì)Java反射和自省API的包裝。其主要目的是利用反射機(jī)制對(duì)JavaBean的屬性進(jìn)行處理。我們知道,一個(gè)JavaBean通常包含了大量的屬性,很多情況下,對(duì)JavaBean的處理導(dǎo)致大量get/set代碼堆積,增加了代碼長(zhǎng)度和閱讀代碼的難度。
二、用法:
如果你有兩個(gè)具有很多相同屬性的JavaBean,我們對(duì)一個(gè)對(duì)象copy 到另外一個(gè)對(duì)象,可用用下面的方法。
1. 導(dǎo)入commons-beanutils.jar
2. 導(dǎo)入commons-logging-1.1.jar
3. 構(gòu)建UserManageVo , UserManageEvent 對(duì)象 ,這兩個(gè)對(duì)象的屬性相同
4. 調(diào)用 BeanUtils.copyProperties(UserManageVo, UserManageEvent)
java 主要代碼

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

java代碼:
/Files/yjlongfei/test.rar
| |||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
27 | 28 | 29 | 30 | 1 | 2 | 3 | |||
4 | 5 | 6 | 7 | 8 | 9 | 10 | |||
11 | 12 | 13 | 14 | 15 | 16 | 17 | |||
18 | 19 | 20 | 21 | 22 | 23 | 24 | |||
25 | 26 | 27 | 28 | 29 | 30 | 31 | |||
1 | 2 | 3 | 4 | 5 | 6 | 7 |
常用鏈接
留言簿
隨筆分類(lèi)
- EJB3.0
- Hibernate
- iBATIS
- java(3)
- linux(1)
- myEclipse
- Oracle
- Pushlet
- Spring
- struts2
- Tomcat
- WebService(1)
隨筆檔案
myeclipse6.5上基于JAX-WS開(kāi)發(fā)Webservice(中文示例)
搜索
最新評(píng)論

- 1.?re: MyEclipse6.5上基于JAX-WS開(kāi)發(fā)Webservice(中文示例)
- 評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
- --hhs
- 2.?re: MyEclipse6.5上基于JAX-WS開(kāi)發(fā)Webservice(中文示例)[未登錄](méi)
- 順便再說(shuō)一下,1L純2B,大家不要理它~~~~~~~~
- --test
- 3.?re: MyEclipse6.5上基于JAX-WS開(kāi)發(fā)Webservice(中文示例)[未登錄](méi)
- 內(nèi)容介紹的非常好,非常適合新人 。謝謝。。
- --test
- 4.?re: MyEclipse6.5上基于JAX-WS開(kāi)發(fā)Webservice(中文示例)
- 我是新手,你寫(xiě)的很好,一看就明白
- --whily
- 5.?re: MyEclipse6.5上基于JAX-WS開(kāi)發(fā)Webservice(中文示例)
-
@nishilaji
樓上的太沒(méi)素質(zhì)了,人家辛辛苦苦寫(xiě)的這么詳細(xì),對(duì)于初學(xué)者來(lái)說(shuō)就希望有這種細(xì)致的文檔介紹。在此我很感謝樓主,謝謝你,讓我很清楚明了的學(xué)會(huì)了這個(gè)實(shí)現(xiàn)方法! - --gxylh