|
http://blog.sina.com.cn/s/blog_a6e8043c0102xzqe.html 1.sysrepo是干什么的 sysrepo是一個(gè)數(shù)據(jù)庫(kù)??梢杂脕?lái)保存可讀可寫(xiě)的配置,例如IP,netmask。你可以坐在家里,給遠(yuǎn)端的設(shè)備的sysrepo下修改配置命令。 另外遠(yuǎn)端設(shè)備還有一些只讀的狀態(tài),也可以讀回來(lái),例如溫度。 2.sysrepo的訂閱功能 訂閱實(shí)際上就是回調(diào)函數(shù)。 例如我們的程序告訴sysrepo,我們要訂閱/net/eth0/ip這個(gè)xml地址,當(dāng)有人發(fā)消息給sysrepo,寫(xiě)這個(gè)路徑時(shí),sysrepo就會(huì)告訴我們這個(gè)xml發(fā)生變化了,我們就執(zhí)行實(shí)際的操作。 3.sysrepo的修改配置 修改配置用寫(xiě)xml路徑的方法, 例如寫(xiě)xml路徑/net/eth0/ip,那么sysrepo就會(huì)把修改的信息寫(xiě)到此路徑中,保存到sysrepo的數(shù)據(jù)庫(kù)中。 但是sysrepo并沒(méi)有去做修改ip的實(shí)際工作,這個(gè)實(shí)際工作是怎么完成的呢? sysrepo提供了一個(gè)回調(diào)函數(shù),我們只要把這個(gè)回調(diào)函數(shù)寫(xiě)好就行。 當(dāng)寫(xiě)xml路徑時(shí),sysrepo就會(huì)調(diào)用回調(diào)函數(shù),完成實(shí)際的工作。 sysrepo實(shí)際只是保存配置,并調(diào)用回調(diào)函數(shù)這兩件事。 完成一個(gè)修改配置的操作,共需要3個(gè)程序,一個(gè)是發(fā)命令的程序,一個(gè)收命令的sysrepo,另外我們自己還要寫(xiě)個(gè)程序,接收sysrepo發(fā)過(guò)來(lái)的修改配置的路徑,我們自己的程序發(fā)現(xiàn)是要修改ip的路徑,那么就改ip了。 4.sysrepo返回狀態(tài) 和2類似,我們的程序收到讀某個(gè)路徑的消息,就把數(shù)據(jù)寫(xiě)到指定路徑中就可以 sysrepo(2018-02-19 17:56:56)1.建議先用ubuntu裝sysrepo 2. sysrepo例子使用說(shuō)明 2.0 說(shuō)明 sysrepoctl用來(lái)安裝yang文件 sysrepocfg用來(lái)加載xml文件 幫助看 `sysrepoctl -h` or `sysrepocfg -h`. 2.1 $ sudo sysrepoctl --install --yang=/home/leim/sysrepo/examples/yang/ietf-interfaces@2014-05-08.yang --owner=用戶組:用戶名 --permissions=644 $ sudo sysrepoctl --install --yang=/home/user/sysrepo/examples/yang/iana-if-type.yang --owner=leim:leim --permissions=644 看 安裝 $ sysrepoctl -l 2.2 啟動(dòng)sysrepod /usr/bin/sysrepod 2.3 導(dǎo)入xml配置文件 $ sysrepocfg --import=ietf-interfaces.data.xml --format=xml --datastore=startup ietf-interfaces 2.4 在build/example目錄下有已經(jīng)編譯好的例子 $ ./sr_get_item_example [INF] Connected to daemon Sysrepo Engine at socket=/var/run/sysrepod.sock /ietf-interfaces:interfaces/interface[name='eth0']/enabled = true 3.其它例子 sr_get_items_example 查看多個(gè) cat /etc/sysrepo/data/ietf-interfaces.startup sr_set_item_example sr_delete_item_example sr_get_items_iter_example |
|
|
來(lái)自: raymoon_sure > 《待分類》