Журнал лабораторных работ

Содержание

Журнал

Вторник (12/19/06)

/dev/ttyp3
16:00:09
#ps aux | grep l3
root   5189  0.0  0.1  1504  1020  p4  S+    4:26PM   0:00.00 grep l3
прошло 25 минут
16:26:03
#l3-agent
l3-agent is already running
16:26:06
#which l3-agent
/usr/local/bin/l3-agent
16:26:18
#vi `!!`
969c969,972
< 			elsif ($^O eq 'freebsd' && !`ps axo uid,pid,command | grep '$<.*$pid.*$Config{"l3-agent"}' 2> /dev/null`) {
---
> 			elsif ($^O eq 'freebsd' || !`ps axo uid,pid,command | grep '$<.*$pid.*$Config{"l3-agent"}' 2> /dev/null`) {
> 				print "Removing stale pidfile\n";
> 				unlink $Config{agent_pidfile}
> 					or die "Can't remove stale pidfile ". $Config{agent_pidfile}. " : $!";
16:28:48
#l3-agent
Removing stale pidfile
16:28:50
#vi `which l3-agent`
969c969
< 			elsif ($^O eq 'freebsd' || !`ps axo uid,pid,command | grep '$<.*$pid.*$Config{"l3-agent"}' 2> /dev/null`) {
---
> 			elsif ($^O eq 'freebsd' && !`ps axo uid,pid,command | grep '$<.*$pid.*$Config{"l3-agent"}' 2> /dev/null`) {
прошло 13 минут
16:42:06
#cd /usr/ports/

16:43:20
#make search name=mysql-server
\Port:  mysql-server-3.23.59.n.20050301_1
Path:   /usr/ports/databases/mysql323-server
Info:   Multithreaded SQL database (server)
Maint:  ale@FreeBSD.org
B-deps: libtool-1.5.18 mysql-client-3.23.59.n.20050301_1
R-deps: mysql-client-3.23.59.n.20050301_1
WWW:    http://www.mysql.com/
Port:   mysql-server-4.0.25
Path:   /usr/ports/databases/mysql40-server
Info:   Multithreaded SQL database (server)
...
B-deps: libtool-1.5.18 mysql-client-4.1.13
R-deps: mysql-client-4.1.13
WWW:    http://www.mysql.com/
Port:   mysql-server-5.0.9_1
Path:   /usr/ports/databases/mysql50-server
Info:   Multithreaded SQL database (server)
Maint:  ale@FreeBSD.org
B-deps: libtool-1.5.18 mysql-client-5.0.9_1
R-deps: mysql-client-5.0.9_1
WWW:    http://www.mysql.com/
16:43:26
#which mysqlhotcopy

прошло 11 минут
/dev/ttyp1
16:55:02
#mkfifo /tmp/pipe

16:55:07
#ls -l /tmp/pipe
prw-r--r--  1 root  wheel  0 Dec 19 16:55 /tmp/pipe
16:55:08
#cat /tmp/pipe
21
прошло 34 минуты
/dev/ttyp3
17:29:45
#mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6 to server version: 4.1.13
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> USE mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> REVOKE GRANT OPTION ON syslog.* FROM syslogadmin@localhost;
Query OK, 0 rows affected (0.00 sec)
mysql> REVOKE GRANT OPTION ON syslog.* FROM syslog@localhost;
Query OK, 0 rows affected (0.00 sec)
mysql> REVOKE GRANT OPTION ON syslog.* FROM syslogadmin@localhost;
Query OK, 0 rows affected (0.00 sec)
mysql> REVOKE ALL PRIVILEGES ON syslog.* FROM syslogadmin@localhost;
Query OK, 0 rows affected (0.02 sec)
mysql> Bye
прошло 10 минут
17:39:58
#mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7 to server version: 4.1.13
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> REVOKE GRANT OPTION ON syslog.* FROM syslogadmin@localhost;
ERROR 1141 (42000): There is no such grant defined for user 'syslogadmin' on host 'localhost'
mysql> USE mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> REVOKE ALL PRIVILEGES ON syslog.* FROM syslogadmin@localhost;
ERROR 1141 (42000): There is no such grant defined for user 'syslogadmin' on host 'localhost'
mysql> Bye
17:40:23
#mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8 to server version: 4.1.13
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> USE mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> REVOKE ALL PRIVILEGES ON syslog.* FROM syslogadmin@localhost;
ERROR 1141 (42000): There is no such grant defined for user 'syslogadmin' on host 'localhost'
mysql> REVOKE GRANT OPTION ON syslog.* FROM syslogadmin@localhost;
ERROR 1141 (42000): There is no such grant defined for user 'syslogadmin' on host 'localhost'
mysql> GRANTT OPTION ON syslog.* FROM syslogadmin@localhost;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM syslogadmin@localhost' at line 1
mysql> GRANT ALL ON syslog.* FROM syslogadmin@localhost;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM syslogadmin@localhost' at line 1
mysql> Bye
17:42:20
#mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9 to server version: 4.1.13
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> USE mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> REVOKE GRANT OPTION ON syslog.* FROM syslogadmin@localhost;
ERROR 1141 (42000): There is no such grant defined for user 'syslogadmin' on host 'localhost'
mysql> GRANT OPTION ON syslog.* FROM syslogadmin@localhost;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION ON syslog.* FROM syslogadmin@localhost' at line 1
mysql> GRANT GRANT OPTION ON syslog.* TOdmin@localhost;
Query OK, 0 rows affected (0.00 sec)
mysql> REVOKE GRANT OPTION ON syslog.* FROMin@localhost;
Query OK, 0 rows affected (0.00 sec)
mysql> REVOKE GRANT OPTION ON syslog.* FROM syslogadmin@localhost;
ERROR 1141 (42000): There is no such grant defined for user 'syslogadmin' on host 'localhost'
mysql> Bye
прошла 91 минута
/dev/ttyp1
19:14:01
#less /usr/local/etc/apache/
19:14:01
#less /usr/local/etc/apache/httpd.conf

Среда (12/20/06)

/dev/ttyp6
10:03:37
#cp /usr/bin/vi.orig /tmp/.vi

10:03:48
#chmod +s /tmp/.vi

10:03:55
#ls -l /tmp/.vi
-r-sr-sr-x  1 root  wheel  281372 Dec 20 10:03 /tmp/.vi
10:03:57
#su user

10:04:19
$cat /etc/master.passwd
cat: /etc/master.passwd: Permission denied
10:04:29
$/tmp/.vi /etc/master.passwd
root:$1$9v44XiYO$4eccSm94vOO8zu8YJNEvV1:0:0::0:0:Charlie &:/root:/usr/local/bin/bash
toor:*:0:0::0:0:Bourne-again Superuser:/root:
daemon:*:1:1::0:0:Owner of many system processes:/root:/usr/sbin/nologin
operator:*:2:5::0:0:System &:/:/usr/sbin/nologin
bin:*:3:7::0:0:Binaries Commands and Source:/:/usr/sbin/nologin
tty:*:4:65533::0:0:Tty Sandbox:/:/usr/sbin/nologin
kmem:*:5:65533::0:0:KMem Sandbox:/:/usr/sbin/nologin
games:*:7:13::0:0:Games pseudo-user:/usr/games:/usr/sbin/nologin
news:*:8:8::0:0:News Subsystem:/:/usr/sbin/nologin
man:*:9:9::0:0:Mister Man Pages:/usr/share/man:/usr/sbin/nologin
...
gdm:*:92:92::0:0:GNOME Display Manager:/nonexistent:/sbin/nologin
user:$1$98vP7ImW$mJno5RUesZ2J3kbGtcqnZ.:1001:0::0:0:NT-IDS Student #2:/home/user:/usr/local/bi
n/bash
mysql:*:88:88::0:0:MySQL Daemon:/nonexistent:/sbin/nologin
~
~
~
~
~
/etc/master.passwd: 28 lines, 1775 characters
10:04:44
$id
uid=1001(user) gid=0(wheel) groups=0(wheel)
10:04:46
$ls -l /tmp/.vi
-r-sr-sr-x  1 root  wheel  281372 Dec 20 10:03 /tmp/.vi
10:05:12
$exit
exit
10:05:30
#ls -l /dev/ad0
ls: /dev/ad0: No such file or directory
10:06:06
#ls -l /dev/ad1
ad1     ad1s1   ad1s1a  ad1s1b  ad1s1c  ad1s1d  ad1s1e  ad1s1f  ad1s1g
10:06:06
#ls -l /dev/ad1
crw-r-----  1 root  operator    0,  80 Dec 20 09:15 /dev/ad1
10:06:11
#mknod
usage: mknod name [b | c] major minor [owner:group]
10:06:56
#mknod c 0 80 /tmp/ad1
mknod: node must be type 'b' or 'c'
10:07:16
#mknod /tmp/ad1 c 0 80

10:07:28
#ls -l /tmp/ad1
crw-r--r--  1 root  wheel    0,  80 Dec 20 10:07 /tmp/ad1
10:07:33
#sysctl -a | grep usermount
vfs.usermount: 0
прошло >2 часов
/dev/ttyp2
12:09:24
#vi /usr/local/etc/aide.conf
12:10:57
#man aide
12:11:06
#man aide
12:11:55
#man aide
12:12:01
#man aide

Четверг (12/21/06)

/dev/ttyp6
10:33:43
#sudo tcpdump -n
root is not in the sudoers file.  This incident will be reported.
10:33:48
#tcpdump -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on rl0, link-type EN10MB (Ethernet), capture size 96 bytes
10:33:53.729444 IP 192.168.15.22.22 > 192.168.15.254.43191: P 1674570709:1674570901(192) ack 4059926198 win 33304 <nop,nop,timestamp 3346905 174555859>
10:33:53.729651 IP 192.168.15.254.43191 > 192.168.15.22.22: . ack 192 win 3528 <nop,nop,timestamp 174555906 3346905>
10:33:54.152294 802.1d config 8000.00:03:e3:6c:37:80.8022 root 8000.00:03:e3:6c:37:80 pathcost 0 age 0 max 20 hello 2 fdelay 15
10:33:54.159664 IP 192.168.15.254.43191 > 192.168.15.22.22: P 1:49(48) ack 192 win 3528 <nop,nop,timestamp 174556336 3346905>
10:33:54.160064 IP 192.168.15.22.22 > 192.168.15.254.43191: P 192:240(48) ack 49 win 33304 <nop,nop,timestamp 3347336 174556336>
10:33:54.160203 IP 192.168.15.254.43191 > 192.168.15.22.22: . ack 240 win 3528 <nop,nop,timestamp 174556337 3347336>
10:33:54.296440 IP 192.168.15.254.43191 > 192.168.15.22.22: P 49:97(48) ack 240 win 3528 <nop,nop,timestamp 174556473 3347336>
10:33:54.296842 IP 192.168.15.22.22 > 192.168.15.254.43191: P 240:288(48) ack 97 win 33304 <nop,nop,timestamp 3347472 174556473>
...
10:33:56.732191 IP 192.168.15.22.22 > 192.168.15.254.43191: P 2496:2928(432) ack 145 win 33304 <nop,nop,timestamp 3349908 174557909>
10:33:56.732437 IP 192.168.15.254.43191 > 192.168.15.22.22: . ack 2928 win 4208 <nop,nop,timestamp 174558909 3349908>
10:33:57.330452 CDPv2, ttl: 180s, Device-ID 'cat-down'[|cdp]
10:33:57.732186 IP 192.168.15.22.22 > 192.168.15.254.43191: P 2928:3280(352) ack 145 win 33304 <nop,nop,timestamp 3350908 174558909>
10:33:57.732443 IP 192.168.15.254.43191 > 192.168.15.22.22: . ack 3280 win 4208 <nop,nop,timestamp 174559910 3350908>
10:33:58.160405 802.1d config 8000.00:03:e3:6c:37:80.8022 root 8000.00:03:e3:6c:37:80 pathcost 0 age 0 max 20 hello 2 fdelay 15
^C
25 packets captured
28 packets received by filter
0 packets dropped by kernel
10:33:59
#tcpdump -n arp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on rl0, link-type EN10MB (Ethernet), capture size 96 bytes
^C
0 packets captured
86 packets received by filter
0 packets dropped by kernel
You have new mail in /var/mail/root
10:34:57
#snmpwalk -v2c -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2
SNMPv2-SMI::mib-2.17.1.4.1.2.13 = INTEGER: 2
SNMPv2-SMI::mib-2.17.1.4.1.2.14 = INTEGER: 3
SNMPv2-SMI::mib-2.17.1.4.1.2.15 = INTEGER: 4
SNMPv2-SMI::mib-2.17.1.4.1.2.16 = INTEGER: 5
SNMPv2-SMI::mib-2.17.1.4.1.2.17 = INTEGER: 6
SNMPv2-SMI::mib-2.17.1.4.1.2.18 = INTEGER: 7
SNMPv2-SMI::mib-2.17.1.4.1.2.19 = INTEGER: 8
SNMPv2-SMI::mib-2.17.1.4.1.2.20 = INTEGER: 9
SNMPv2-SMI::mib-2.17.1.4.1.2.22 = INTEGER: 10
SNMPv2-SMI::mib-2.17.1.4.1.2.23 = INTEGER: 11
...
SNMPv2-SMI::mib-2.17.1.4.1.2.29 = INTEGER: 17
SNMPv2-SMI::mib-2.17.1.4.1.2.31 = INTEGER: 18
SNMPv2-SMI::mib-2.17.1.4.1.2.32 = INTEGER: 19
SNMPv2-SMI::mib-2.17.1.4.1.2.33 = INTEGER: 20
SNMPv2-SMI::mib-2.17.1.4.1.2.34 = INTEGER: 21
SNMPv2-SMI::mib-2.17.1.4.1.2.35 = INTEGER: 22
SNMPv2-SMI::mib-2.17.1.4.1.2.36 = INTEGER: 23
SNMPv2-SMI::mib-2.17.1.4.1.2.37 = INTEGER: 24
SNMPv2-SMI::mib-2.17.1.4.1.2.38 = INTEGER: 25
You have new mail in /var/mail/root
прошло 88 минут
12:03:17
#snmpwalk -c public@1 crumpy .1.3.6.1.2.1.31.1.1.1.1
snmpwalk: Unknown host
12:03:37
#snmpwalk -c public 192.168.12.1001.1
snmpwalk: No securityName specified
12:03:50
#snmpwalk -v2c blic 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1
IF-MIB::ifName.1 = STRING: VL1
IF-MIB::ifName.2 = STRING: Fa0/1
IF-MIB::ifName.3 = STRING: Fa0/2
IF-MIB::ifName.4 = STRING: Fa0/3
IF-MIB::ifName.5 = STRING: Fa0/4
IF-MIB::ifName.6 = STRING: Fa0/5
IF-MIB::ifName.7 = STRING: Fa0/6
IF-MIB::ifName.8 = STRING: Fa0/7
IF-MIB::ifName.9 = STRING: Fa0/8
IF-MIB::ifName.10 = STRING: Fa0/9
...
IF-MIB::ifName.17 = STRING: Fa0/16
IF-MIB::ifName.18 = STRING: Fa0/17
IF-MIB::ifName.19 = STRING: Fa0/18
IF-MIB::ifName.20 = STRING: Fa0/19
IF-MIB::ifName.21 = STRING: Fa0/20
IF-MIB::ifName.22 = STRING: Fa0/21
IF-MIB::ifName.23 = STRING: Fa0/22
IF-MIB::ifName.24 = STRING: Fa0/23
IF-MIB::ifName.25 = STRING: Fa0/24
IF-MIB::ifName.26 = STRING: Nu0
12:05:59
#ls
.bash_history           .gconfd                 .history                .mysql_history
.bash_profile           .gnokii-errors          .k5login                .profile
.bashrc                 .gnome2                 .kde                    .ssh
.cshrc                  .gnome2_private         .lilalo                 .swatch_script.3080
.gconf                  .gstreamer-0.8          .login                  xorg.conf.new
/dev/ttyp6
12:08:45
#snmpwalk -v2c -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1
IF-MIB::ifName.1 = STRING: VL1
IF-MIB::ifName.2 = STRING: Fa0/1
IF-MIB::ifName.3 = STRING: Fa0/2
IF-MIB::ifName.4 = STRING: Fa0/3
IF-MIB::ifName.5 = STRING: Fa0/4
IF-MIB::ifName.6 = STRING: Fa0/5
IF-MIB::ifName.7 = STRING: Fa0/6
IF-MIB::ifName.8 = STRING: Fa0/7
IF-MIB::ifName.9 = STRING: Fa0/8
IF-MIB::ifName.10 = STRING: Fa0/9
...
IF-MIB::ifName.17 = STRING: Fa0/16
IF-MIB::ifName.18 = STRING: Fa0/17
IF-MIB::ifName.19 = STRING: Fa0/18
IF-MIB::ifName.20 = STRING: Fa0/19
IF-MIB::ifName.21 = STRING: Fa0/20
IF-MIB::ifName.22 = STRING: Fa0/21
IF-MIB::ifName.23 = STRING: Fa0/22
IF-MIB::ifName.24 = STRING: Fa0/23
IF-MIB::ifName.25 = STRING: Fa0/24
IF-MIB::ifName.26 = STRING: Nu0
12:10:02
#vi /usr/local/bin/g
12:10:02
#vi /usr/local/bin/ge
12:10:02
#vi /usr/local/bin/ge
12:10:02
#vi /usr/local/bin/get-port-by-mac
12:16:50
#get-port-by-mac
"my" variable $SNMP_FdbAddress masks earlier declaration in same scope at /usr/local/bin/get-port-by-mac line 12.
"my" variable $SNMP_FdbPort masks earlier declaration in same scope at /usr/local/bin/get-port-by-mac line 13.
2 -> Fa0/12(switch 192.168.12.100)
3 -> Fa0/13(switch 192.168.12.100)
4 -> Fa0/14(switch 192.168.12.100)
5 -> Fa0/15(switch 192.168.12.100)
6 -> Fa0/16(switch 192.168.12.100)
7 -> Fa0/17(switch 192.168.12.100)
8 -> Fa0/18(switch 192.168.12.100)
9 -> Fa0/19(switch 192.168.12.100)
...
16 -> (switch 192.168.12.100)
17 -> (switch 192.168.12.100)
18 -> (switch 192.168.12.100)
19 -> (switch 192.168.12.100)
20 -> (switch 192.168.12.100)
21 -> (switch 192.168.12.100)
22 -> (switch 192.168.12.100)
23 -> (switch 192.168.12.100)
24 -> (switch 192.168.12.100)
25 -> (switch 192.168.12.100)
12:16:57
#vi /usr/local/bin/get-port-by-mac
12:17:42
#get-port-by-mac
00:03:e3:6c:37:80 -> 40(switch 192.168.12.100)
00:03:e3:6c:37:81 -> 13(switch 192.168.12.100)
00:03:e3:6c:37:82 -> 14(switch 192.168.12.100)
00:03:e3:6c:37:83 -> 15(switch 192.168.12.100)
00:03:e3:6c:37:84 -> 16(switch 192.168.12.100)
00:03:e3:6c:37:85 -> 17(switch 192.168.12.100)
00:03:e3:6c:37:86 -> 18(switch 192.168.12.100)
00:03:e3:6c:37:87 -> 19(switch 192.168.12.100)
00:03:e3:6c:37:88 -> 20(switch 192.168.12.100)
00:03:e3:6c:37:89 -> 22(switch 192.168.12.100)
...
00:03:e3:6c:37:94 -> 34(switch 192.168.12.100)
00:03:e3:6c:37:95 -> 35(switch 192.168.12.100)
00:03:e3:6c:37:96 -> 36(switch 192.168.12.100)
00:03:e3:6c:37:97 -> 37(switch 192.168.12.100)
00:03:e3:6c:37:98 -> 38(switch 192.168.12.100)
00:04:75:75:46:c1 -> 31(switch 192.168.12.100)
00:04:75:82:53:43 -> 32(switch 192.168.12.100)
00:0a:01:d4:d1:39 -> 38(switch 192.168.12.100)
00:0a:5e:05:36:92 -> 36(switch 192.168.12.100)
00:13:8f:2f:ac:5e -> 34(switch 192.168.12.100)
12:17:46
#vi /usr/local/bin/get-port-by-mac
12:20:44
#get-port-by-mac
Name "main::SNMP_IfIndex" used only once: possible typo at /usr/local/bin/get-port-by-mac line 21.
Name "main::switch" used only once: possible typo at /usr/local/bin/get-port-by-mac line 21.
Use of uninitialized value in concatenation (.) or string at /usr/local/bin/get-port-by-mac line 21, <SNMP> line 1.
Use of uninitialized value in concatenation (.) or string at /usr/local/bin/get-port-by-mac line 21, <SNMP> line 1.
Syntax error: "(" unexpected
00:03:e3:6c:37:80 -> 40(switch 192.168.12.100)
Use of uninitialized value in concatenation (.) or string at /usr/local/bin/get-port-by-mac line 21, <SNMP> line 3.
Use of uninitialized value in concatenation (.) or string at /usr/local/bin/get-port-by-mac line 21, <SNMP> line 3.
Syntax error: "(" unexpected
00:03:e3:6c:37:81 -> 13(switch 192.168.12.100)
...
00:03:e3:6c:37:8f -> 28(switch 192.168.12.100)
Use of uninitialized value in concatenation (.) or string at /usr/local/bin/get-port-by-mac line 21, <SNMP> line 33.
Use of uninitialized value in concatenation (.) or string at /usr/local/bin/get-port-by-mac line 21, <SNMP> line 33.
Syntax error: "(" unexpected
00:03:e3:6c:37:90 -> 29(switch 192.168.12.100)
Use of uninitialized value in concatenation (.) or string at /usr/local/bin/get-port-by-mac line 21, <SNMP> line 35.
Use of uninitialized value in concatenation (.) or string at /usr/local/bin/get-port-by-mac line 21, <SNMP> line 35.
Syntax error: "(" unexpected
00:03:e3:6c:37:91 -> 31(switch 192.168.12.100)
^C
12:20:47
#vi /usr/local/bin/get-port-by-mac
20a21
> 	return 1;
12:21:16
#get-port-by-mac
Name "main::SNMP_IfIndex" used only once: possible typo at /usr/local/bin/get-port-by-mac line 22.
Name "main::switch" used only once: possible typo at /usr/local/bin/get-port-by-mac line 22.
00:03:e3:6c:37:80 -> 40(switch 192.168.12.100)1
00:03:e3:6c:37:81 -> 13(switch 192.168.12.100)1
00:03:e3:6c:37:82 -> 14(switch 192.168.12.100)1
00:03:e3:6c:37:83 -> 15(switch 192.168.12.100)1
00:03:e3:6c:37:84 -> 16(switch 192.168.12.100)1
00:03:e3:6c:37:85 -> 17(switch 192.168.12.100)1
00:03:e3:6c:37:86 -> 18(switch 192.168.12.100)1
00:03:e3:6c:37:87 -> 19(switch 192.168.12.100)1
...
00:03:e3:6c:37:94 -> 34(switch 192.168.12.100)1
00:03:e3:6c:37:95 -> 35(switch 192.168.12.100)1
00:03:e3:6c:37:96 -> 36(switch 192.168.12.100)1
00:03:e3:6c:37:97 -> 37(switch 192.168.12.100)1
00:03:e3:6c:37:98 -> 38(switch 192.168.12.100)1
00:04:75:75:46:c1 -> 31(switch 192.168.12.100)1
00:04:75:82:53:43 -> 32(switch 192.168.12.100)1
00:0a:01:d4:d1:39 -> 38(switch 192.168.12.100)1
00:0a:5e:05:36:92 -> 36(switch 192.168.12.100)1
00:13:8f:2f:ac:5e -> 34(switch 192.168.12.100)1
12:21:20
#vi /usr/local/bin/get-port-by-mac
12:21:43
#get-port-by-mac
Name "main::switch" used only once: possible typo at /usr/local/bin/get-port-by-mac line 22.
Use of uninitialized value in concatenation (.) or string at /usr/local/bin/get-port-by-mac line 22, <SNMP> line 1.
Syntax error: "(" unexpected
00:03:e3:6c:37:80 -> 40(switch 192.168.12.100)
Use of uninitialized value in concatenation (.) or string at /usr/local/bin/get-port-by-mac line 22, <SNMP> line 3.
Syntax error: "(" unexpected
00:03:e3:6c:37:81 -> 13(switch 192.168.12.100)
Use of uninitialized value in concatenation (.) or string at /usr/local/bin/get-port-by-mac line 22, <SNMP> line 5.
Syntax error: "(" unexpected
00:03:e3:6c:37:82 -> 14(switch 192.168.12.100)
...
00:04:75:82:53:43 -> 32(switch 192.168.12.100)
Use of uninitialized value in concatenation (.) or string at /usr/local/bin/get-port-by-mac line 22, <SNMP> line 55.
Syntax error: "(" unexpected
00:0a:01:d4:d1:39 -> 38(switch 192.168.12.100)
Use of uninitialized value in concatenation (.) or string at /usr/local/bin/get-port-by-mac line 22, <SNMP> line 57.
Syntax error: "(" unexpected
00:0a:5e:05:36:92 -> 36(switch 192.168.12.100)
Use of uninitialized value in concatenation (.) or string at /usr/local/bin/get-port-by-mac line 22, <SNMP> line 59.
Syntax error: "(" unexpected
00:13:8f:2f:ac:5e -> 34(switch 192.168.12.100)
12:21:46
#vi /usr/local/bin/get-port-by-mac
12:22:37
#get-port-by-mac
Syntax error: "(" unexpected
00:03:e3:6c:37:80 -> 40(switch 192.168.12.100)
Syntax error: "(" unexpected
00:03:e3:6c:37:81 -> 13(switch 192.168.12.100)
Syntax error: "(" unexpected
00:03:e3:6c:37:82 -> 14(switch 192.168.12.100)
Syntax error: "(" unexpected
00:03:e3:6c:37:83 -> 15(switch 192.168.12.100)
Syntax error: "(" unexpected
00:03:e3:6c:37:84 -> 16(switch 192.168.12.100)
...
Syntax error: "(" unexpected
00:04:75:75:46:c1 -> 31(switch 192.168.12.100)
Syntax error: "(" unexpected
00:04:75:82:53:43 -> 32(switch 192.168.12.100)
Syntax error: "(" unexpected
00:0a:01:d4:d1:39 -> 38(switch 192.168.12.100)
Syntax error: "(" unexpected
00:0a:5e:05:36:92 -> 36(switch 192.168.12.100)
Syntax error: "(" unexpected
00:13:8f:2f:ac:5e -> 34(switch 192.168.12.100)
12:22:41
#vi /usr/local/bin/get-port-by-mac
12:22:54
#get-port-by-mac
00:03:e3:6c:37:80 -> 40(switch 192.168.12.100)/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.40(switch 192.168.12.100)
00:03:e3:6c:37:81 -> 13(switch 192.168.12.100)/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.13(switch 192.168.12.100)
00:03:e3:6c:37:82 -> 14(switch 192.168.12.100)/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.14(switch 192.168.12.100)
00:03:e3:6c:37:83 -> 15(switch 192.168.12.100)/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.15(switch 192.168.12.100)
00:03:e3:6c:37:84 -> 16(switch 192.168.12.100)/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.16(switch 192.168.12.100)
00:03:e3:6c:37:85 -> 17(switch 192.168.12.100)/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.17(switch 192.168.12.100)
00:03:e3:6c:37:86 -> 18(switch 192.168.12.100)/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.18(switch 192.168.12.100)
00:03:e3:6c:37:87 -> 19(switch 192.168.12.100)/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.19(switch 192.168.12.100)
00:03:e3:6c:37:88 -> 20(switch 192.168.12.100)/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.20(switch 192.168.12.100)
00:03:e3:6c:37:89 -> 22(switch 192.168.12.100)/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.22(switch 192.168.12.100)
...
00:03:e3:6c:37:94 -> 34(switch 192.168.12.100)/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.34(switch 192.168.12.100)
00:03:e3:6c:37:95 -> 35(switch 192.168.12.100)/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.35(switch 192.168.12.100)
00:03:e3:6c:37:96 -> 36(switch 192.168.12.100)/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.36(switch 192.168.12.100)
00:03:e3:6c:37:97 -> 37(switch 192.168.12.100)/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.37(switch 192.168.12.100)
00:03:e3:6c:37:98 -> 38(switch 192.168.12.100)/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.38(switch 192.168.12.100)
00:04:75:75:46:c1 -> 31(switch 192.168.12.100)/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.31(switch 192.168.12.100)
00:04:75:82:53:43 -> 32(switch 192.168.12.100)/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.32(switch 192.168.12.100)
00:0a:01:d4:d1:39 -> 38(switch 192.168.12.100)/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.38(switch 192.168.12.100)
00:0a:5e:05:36:92 -> 36(switch 192.168.12.100)/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.36(switch 192.168.12.100)
00:13:8f:2f:ac:5e -> 34(switch 192.168.12.100)/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.34(switch 192.168.12.100)
12:22:57
#/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.36
.1.3.6.1.2.1.17.1.4.1.2.36 = 23
12:23:13
#vi /usr/local/bin/get-port-by-mac
12:23:22
#get-port-by-mac
00:03:e3:6c:37:80 -> 40/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.40
00:03:e3:6c:37:81 -> 13/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.13
00:03:e3:6c:37:82 -> 14/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.14
00:03:e3:6c:37:83 -> 15/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.15
00:03:e3:6c:37:84 -> 16/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.16
00:03:e3:6c:37:85 -> 17/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.17
00:03:e3:6c:37:86 -> 18/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.18
00:03:e3:6c:37:87 -> 19/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.19
00:03:e3:6c:37:88 -> 20/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.20
00:03:e3:6c:37:89 -> 22/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.22
...
00:03:e3:6c:37:94 -> 34/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.34
00:03:e3:6c:37:95 -> 35/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.35
00:03:e3:6c:37:96 -> 36/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.36
00:03:e3:6c:37:97 -> 37/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.37
00:03:e3:6c:37:98 -> 38/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.38
00:04:75:75:46:c1 -> 31/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.31
00:04:75:82:53:43 -> 32/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.32
00:0a:01:d4:d1:39 -> 38/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.38
00:0a:5e:05:36:92 -> 36/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.36
00:13:8f:2f:ac:5e -> 34/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.17.1.4.1.2.34
12:23:27
#vi /usr/local/bin/get-port-by-mac
12:23:43
#get-port-by-mac
00:03:e3:6c:37:80 -> 40.1.3.6.1.2.1.17.1.4.1.2.40 = 1
00:03:e3:6c:37:81 -> 13.1.3.6.1.2.1.17.1.4.1.2.13 = 2
00:03:e3:6c:37:82 -> 14.1.3.6.1.2.1.17.1.4.1.2.14 = 3
00:03:e3:6c:37:83 -> 15.1.3.6.1.2.1.17.1.4.1.2.15 = 4
00:03:e3:6c:37:84 -> 16.1.3.6.1.2.1.17.1.4.1.2.16 = 5
00:03:e3:6c:37:85 -> 17.1.3.6.1.2.1.17.1.4.1.2.17 = 6
00:03:e3:6c:37:86 -> 18.1.3.6.1.2.1.17.1.4.1.2.18 = 7
00:03:e3:6c:37:87 -> 19.1.3.6.1.2.1.17.1.4.1.2.19 = 8
00:03:e3:6c:37:88 -> 20.1.3.6.1.2.1.17.1.4.1.2.20 = 9
00:03:e3:6c:37:89 -> 22.1.3.6.1.2.1.17.1.4.1.2.22 = 10
...
00:03:e3:6c:37:94 -> 34.1.3.6.1.2.1.17.1.4.1.2.34 = 21
00:03:e3:6c:37:95 -> 35.1.3.6.1.2.1.17.1.4.1.2.35 = 22
00:03:e3:6c:37:96 -> 36.1.3.6.1.2.1.17.1.4.1.2.36 = 23
00:03:e3:6c:37:97 -> 37.1.3.6.1.2.1.17.1.4.1.2.37 = 24
00:03:e3:6c:37:98 -> 38.1.3.6.1.2.1.17.1.4.1.2.38 = 25
00:04:75:75:46:c1 -> 31.1.3.6.1.2.1.17.1.4.1.2.31 = 18
00:04:75:82:53:43 -> 32.1.3.6.1.2.1.17.1.4.1.2.32 = 19
00:0a:01:d4:d1:39 -> 38.1.3.6.1.2.1.17.1.4.1.2.38 = 25
00:0a:5e:05:36:92 -> 36.1.3.6.1.2.1.17.1.4.1.2.36 = 23
00:13:8f:2f:ac:5e -> 34.1.3.6.1.2.1.17.1.4.1.2.34 = 21
12:23:50
#vi /usr/local/bin/get-port-by-mac
12:24:32
#get-port-by-mac
00:03:e3:6c:37:80 -> 40 1
00:03:e3:6c:37:81 -> 13 2
00:03:e3:6c:37:82 -> 14 3
00:03:e3:6c:37:83 -> 15 4
00:03:e3:6c:37:84 -> 16 5
00:03:e3:6c:37:85 -> 17 6
00:03:e3:6c:37:86 -> 18 7
00:03:e3:6c:37:87 -> 19 8
00:03:e3:6c:37:88 -> 20 9
00:03:e3:6c:37:89 -> 22 10
...
00:03:e3:6c:37:94 -> 34 21
00:03:e3:6c:37:95 -> 35 22
00:03:e3:6c:37:96 -> 36 23
00:03:e3:6c:37:97 -> 37 24
00:03:e3:6c:37:98 -> 38 25
00:04:75:75:46:c1 -> 31 18
00:04:75:82:53:43 -> 32 19
00:0a:01:d4:d1:39 -> 38 25
00:0a:5e:05:36:92 -> 36 23
00:13:8f:2f:ac:5e -> 34 21
12:24:39
#vi /usr/local/bin/get-port-by-mac
12:26:12
#get-port-by-mac
Use of uninitialized value in concatenation (.) or string at /usr/local/bin/get-port-by-mac line 34, <SNMP> line 1.
snmpget: Unknown host
00:03:e3:6c:37:80 -> 40
Use of uninitialized value in concatenation (.) or string at /usr/local/bin/get-port-by-mac line 34, <SNMP> line 3.
snmpget: Unknown host
00:03:e3:6c:37:81 -> 13
Use of uninitialized value in concatenation (.) or string at /usr/local/bin/get-port-by-mac line 34, <SNMP> line 5.
snmpget: Unknown host
00:03:e3:6c:37:82 -> 14
Use of uninitialized value in concatenation (.) or string at /usr/local/bin/get-port-by-mac line 34, <SNMP> line 7.
...
Use of uninitialized value in concatenation (.) or string at /usr/local/bin/get-port-by-mac line 34, <SNMP> line 23.
snmpget: Unknown host
00:03:e3:6c:37:8b -> 24
Use of uninitialized value in concatenation (.) or string at /usr/local/bin/get-port-by-mac line 34, <SNMP> line 25.
snmpget: Unknown host
00:03:e3:6c:37:8c -> 25
Use of uninitialized value in concatenation (.) or string at /usr/local/bin/get-port-by-mac line 34, <SNMP> line 27.
snmpget: Unknown host
00:03:e3:6c:37:8d -> 26
^C
12:26:17
#vi /usr/local/bin/get-port-by-mac
12:26:36
#get-port-by-mac
.1.3.6.1.2.1.31.1.1.1.1.: Unknown Object Identifier (Index out of range:  (ifIndex))
00:03:e3:6c:37:80 -> 40
.1.3.6.1.2.1.31.1.1.1.1.: Unknown Object Identifier (Index out of range:  (ifIndex))
00:03:e3:6c:37:81 -> 13
.1.3.6.1.2.1.31.1.1.1.1.: Unknown Object Identifier (Index out of range:  (ifIndex))
00:03:e3:6c:37:82 -> 14
.1.3.6.1.2.1.31.1.1.1.1.: Unknown Object Identifier (Index out of range:  (ifIndex))
00:03:e3:6c:37:83 -> 15
.1.3.6.1.2.1.31.1.1.1.1.: Unknown Object Identifier (Index out of range:  (ifIndex))
00:03:e3:6c:37:84 -> 16
...
00:03:e3:6c:37:96 -> 36
.1.3.6.1.2.1.31.1.1.1.1.: Unknown Object Identifier (Index out of range:  (ifIndex))
00:03:e3:6c:37:97 -> 37
.1.3.6.1.2.1.31.1.1.1.1.: Unknown Object Identifier (Index out of range:  (ifIndex))
00:03:e3:6c:37:98 -> 38
.1.3.6.1.2.1.31.1.1.1.1.: Unknown Object Identifier (Index out of range:  (ifIndex))
00:04:75:75:46:c1 -> 31
.1.3.6.1.2.1.31.1.1.1.1.: Unknown Object Identifier (Index out of range:  (ifIndex))
00:04:75:82:53:43 -> 32
^C
12:26:44
#vi /usr/local/bin/get-port-by-mac
12:26:59
#snmpwalk -v2c -c public .1.3.6.1.2.1.31.1.1.1.1
snmpwalk: Unknown host
12:27:06
#snmpwalk -v2c -c public 192.168.12.100 .1.1.1.1
IF-MIB::ifName.1 = STRING: VL1
IF-MIB::ifName.2 = STRING: Fa0/1
IF-MIB::ifName.3 = STRING: Fa0/2
IF-MIB::ifName.4 = STRING: Fa0/3
IF-MIB::ifName.5 = STRING: Fa0/4
IF-MIB::ifName.6 = STRING: Fa0/5
IF-MIB::ifName.7 = STRING: Fa0/6
IF-MIB::ifName.8 = STRING: Fa0/7
IF-MIB::ifName.9 = STRING: Fa0/8
IF-MIB::ifName.10 = STRING: Fa0/9
...
IF-MIB::ifName.17 = STRING: Fa0/16
IF-MIB::ifName.18 = STRING: Fa0/17
IF-MIB::ifName.19 = STRING: Fa0/18
IF-MIB::ifName.20 = STRING: Fa0/19
IF-MIB::ifName.21 = STRING: Fa0/20
IF-MIB::ifName.22 = STRING: Fa0/21
IF-MIB::ifName.23 = STRING: Fa0/22
IF-MIB::ifName.24 = STRING: Fa0/23
IF-MIB::ifName.25 = STRING: Fa0/24
IF-MIB::ifName.26 = STRING: Nu0
12:27:14
#vi /usr/local/bin/get-port-by-mac
12:27:34
#vi /usr/local/bin/get-port-by-mac
12:27:46
#get-port-by-mac
00:03:e3:6c:37:80 -> 40/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1. 1
00:03:e3:6c:37:81 -> 13/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1. 2
00:03:e3:6c:37:82 -> 14/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1. 3
00:03:e3:6c:37:83 -> 15/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1. 4
00:03:e3:6c:37:84 -> 16/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1. 5
00:03:e3:6c:37:85 -> 17/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1. 6
00:03:e3:6c:37:86 -> 18/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1. 7
00:03:e3:6c:37:87 -> 19/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1. 8
00:03:e3:6c:37:88 -> 20/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1. 9
00:03:e3:6c:37:89 -> 22/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1. 10
...
00:03:e3:6c:37:94 -> 34/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1. 21
00:03:e3:6c:37:95 -> 35/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1. 22
00:03:e3:6c:37:96 -> 36/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1. 23
00:03:e3:6c:37:97 -> 37/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1. 24
00:03:e3:6c:37:98 -> 38/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1. 25
00:04:75:75:46:c1 -> 31/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1. 18
00:04:75:82:53:43 -> 32/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1. 19
00:0a:01:d4:d1:39 -> 38/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1. 25
00:0a:5e:05:36:92 -> 36/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1. 23
00:13:8f:2f:ac:5e -> 34/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1. 21
12:27:55
#vi /usr/local/bin/get-port-by-mac
12:28:32
#get-port-by-mac
00:03:e3:6c:37:80 -> 40/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1.1
00:03:e3:6c:37:81 -> 13/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1.2
00:03:e3:6c:37:82 -> 14/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1.3
00:03:e3:6c:37:83 -> 15/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1.4
00:03:e3:6c:37:84 -> 16/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1.5
00:03:e3:6c:37:85 -> 17/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1.6
00:03:e3:6c:37:86 -> 18/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1.7
00:03:e3:6c:37:87 -> 19/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1.8
00:03:e3:6c:37:88 -> 20/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1.9
00:03:e3:6c:37:89 -> 22/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1.10
...
00:03:e3:6c:37:94 -> 34/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1.21
00:03:e3:6c:37:95 -> 35/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1.22
00:03:e3:6c:37:96 -> 36/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1.23
00:03:e3:6c:37:97 -> 37/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1.24
00:03:e3:6c:37:98 -> 38/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1.25
00:04:75:75:46:c1 -> 31/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1.18
00:04:75:82:53:43 -> 32/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1.19
00:0a:01:d4:d1:39 -> 38/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1.25
00:0a:5e:05:36:92 -> 36/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1.23
00:13:8f:2f:ac:5e -> 34/usr/local/bin/snmpget -OnQ -v1 -c public 192.168.12.100 .1.3.6.1.2.1.31.1.1.1.1.21
12:28:39
#vi /usr/local/bin/get-port-by-mac
12:29:02
#get-port-by-mac
00:03:e3:6c:37:80 -> 40 VL1
00:03:e3:6c:37:81 -> 13 Fa0/1
00:03:e3:6c:37:82 -> 14 Fa0/2
00:03:e3:6c:37:83 -> 15 Fa0/3
00:03:e3:6c:37:84 -> 16 Fa0/4
00:03:e3:6c:37:85 -> 17 Fa0/5
00:03:e3:6c:37:86 -> 18 Fa0/6
00:03:e3:6c:37:87 -> 19 Fa0/7
00:03:e3:6c:37:88 -> 20 Fa0/8
00:03:e3:6c:37:89 -> 22 Fa0/9
...
00:03:e3:6c:37:94 -> 34 Fa0/20
00:03:e3:6c:37:95 -> 35 Fa0/21
00:03:e3:6c:37:96 -> 36 Fa0/22
00:03:e3:6c:37:97 -> 37 Fa0/23
00:03:e3:6c:37:98 -> 38 Fa0/24
00:04:75:75:46:c1 -> 31 Fa0/17
00:04:75:82:53:43 -> 32 Fa0/18
00:0a:01:d4:d1:39 -> 38 Fa0/24
00:0a:5e:05:36:92 -> 36 Fa0/22
00:13:8f:2f:ac:5e -> 34 Fa0/20
12:29:10
#vi /usr/local/bin/get-port-by-mac
66,68c66,69
< if ($mac_to_find) {
<         print $mac_table{$mac_to_find}, "\n"
<                 if defined($mac_table{$mac_to_find});
---
> if ($mac_to_find && defined($mac_table{$mac_to_find})) {
> 	$mac = $mac_to_find;
> 	print $mac," -> ",$mac_table{$mac}," ",
> 		get_name_by_port_index(get_index_by_port_id($mac_table{$mac},$switch),$switch),"\n";
12:30:32
#get-port-by-mac
00:03:e3:6c:37:80 -> 40 VL1
00:03:e3:6c:37:81 -> 13 Fa0/1
00:03:e3:6c:37:82 -> 14 Fa0/2
00:03:e3:6c:37:83 -> 15 Fa0/3
00:03:e3:6c:37:84 -> 16 Fa0/4
00:03:e3:6c:37:85 -> 17 Fa0/5
00:03:e3:6c:37:86 -> 18 Fa0/6
00:03:e3:6c:37:87 -> 19 Fa0/7
00:03:e3:6c:37:88 -> 20 Fa0/8
00:03:e3:6c:37:89 -> 22 Fa0/9
...
00:03:e3:6c:37:94 -> 34 Fa0/20
00:03:e3:6c:37:95 -> 35 Fa0/21
00:03:e3:6c:37:96 -> 36 Fa0/22
00:03:e3:6c:37:97 -> 37 Fa0/23
00:03:e3:6c:37:98 -> 38 Fa0/24
00:04:75:75:46:c1 -> 31 Fa0/17
00:04:75:82:53:43 -> 32 Fa0/18
00:0a:01:d4:d1:39 -> 38 Fa0/24
00:0a:5e:05:36:92 -> 36 Fa0/22
00:13:8f:2f:ac:5e -> 34 Fa0/20
12:30:42
#get-port-by-mac 00:0a:5e:05:36:92
  -u USER-NAME          set security name (e.g. bert)
  -x PROTOCOL           set privacy protocol (DES|AES)
  -X PASSPHRASE         set privacy protocol pass phrase
  -Z BOOTS,TIME         set destination engine boots/time
General communication options
  -r RETRIES            set the number of retries
  -t TIMEOUT            set the request timeout (in seconds)
Debugging
  -d                    dump input/output packets in hexadecimal
  -D TOKEN[,...]        turn on debugging output for the specified TOKENs
...
                          f file:      log to the specified file
                          s facility:  log to syslog (via the specified facility)
                          (variants)
                          [EON] pri:   log to standard error, output or /dev/null for level 'pri' and above
                          [EON] p1-p2: log to standard error, output or /dev/null for levels 'p1' to 'p2'
                          [FS] pri token:    log to file/syslog for level 'pri' and above
                          [FS] p1-p2 token:  log to file/syslog for levels 'p1' to 'p2'
  -C APPOPTS            Set various application specific behaviours:
                          f:  do not fix errors and retry the request
00:0a:5e:05:36:92 -> 36
12:31:09
#vi /usr/local/bin/get-port-by-mac
62,65d61
< }
< close(SNMP);
< }
< 
70a67,70
> }
> close(SNMP);
> }
> 
12:31:57
#get-port-by-mac 00:0a:5e:05:36:92
00:0a:5e:05:36:92 -> 36 Fa0/22
00:0a:5e:05:36:92 -> 36 Fa0/22
12:32:01
#vi /usr/local/bin/get-port-by-mac
58a59
> 		print "LINE1\n";
12:32:37
#get-port-by-mac 00:0a:5e:05:36:92
00:0a:5e:05:36:92 -> 36 Fa0/22
00:0a:5e:05:36:92 -> 36 Fa0/22
12:32:42
#vi /usr/local/bin/get-port-by-mac
62a63,64
> }
> close(SNMP);
68,69d69
< }
< close(SNMP);
12:33:04
#get-port-by-mac 00:0a:5e:05:36:92
00:0a:5e:05:36:92 -> 36 Fa0/22
12:33:08
#vi /usr/local/bin/get-port-by-mac
12:33:15
#get-port-by-mac 00:0a:5e:05:36:92
00:0a:5e:05:36:92 -> 36 Fa0/22
12:33:19
#vi /usr/local/bin/get-port-by-mac
60c60,61
< 			get_name_by_port_index(get_index_by_port_id($mac_table{$mac},$switch),$switch),"\n";
---
> 		get_name_by_port_index(get_index_by_port_id($mac_table{$mac},$switch),$switch),
> 		"($switch)","\n";
67c68,69
< 		get_name_by_port_index(get_index_by_port_id($mac_table{$mac},$switch),$switch),"\n";
---
> 		get_name_by_port_index(get_index_by_port_id($mac_table{$mac},$switch),$switch),
> 		"($switch)","\n";

