Do action by EEM+TCL after the log happen X Times in Y LC/RSP at ASR9k

Problem:

We can do more automated action by EEM + TCL on Cisco router, and have more trigger way for syslog pattern trigger, OID trigger, CPU Threshold trigger and so on. That will match IOS platform, no any issue. But in XR platform, each LC/RSP have separate alarm, we maybe have special requirement, e.g:

Some alarms frequency happen, I want to restart the process (base on pid) if the alarm happen 3 times in 5min on each LC, how to do that?

0/3/cpu0: alarm report "C", Pid = zzz
0/1/cpu0: alarm report "A", Pid = xxx
0/2/cpu0: alarm report "B", pid = yyy
0/3/cpu0: alarm report "C", pid = zzz
0/1/cpu0: alarm report "A", pid = xxx
0/1/cpu0: alarm report "A", pid = xxx

Solution:

We can do interactive script by TCL I/O, create a file in Harddisk/disk which has the history/count of syslog for Lcs. We can read this file using the script whenever the syslog is observed. Based on the number of syslogs the script can take the required action.

The steps will be like this, please check attachment and script flow chart for detail script, in my example, I only dump arp process for testing, please change script base on your requirement, in order to test script, you can add flag to test that, e.g “action_syslog priority info msg “a””: 完整阅读

我的跑步历程 – 未完待续

很多东西不记录就会忘记,今天有些时间,索性把这几年的跑步经历总结一下~ 从开始跑步到现在也有段时间了,为什么要跑步?主要是为了减肥健身。最喜欢夏天跑步,跑到全身湿透的感觉真是爽的没话说^_^ 春天和秋天较好,我实在不太适合冬天跑步,跑一次难受一次,不是感冒就是头疼。简单总结下这几年的跑步经历吧:

2010年的北马是我工作后的第一次长跑、也是我第二次参加关于长跑的比赛(第一次是高中时代表学校参加海淀区高中生冬季长跑比赛,7公里)。那年我考上了北工大的MBA。那天冒着雾霾和小雨,瘸着腿完成了北马10公里,成绩记得是1小时零8分,跑完后深秋的风刮在身上真是冷呀,但我第一次感受到大家一起跑步的快乐,而且还有周围路人的鼓舞!

2011年的北马,由于其他原因,我错过了,但那年我完成了我人生中的第一件大事 :-)

完整阅读

更换MAC后恢复Outlook邮箱

最近换了新的MAC-2015款RMBP,第一代RMBP光荣退伍,虽然是三年前的老电脑,但仍然非常好用,Reimage后跟新的没什么两样。来张配置对比图留念:

2012-rmbp

 

2015-rmbp

MAC用了将近三年,感慨颇多,就不在此文介绍了,有机会在其他独立的文章中聊聊感想。换电脑后第一件事就是恢复老电脑的邮箱,这事比较折腾人,虽然最后弄好了,但还是丢了几个文件夹的邮件,大概3k的邮件损失了,下面详细讲下如何备份MAC的outlook以及如何恢复。 完整阅读

Ubuntu 14.04 General config

Not use ubuntu for long time… some useful commands had forgot, summary again:

1. Permit root login
gedit /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf –> “greeter-show-manual-login=true”
sudo passwd root
reboot

2. Change language
gedit /etc/default/locale –> change what do you want
reboot

3. Script couldn’t run on linux “bad interpreter: No such file or directory”
that should dos format, need change to unix format
vi xxx
check format by “:set ff” or “:set fileformat”
change format by “:set ff=unix” or “:set fileformat=unix”
:wq

4. Enable ssh service
sudo apt-get install openssh-server
gedit /etc/ssh/sshd_config –> “PermitRootLogin yes”
restart by “/etc/init.d/ssh restart”
check by “ps -ef|grep ssh”
reboot

5. Disable firewall
check whether enable by “ufw status”
disable by “ufw disable”

linux/Unix General Commands

1. Grep, awk and xargs
ps -ef | grep frank | grep soft_router | awk ‘{print $2}’ | xargs kill
grep: 过滤
awk:文本分析工具
xargs: 跟其他命令配合如使用,扩展名了

2. Find command
$find ~ -name “*.txt” -print
查找目录:find /(查找范围) -name ‘查找关键字’ -type d
http://blog.csdn.net/windone0109/article/details/2817792
http://www.qnx.com/developers/docs/6.4.1/neutrino/utilities/f/find.html
http://blog.csdn.net/ldl22847/article/details/7611119

3. GREP常用Option:
-c:只输出匹配行的计数。
-i:不区分大 小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
#more size.txt | grep -inv ‘test’ #查找不包含“test”的匹配项的行
#more size.txt | grep -inv ‘test’ >>xxx #过滤后的信息重定向到一个文件中,xxx是你的文件名
#grep -E ’10G|VID’ file #查找包含10G或包含VID的行,-E是扩展模式,同等于egrep

4. pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<:从匹配正则表达式的行开始。
\>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ – ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
. :所有的单个字符。
* :有字符,长度可以为0。

5. 文本输出太多,可以用下面命令,然后左划线过滤:
在命令后面加 | more. 可以每屏按键后翻。想退出按 q
命令后面加| less ,可以前后翻。想退出按 q

6. 加路由并查看路由表:

$sudo route add -net 10.10.10.0/24 192.168.255.131
Password:
add net 10.10.10.0: gateway 192.168.255.131
$ netstat -r
Routing tables

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
default            hsrp-10-140-0-0.ci UGSc           31        0     en0
10.10.10/24        192.168.255.131    UGSc            0        0  vmnet8

$ netstat -in
Name  Mtu   Network       Address            Ipkts Ierrs    Opkts Oerrs  Coll
lo0   16384 <link#1>                         64058     0    64058     0     0