苹果平板mi mi 电脑怎么关掉按键id.mi. con解锁手机

基于snmp4j取得linux系统的cpu、ram信息
ps:希望做过snmp的大拿能过来解答一下。
& && &菜鸟通过 cat /proc/meminfo 得到linux系统的内存信息:
& && &大家可以看到MemTotal: 2071272KB&
& && && && && && && &&&MemFree:97972KB
& &&&下面菜鸟同snmp4j得到的内存信息:
& &&&1.3.6.1.4.1..0 = 2071272
& &&&1.3.6.1.4.1..0 = 97964
& &&&1.3.6.1.4.1..0 = 4259492
& &&&具体的OID信息可以看这里:
& & 给大家截了一个内存信息的OID:
& &&&可以看到:Total RAM Free: .1.3.6.1.4.1..0&
& && && && && && & Total RAM used: .1.3.6.1.4.1..0
& & 菜鸟不知为什么会出现矛盾的地方:通过 “cat /proc/meminfo” 得到 MemFree:97972KB,而通过snmp4j得到Total RAM Free:1.3.6.1.4.1..0 = 4259492,然而却与Total RAM used: .1.3.6.1.4.1..0 =&&97964 大致相同(肯定会有些许不同),不知道这是为什么?
& & 大拿一定会知道的,望解答!
& & 告诉菜鸟一下snmp4j计算cpu,内存,磁盘利用率等一些问题的方法。
以下是问题补充:
:谢谢各位园友的高见,我对cpu利用率的计算方法有点不了解,请看猛击~ 博客园HighChartS cpu利用率动态图(Java版)/haifg/p/3217699.html 文章最后给出的方法,时间间隔怎么定,项目中cup利用率是怎么算的?是文章给出的第一种方法吗?
* 获取网络设备信息的公共函数
* @param oip
* @param stOID
* @return list
private List getSNMPList(String oip,String stOID) {
Target target = getTarget(oip + &/& + &161&);
List list =
//Example for Sending an Asynchronous Message
DefaultUdpTransportMapping udpTransportMap = new DefaultUdpTransportMapping();
//udpTransportMap.listen();
Snmp snmp = new Snmp(udpTransportMap);
snmp.listen();
PDUFactory pf = new DefaultPDUFactory(PDU.GET);
TableUtils tu = new TableUtils(snmp, pf);
OID[] columns = new OID[1];
columns[0] = new VariableBinding(new OID(stOID)).getOid();
list = tu.getTable(target, columns, null, null);
snmp.close();
}catch (UnsupportedEncodingException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}catch (Exception e) {
e.printStackTrace();
* 获取CPU信息
* @param oip
* @return getvalue
public List getSNMP_CPU(String oip) {
List getvalue = new ArrayList();
String CPU_OID = &.1.3.6.1.2.1.25.3.3&;//查看CPU信息的OID值
List list = getSNMPList(oip,CPU_OID);
List SylLs = new ArrayList();//存放组集合
List OidLs = new ArrayList();//存放OID的索引值对应值
List tempLs = new ArrayList();//存放负载对应值
for (int i = 0; i & list.size(); i++) {
TableEvent te = (TableEvent) list.get(i);
VariableBinding[] vb = te.getColumns();
if(vb==null){
for (int j = 0; j & vb. j++) {
String _sid = vb[j].getOid().toString().substring(21,22).trim();//获取键
String _oid = vb[j].getOid().toString().substring(23,24).trim();//获id
Variable _s = vb[j].getVariable();
String _sva = &&;
//类型判断
if (_s instanceof OctetString) {
_sva = new String(((OctetString)_s).getValue(),&UTF-8&);
_sva = _s.toString();
if(Integer.parseInt(_sid)==1){//OID的索引值
OidLs.add(_oid);
SylLs.add(_sva);
if(Integer.parseInt(_sid)==2){
tempLs.add(_sva);
getvalue.add(OidLs);
getvalue.add(SylLs);
getvalue.add(tempLs);
}catch (NumberFormatException e) {
e.printStackTrace();
}catch (UnsupportedEncodingException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}catch (IllegalArgumentException e) {
e.printStackTrace();
}catch (RuntimeException e) {
e.printStackTrace();
}catch (Exception e) {
e.printStackTrace();
以上是通过SNMP4J获取CPU的方法,得到的三个值的平均值就是你现在CPU占用率了,你可以写一个线程来单独跑这个函数,就可以实时的显示CPU占用率。
公共实现函数已经给你,获取其他信息和获取CPU的方法大致一样,传对应的OID号,解析即可得到!
--- 共有 6 条评论 ---
谢谢各位园友的高见,我对cpu利用率的计算方法有点不了解,请看猛击~ 博客园HighChartS cpu利用率动态图(Java版)/haifg/p/3217699.html 文章最后给出的方法,时间间隔怎么定,项目中cup利用率是怎么算的?是文章给出的第一种方法吗?
: 好吧!共同学习!
: 谢谢 可以给个联系方式吗?最近项目要做个简单的监控
:获取得到CPU相关信息的List集合即:getvalue.
取出最后一组: List tempLs = (List) ls.get(2);// 存放负载对应值
然后for循环遍历出来并相加除以4就是得到当前CPU的使用率了!
你说的那三个值的平均值 是 list 里面 3个list 和平均值?比如list里面的数据时{[1, 2],[0.0, 0.0],[8, 10]}
那么平均值是((1+2)+(0+0)+(8+10))/3=10.5?
如上图所示:第三组CPU负载的值相加再平均一下就得到的是当前CPU的占用率。
有不明白的再问我吧!
这段代码挺好的, 请问: snmp获得常用 信息的OID都有哪些?&
比如下面这个,是获取cpu信息的,但是执行不了
.1.3.6.1.4.1..0
这个跟snmp4j没有关系,跟mib有关系
Total RAM Free:1.3.6.1.4.1..0 这个值包含了swap部分,也就是虚拟内存, 获取物理空闲内存,可以用.1.3.6.1.4.1.。顺便这里提醒你一下,linux的空闲内存的计算需要注意下,有cache部分需要注意处理。
一种理解cache的部分是可用内存,因为cache部分在有应用需要内存的时候可以分配的,所以要算可用内存。(这种做法更容易接受)
另一种理解是,从物理上说,cache部分的内存,在内存中的确是有数据的,只不过这个数据是磁盘io的缓存数据而已。(这个做法的结果是,不论打开多少程序,内存利用率总是很高,没有什么实际意义)
另外磁盘的mib可以去google,应该有个叫host-mib的
谢谢, 我现在的这个项目,就是使用snmp进行网络控制的,真的谢谢!
谢谢各位园友的高见,我对cpu利用率的计算方法有点不了解,请看猛击~ 博客园HighChartS cpu利用率动态图(Java版)/haifg/p/3217699.html 文章最后给出的方法,时间间隔怎么定,项目中cup利用率是怎么算的?是文章给出的第一种方法吗?
snmp4j要求知道硬件的什么号吧?不是很通用,之前研究过,想用来监控路由,结果需要知道路由的一个什么号,而且每个厂商还不一样。
引用来自“nile”的答案 这个跟snmp4j没有关系,跟mib有关系
Total RAM Free:1.3.6.1.4.1..0 这个值包含了swap部分,也就是虚拟内存, 获取物理空闲内存,可以用.1.3.6.1.4.1.。顺便这里提醒你一下,linux的空闲内存的计算需要注意下,有cache部分需要注意处理。
一种理解cache的部分是可用内存,因为cache部分在有应用需要内存的时候可以分配的,所以要算可用内存。(这种做法更容易接受)
另一种理解是,从物理上说,cache部分的内存,在内存中的确是有数据的,只不过这个数据是磁盘io的缓存数据而已。(这个做法的结果是,不论打开多少程序,内存利用率总是很高,没有什么实际意义)
另外磁盘的mib可以去google,应该有个叫host-mib的注:本人能力有限,如遇不足之处,还请指正!
& QQ交流群:&&您的位置: &
SNMP ENGINE“诱发”交换机CPU高负载
优质期刊推荐求大神解决Linux NET-SNMP代理扩展问题 - 21QA工程师问答社区
我是用动态加载so文件的方式扩展的,先说我遇到的问题,我用mib2c将我的mib转换成c,做了一些修改,然后编译成so库,在snmpd.conf中加载了,重启snmpd的时候可以调到init函数,但是执行snmpget的时候会超时,调不到我的函数,下面是我的MIB文件
BaoyunMib DEFINITIONS::=BEGIN
enterprises,MODULE-IDENTITY,OBJECT-TYPE,NOTIFICATION-TYPE,
Integer32 FROM SNMPv2-SMI
DisplayString FROM SNMPv2-TC;
newpost OBJECT IDENTIFIER::={enterprises 777}
CONTROL OBJECT IDENTIFIER::={newpost 2}
Configuration OBJECT IDENTIFIER::={CONTROL 7}
ManagedElementTable
OBJECT-TYPE
SYNTAX SEQUENCE OF ManagedElementEntry
MAX-ACCESS
not-accessible
DESCRIPTION "This table is ..."
::={Configuration 1}
ManagedElementEntry
OBJECT-TYPE
ManagedElementEntry
MAX-ACCESS
not-accessible
DESCRIPTION
"An entry containing ..."
::= { ManagedElementTable 1 }
ManagedElementEntry ::=
SEQUENCE {
InterfaceIndex,
ManagedElementId
DisplayString,
ManagedElementUserLabel
DisplayString,
ManagedElementEntryRowStatus
InterfaceIndex ::= TEXTUAL-CONVENTION
DISPLAY-HINT
DESCRIPTION
"A unique value"
Integer32 (1..)
Index OBJECT-TYPE
InterfaceIndex
MAX-ACCESS
DESCRIPTION
"A unique valu..."
::= { ManagedElementEntry 1 }
ManagedElementId
OBJECT-TYPE
DisplayString
MAX-ACCESS
read-write
DESCRIPTION
"machine status ."
::= { ManagedElementEntry 2 }
ManagedElementUserLabel OBJECT-TYPE
DisplayString
MAX-ACCESS
read-write
DESCRIPTION
"machine status ."
::= { ManagedElementEntry 3 }
ManagedElementEntryRowStatus OBJECT-TYPE
MAX-ACCESS
read-write
DESCRIPTION
"machine status ."
::= { ManagedElementEntry 4 }
下面是我的配置文件snmpd.conf
###############################################################################
# snmpd.conf:
An example configuration file for configuring the ucd-snmp snmpd agent.
###############################################################################
# This file is intended to only be as a starting point.
# configuration directives exist than are mentioned in this file.
# full details, see the snmpd.conf(5) manual page.
# All lines beginning with a '#' are comments and are intended for you
# to read.
All other lines are configuration commands for the agent.
###############################################################################
# Access Control
###############################################################################
# As shipped, the snmpd demon will only respond to queries on the
# system mib group until this file is replaced or modified for
# security purposes.
Examples are shown below about how to increase the
# level of access.
# By far, the most common question I get about the agent is "why won't
# it work?", when really it should be "how do I configure the agent to
# allow me to access it?"
# By default, the agent responds to the "public" community for read
# only access, if run out of the box without any configuration file in
The following examples show you other ways of configuring
# the agent so that you can change the community names, and give
# yourself write access to the mib tree as well.
# For more information, read the FAQ as well as the snmpd.conf(5)
# manual page.
# First, map the community name "public" into a "security name"
com2sec notConfigUser
# Second, map the security name into a group name:
securityModel securityName
notConfigGroup v1
notConfigUser
notConfigGroup v2c
notConfigUser
# Third, create a view for us to let the group have rights to:
# Make at least
snmpwalk -v 1 localhost -c public system fast again.
mask(optional)
systemview
.1.3.6.1.2.1.1
systemview
.1.3.6.1.2.1.25.1.1
# Finally, grant the group read-only access to the systemview view.
context sec.model sec.level prefix read
notConfigGroup ""
all none none
# -----------------------------------------------------------------------------
# Here is a commented out example configuration that allows less
# restrictive access.
# YOU SHOULD CHANGE THE "COMMUNITY" TOKEN BELOW TO A NEW KEYWORD ONLY
# KNOWN AT YOUR SITE.
YOU *MUST* CHANGE THE NETWORK TOKEN BELOW TO
# SOMETHING REFLECTING YOUR LOCAL NETWORK ADDRESS SPACE.
com2sec local
com2sec mynetwork localhost
group.name sec.model
#group MyRWGroup
#group MyROGroup
#group MyRWGroup
otherv3user
incl/excl subtree
## -or just the mib2 tree-
#view mib2
.iso.org.dod.internet.mgmt.mib-2 fc
context sec.model sec.level prefix read
#access MyROGroup ""
#access MyRWGroup ""
###############################################################################
# Sample configuration to make net-snmpd RFC 1213.
# Unfortunately v1 and v2c don't allow any user based authentification, so
# opening up the default config is not an option from a security point.
# WARNING: If you uncomment the following lines you allow write access to your
# snmpd daemon from any source! To avoid this use different names for your
# community or split out the write access to a different community and
# restrict it to your local network.
# Also remember to comment the syslocation and syscontact parameters later as
# otherwise they are still read only (see FAQ for net-snmp).
# First, map the community name "public" into a "security name"
#com2sec notConfigUser
# Second, map the security name into a group name:
securityModel
securityName
notConfigGroup
notConfigUser
notConfigGroup
notConfigUser
# Third, create a view for us to let the group have rights to:
# Open up the whole tree for ro, make the RFC 1213 required ones rw.
subtree mask(optional)
system.sysContact
system.sysName
system.sysLocation
interfaces.ifTable.ifEntry.ifAdminStatus
at.atTable.atEntry.atPhysAddress
at.atTable.atEntry.atNetAddress
ip.ipForwarding
ip.ipDefaultTTL
ip.ipRouteTable.ipRouteEntry.ipRouteDest
ip.ipRouteTable.ipRouteEntry.ipRouteIfIndex
ip.ipRouteTable.ipRouteEntry.ipRouteMetric1
ip.ipRouteTable.ipRouteEntry.ipRouteMetric2
ip.ipRouteTable.ipRouteEntry.ipRouteMetric3
ip.ipRouteTable.ipRouteEntry.ipRouteMetric4
ip.ipRouteTable.ipRouteEntry.ipRouteType
ip.ipRouteTable.ipRouteEntry.ipRouteAge
ip.ipRouteTable.ipRouteEntry.ipRouteMask
ip.ipRouteTable.ipRouteEntry.ipRouteMetric5
ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaIfIndex
ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaPhysAddress
ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaNetAddress
ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaType
tcp.tcpConnTable.tcpConnEntry.tcpConnState
egp.egpNeighTable.egpNeighEntry.egpNeighEventTrigger
snmp.snmpEnableAuthenTraps
# Finally, grant the group read-only access to the systemview view.
context sec.model sec.level prefix read
notConfigGroup ""
roview rwview none
###############################################################################
# System contact information
# It is also possible to set the sysContact and sysLocation system
# variables through the snmpd.conf file:
syslocation Unknown (edit /etc/snmp/snmpd.conf)
syscontact Root &root@localhost& (configure /etc/snmp/snmp.local.conf)
# Example output of snmpwalk:
% snmpwalk -v 1 localhost -c public system
system.sysDescr.0 = "SunOS name sun4c"
system.sysObjectID.0 = OID: enterprises.ucdavis.ucdSnmpAgent.sunos4
system.sysUpTime.0 = Timeticks: () 68 days, 22:32:55
system.sysContact.0 = "Me &me@somewhere.org&"
system.sysName.0 = "name"
system.sysLocation.0 = "Right here, right now."
system.sysServices.0 = 72
###############################################################################
# We do not want annoying "Connection from UDP: " messages in syslog.
# If the following option is commented out, snmpd will print each incoming
# connection, which can be useful for debugging.
dontLogTCPWrappersConnects yes
# -----------------------------------------------------------------------------
###############################################################################
# Process checks.
The following are examples of how to use the agent to check for
processes running on the host.
The syntax looks something like:
proc NAME [MAX=0] [MIN=0]
the name of the process to check for.
It must match
exactly (ie, http will not find httpd processes).
the maximum number allowed to be running.
Defaults to 0.
the minimum number to be running.
Defaults to 0.
Examples (commented out by default):
Make sure mountd is running
proc mountd
Make sure there are no more than 4 ntalkds running, but 0 is ok too.
proc ntalkd 4
Make sure at least one sendmail, but less than or equal to 10 are running.
proc sendmail 10 1
A snmpwalk of the process mib tree would look something like this:
# % snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.2
# enterprises.ucdavis.procTable.prEntry.prIndex.1 = 1
# enterprises.ucdavis.procTable.prEntry.prIndex.2 = 2
# enterprises.ucdavis.procTable.prEntry.prIndex.3 = 3
# enterprises.ucdavis.procTable.prEntry.prNames.1 = "mountd"
# enterprises.ucdavis.procTable.prEntry.prNames.2 = "ntalkd"
# enterprises.ucdavis.procTable.prEntry.prNames.3 = "sendmail"
# enterprises.ucdavis.procTable.prEntry.prMin.1 = 0
# enterprises.ucdavis.procTable.prEntry.prMin.2 = 0
# enterprises.ucdavis.procTable.prEntry.prMin.3 = 1
# enterprises.ucdavis.procTable.prEntry.prMax.1 = 0
# enterprises.ucdavis.procTable.prEntry.prMax.2 = 4
# enterprises.ucdavis.procTable.prEntry.prMax.3 = 10
# enterprises.ucdavis.procTable.prEntry.prCount.1 = 0
# enterprises.ucdavis.procTable.prEntry.prCount.2 = 0
# enterprises.ucdavis.procTable.prEntry.prCount.3 = 1
# enterprises.ucdavis.procTable.prEntry.prErrorFlag.1 = 1
# enterprises.ucdavis.procTable.prEntry.prErrorFlag.2 = 0
# enterprises.ucdavis.procTable.prEntry.prErrorFlag.3 = 0
# enterprises.ucdavis.procTable.prEntry.prErrMessage.1 = "No mountd process running."
# enterprises.ucdavis.procTable.prEntry.prErrMessage.2 = ""
# enterprises.ucdavis.procTable.prEntry.prErrMessage.3 = ""
# enterprises.ucdavis.procTable.prEntry.prErrFix.1 = 0
# enterprises.ucdavis.procTable.prEntry.prErrFix.2 = 0
# enterprises.ucdavis.procTable.prEntry.prErrFix.3 = 0
Note that the errorFlag for mountd is set to 1 because one is not
running (in this case an rpc.mountd is, but thats not good enough),
and the ErrMessage tells you what's wrong.
The configuration
imposed in the snmpd.conf file is also shown.
Special Case:
When the min and max numbers are both 0, it assumes
you want a max of infinity and a min of 1.
# -----------------------------------------------------------------------------
###############################################################################
# Executables/scripts
You can also have programs run by the agent that return a single
line of output and an exit code.
Here are two examples.
exec NAME PROGRAM [ARGS ...]
A generic name. The name must be unique for each exec statement.
The program to run.
Include the path!
optional arguments to be passed to the program
# a simple hello world
exec echotest /bin/echo hello world
# Run a shell script containing:
# #!/bin/sh
# echo hello world
# echo hi there
this has been specifically commented out to prevent
# accidental security holes due to someone else on your system writing
# a /tmp/shtest before you do.
Uncomment to use it.
#exec shelltest /bin/sh /tmp/shtest
# % snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.8
# enterprises.ucdavis.extTable.extEntry.extIndex.1 = 1
# enterprises.ucdavis.extTable.extEntry.extIndex.2 = 2
# enterprises.ucdavis.extTable.extEntry.extNames.1 = "echotest"
# enterprises.ucdavis.extTable.extEntry.extNames.2 = "shelltest"
# enterprises.ucdavis.extTable.extEntry.extCommand.1 = "/bin/echo hello world"
# enterprises.ucdavis.extTable.extEntry.extCommand.2 = "/bin/sh /tmp/shtest"
# enterprises.ucdavis.extTable.extEntry.extResult.1 = 0
# enterprises.ucdavis.extTable.extEntry.extResult.2 = 35
# enterprises.ucdavis.extTable.extEntry.extOutput.1 = "hello world."
# enterprises.ucdavis.extTable.extEntry.extOutput.2 = "hello world."
# enterprises.ucdavis.extTable.extEntry.extErrFix.1 = 0
# enterprises.ucdavis.extTable.extEntry.extErrFix.2 = 0
# Note that the second line of the /tmp/shtest shell script is cut
Also note that the exit status of 35 was returned.
# -----------------------------------------------------------------------------
###############################################################################
# disk checks
# The agent can check the amount of available disk space, and make
# sure it is above a set limit.
# disk PATH [MIN=100000]
mount path to the disk in question.
Disks with space below this value will have the Mib's errorFlag set.
Default value = 100000.
# Check the / partition and make sure it contains at least 10 megs.
disk / 10000
# % snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.9
# enterprises.ucdavis.diskTable.dskEntry.diskIndex.1 = 0
# enterprises.ucdavis.diskTable.dskEntry.diskPath.1 = "/" Hex: 2F
# enterprises.ucdavis.diskTable.dskEntry.diskDevice.1 = "/dev/dsk/c201d6s0"
# enterprises.ucdavis.diskTable.dskEntry.diskMinimum.1 = 10000
# enterprises.ucdavis.diskTable.dskEntry.diskTotal.1 = 837130
# enterprises.ucdavis.diskTable.dskEntry.diskAvail.1 = 316325
# enterprises.ucdavis.diskTable.dskEntry.diskUsed.1 = 437092
# enterprises.ucdavis.diskTable.dskEntry.diskPercent.1 = 58
# enterprises.ucdavis.diskTable.dskEntry.diskErrorFlag.1 = 0
# enterprises.ucdavis.diskTable.dskEntry.diskErrorMsg.1 = ""
# -----------------------------------------------------------------------------
###############################################################################
# load average checks
# load [1MAX=12.0] [5MAX=12.0] [15MAX=12.0]
If the 1 minute load average is above this limit at query
time, the errorFlag will be set.
Similar, but for 5 min average.
Similar, but for 15 min average.
# Check for loads:
#load 12 14 14
# % snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.10
# enterprises.ucdavis.loadTable.laEntry.loadaveIndex.1 = 1
# enterprises.ucdavis.loadTable.laEntry.loadaveIndex.2 = 2
# enterprises.ucdavis.loadTable.laEntry.loadaveIndex.3 = 3
# enterprises.ucdavis.loadTable.laEntry.loadaveNames.1 = "Load-1"
# enterprises.ucdavis.loadTable.laEntry.loadaveNames.2 = "Load-5"
# enterprises.ucdavis.loadTable.laEntry.loadaveNames.3 = "Load-15"
# enterprises.ucdavis.loadTable.laEntry.loadaveLoad.1 = "0.49" Hex: 30 2E 34 39
# enterprises.ucdavis.loadTable.laEntry.loadaveLoad.2 = "0.31" Hex: 30 2E 33 31
# enterprises.ucdavis.loadTable.laEntry.loadaveLoad.3 = "0.26" Hex: 30 2E 32 36
# enterprises.ucdavis.loadTable.laEntry.loadaveConfig.1 = "12.00"
# enterprises.ucdavis.loadTable.laEntry.loadaveConfig.2 = "14.00"
# enterprises.ucdavis.loadTable.laEntry.loadaveConfig.3 = "14.00"
# enterprises.ucdavis.loadTable.laEntry.loadaveErrorFlag.1 = 0
# enterprises.ucdavis.loadTable.laEntry.loadaveErrorFlag.2 = 0
# enterprises.ucdavis.loadTable.laEntry.loadaveErrorFlag.3 = 0
# enterprises.ucdavis.loadTable.laEntry.loadaveErrMessage.1 = ""
# enterprises.ucdavis.loadTable.laEntry.loadaveErrMessage.2 = ""
# enterprises.ucdavis.loadTable.laEntry.loadaveErrMessage.3 = ""
# -----------------------------------------------------------------------------
###############################################################################
# Extensible sections.
# This alleviates the multiple line output problem found in the
# previous executable mib by placing each mib in its own mib table:
# Run a shell script containing:
# #!/bin/sh
# echo hello world
# echo hi there
this has been specifically commented out to prevent
# accidental security holes due to someone else on your system writing
# a /tmp/shtest before you do.
Uncomment to use it.
# exec .1.3.6.1.4.1.2021.50 shelltest /bin/sh /tmp/shtest
# % snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.50
# enterprises.ucdavis.50.1.1 = 1
# enterprises.ucdavis.50.2.1 = "shelltest"
# enterprises.ucdavis.50.3.1 = "/bin/sh /tmp/shtest"
# enterprises.ucdavis.50.100.1 = 35
# enterprises.ucdavis.50.101.1 = "hello world."
# enterprises.ucdavis.50.101.2 = "hi there."
# enterprises.ucdavis.50.102.1 = 0
# Now the Output has grown to two lines, and we can see the 'hi
# there.' output as the second line from our shell script.
# Note that you must alter the mib.txt file to be correct if you want
# the .50.* outputs above to change to reasonable text descriptions.
# Other ideas:
# exec .1.3.6.1.4.1.2021.51 ps /bin/ps
# exec .1.3.6.1.4.1.2021.52 top /usr/local/bin/top
# exec .1.3.6.1.4.1.2021.53 mailq /usr/bin/mailq
# -----------------------------------------------------------------------------
###############################################################################
# Pass through control.
pass MIBOID EXEC-COMMAND
# This will pass total control of the mib underneath the MIBOID
# portion of the mib to the EXEC-COMMAND.
You'll have to change the path of the passtest script to your
# source directory or install it in the given location.
# Example:
(see the script for details)
(commented out here since it requires that you place the
script in the right location. (its not installed by default))
# pass .1.3.6.1.4.1. /bin/sh /usr/local/local/passtest
# % snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.
# enterprises.ucdavis.255.1 = "life the universe and everything"
# enterprises.ucdavis.255.2.1 = 42
# enterprises.ucdavis.255.2.2 = OID: 42.42.42
# enterprises.ucdavis.255.3 = Timeticks: () 42 days, 0:42:42
# enterprises.ucdavis.255.4 = IpAddress: 127.0.0.1
# enterprises.ucdavis.255.5 = 42
# enterprises.ucdavis.255.6 = Gauge: 42
# % snmpget -v 1 localhost public .1.3.6.1.4.1.
# enterprises.ucdavis.255.5 = 42
# % snmpset -v 1 localhost public .1.3.6.1.4.1. s "New string"
# enterprises.ucdavis.255.1 = "New string"
# For specific usage information, see the man/snmpd.conf.5 manual page
# as well as the local/passtest script used in the above example.
###############################################################################
# Further Information
See the snmpd.conf manual page, and the output of "snmpd -H".
dlmod ManagedElementTable /usr/lib/ManagedElementTable.so
**下面是我用来生成so的Makefile**
CFLAGS=-I.`net-snmp-config --cflags`
DLFLAGS=-shared -fPIC
NAME=ManagedElementTable
all: $(NAME).so
.PHONY: clean
$(NAME).so: $(NAME).c
$(CC) $(CFLAGS) $(DLFLAGS) $(FLAGS) -c -o $(NAME).o $(NAME).c
$(CC) $(CFLAGS) $(DLFLAGS) $(FLAGS) -o $(NAME).so $(NAME).o
@rm -rf *.o *.so *~
snmpset -v2c -c privite localhost .1.3.6.1.4.1.777.2.7.1.1.2 string akaedu
结果提示Timeout: No Response from localhost
求高手指点一下,研究了好几天了,实在遇到瓶颈了**
若觉得内容不错,请点击左上角的"赞"图标,以优化网站的内容呈现。
另外,请及时验证注册邮箱,否则收不到21QA发出的红包。
没搞过这个东西,给不出直接的解决方案。
可以使用一些通用的方法看看,比如 strace 以及 tcpdump, 或许能发现有用信息。
若觉得内容不错,请点击左上角的"赞"图标,以优化网站的内容呈现。
另外,请及时验证注册邮箱,否则收不到21QA发出的红包。
作为网站wiki发表:
你可以使用订阅来关注这个问题使用邮箱订阅:登录后可以订阅更新使用RSS订阅:
回答与评论
问题的标签:
问题发表于: 29 十月 '14, 18:58
问题被查看: 1,644 次
最近更新: 29 十月 '14, 22:10

我要回帖

更多关于 mi 2s按键失灵 的文章

 

随机推荐