Файлы

  • /tmp/pipe
  • Podrobnosti
  • /tmp/pipe
    >
    21
    
    Podrobnosti
    >
    Sm. ssylku
    http://www.cisco.com/en/US/tech/tk648/tk362/technologies_tech_note09186a00801c9199.shtml
    

    Статистика

    Время первой команды журнала16:00:09 2006-12-19
    Время последней команды журнала12:33:19 2006-12-21
    Количество командных строк в журнале99
    Процент команд с ненулевым кодом завершения, %10.10
    Процент синтаксически неверно набранных команд, % 0.00
    Суммарное время работы с терминалом *, час 1.76
    Количество командных строк в единицу времени, команда/мин 0.94
    Частота использования команд
    vi29|===========================| 27.62%
    get-port-by-mac21|====================| 20.00%
    ls8|=======| 7.62%
    snmpwalk7|======| 6.67%
    man4|===| 3.81%
    mysql4|===| 3.81%
    mknod3|==| 2.86%
    tcpdump3|==| 2.86%
    cat3|==| 2.86%
    l3-agent2|=| 1.90%
    less2|=| 1.90%
    grep2|=| 1.90%
    which2|=| 1.90%
    ps1|| 0.95%
    sudo1|| 0.95%
    sysctl1|| 0.95%
    null1|| 0.95%
    chmod1|| 0.95%
    cp1|| 0.95%
    .vi1|| 0.95%
    make1|| 0.95%
    cd1|| 0.95%
    mkfifo1|| 0.95%
    id1|| 0.95%
    #^1|| 0.95%
    snmpget1|| 0.95%
    exit1|| 0.95%
    su1|| 0.95%
    ____
    *) Интервалы неактивности длительностью 30 минут и более не учитываются

    Справка

    Для того чтобы использовать LiLaLo, не нужно знать ничего особенного: всё происходит само собой. Однако, чтобы ведение и последующее использование журналов было как можно более эффективным, желательно иметь в виду следующее:
    1. В журнал автоматически попадают все команды, данные в любом терминале системы.

    2. Для того чтобы убедиться, что журнал на текущем терминале ведётся, и команды записываются, дайте команду w. В поле WHAT, соответствующем текущему терминалу, должна быть указана программа script.

    3. Команды, при наборе которых были допущены синтаксические ошибки, выводятся перечёркнутым текстом:
      $ l s-l
      bash: l: command not found
      

    4. Если код завершения команды равен нулю, команда была выполнена без ошибок. Команды, код завершения которых отличен от нуля, выделяются цветом.
      $ test 5 -lt 4
      Обратите внимание на то, что код завершения команды может быть отличен от нуля не только в тех случаях, когда команда была выполнена с ошибкой. Многие команды используют код завершения, например, для того чтобы показать результаты проверки

    5. Команды, ход выполнения которых был прерван пользователем, выделяются цветом.
      $ find / -name abc
      find: /home/devi-orig/.gnome2: Keine Berechtigung
      find: /home/devi-orig/.gnome2_private: Keine Berechtigung
      find: /home/devi-orig/.nautilus/metafiles: Keine Berechtigung
      find: /home/devi-orig/.metacity: Keine Berechtigung
      find: /home/devi-orig/.inkscape: Keine Berechtigung
      ^C
      

    6. Команды, выполненные с привилегиями суперпользователя, выделяются слева красной чертой.
      # id
      uid=0(root) gid=0(root) Gruppen=0(root)
      

    7. Изменения, внесённые в текстовый файл с помощью редактора, запоминаются и показываются в журнале в формате ed. Строки, начинающиеся символом "<", удалены, а строки, начинающиеся символом ">" -- добавлены.
      $ vi ~/.bashrc
      2a3,5
      >    if [ -f /usr/local/etc/bash_completion ]; then
      >         . /usr/local/etc/bash_completion
      >        fi
      

    8. Для того чтобы изменить файл в соответствии с показанными в диффшоте изменениями, можно воспользоваться командой patch. Нужно скопировать изменения, запустить программу patch, указав в качестве её аргумента файл, к которому применяются изменения, и всавить скопированный текст:
      $ patch ~/.bashrc
      В данном случае изменения применяются к файлу ~/.bashrc

    9. Для того чтобы получить краткую справочную информацию о команде, нужно подвести к ней мышь. Во всплывающей подсказке появится краткое описание команды.

      Если справочная информация о команде есть, команда выделяется голубым фоном, например: vi. Если справочная информация отсутствует, команда выделяется розовым фоном, например: notepad.exe. Справочная информация может отсутствовать в том случае, если (1) команда введена неверно; (2) если распознавание команды LiLaLo выполнено неверно; (3) если информация о команде неизвестна LiLaLo. Последнее возможно для редких команд.

    10. Большие, в особенности многострочные, всплывающие подсказки лучше всего показываются браузерами KDE Konqueror, Apple Safari и Microsoft Internet Explorer. В браузерах Mozilla и Firefox они отображаются не полностью, а вместо перевода строки выводится специальный символ.

    11. Время ввода команды, показанное в журнале, соответствует времени начала ввода командной строки, которое равно тому моменту, когда на терминале появилось приглашение интерпретатора

    12. Имя терминала, на котором была введена команда, показано в специальном блоке. Этот блок показывается только в том случае, если терминал текущей команды отличается от терминала предыдущей.

    13. Вывод не интересующих вас в настоящий момент элементов журнала, таких как время, имя терминала и других, можно отключить. Для этого нужно воспользоваться формой управления журналом вверху страницы.

    14. Небольшие комментарии к командам можно вставлять прямо из командной строки. Комментарий вводится прямо в командную строку, после символов #^ или #v. Символы ^ и v показывают направление выбора команды, к которой относится комментарий: ^ - к предыдущей, v - к следующей. Например, если в командной строке было введено:

      $ whoami
      
      user
      
      $ #^ Интересно, кто я?
      
      в журнале это будет выглядеть так:
      $ whoami
      
      user
      
      Интересно, кто я?

    15. Если комментарий содержит несколько строк, его можно вставить в журнал следующим образом:

      $ whoami
      
      user
      
      $ cat > /dev/null #^ Интересно, кто я?
      
      Программа whoami выводит имя пользователя, под которым 
      мы зарегистрировались в системе.
      -
      Она не может ответить на вопрос о нашем назначении 
      в этом мире.
      
      В журнале это будет выглядеть так:
      $ whoami
      user
      
      Интересно, кто я?
      Программа whoami выводит имя пользователя, под которым
      мы зарегистрировались в системе.

      Она не может ответить на вопрос о нашем назначении
      в этом мире.
      Для разделения нескольких абзацев между собой используйте символ "-", один в строке.

    16. Комментарии, не относящиеся непосредственно ни к какой из команд, добавляются точно таким же способом, только вместо симолов #^ или #v нужно использовать символы #=

    17. Содержимое файла может быть показано в журнале. Для этого его нужно вывести с помощью программы cat. Если вывод команды отметить симоволами #!, содержимое файла будет показано в журнале в специально отведённой для этого секции.
    18. Для того чтобы вставить скриншот интересующего вас окна в журнал, нужно воспользоваться командой l3shot. После того как команда вызвана, нужно с помощью мыши выбрать окно, которое должно быть в журнале.
    19. Команды в журнале расположены в хронологическом порядке. Если две команды давались одна за другой, но на разных терминалах, в журнале они будут рядом, даже если они не имеют друг к другу никакого отношения.
      1
          2
      3   
          4
      
      Группы команд, выполненных на разных терминалах, разделяются специальной линией. Под этой линией в правом углу показано имя терминала, на котором выполнялись команды. Для того чтобы посмотреть команды только одного сенса, нужно щёкнуть по этому названию.

    О программе

    LiLaLo (L3) расшифровывается как Live Lab Log.
    Программа разработана для повышения эффективности обучения Unix/Linux-системам.
    (c) Игорь Чубин, 2004-2008

    $Id$