洛阳铲的日志

2010年01月22日

两个ssh相关的ruby脚本

Filed under: Linux,SSH — 标签:, , , , — HackGou @ 17:11

自从上次存储上面发现一个异常后,禁用不带密码的key。
而且关掉了sudo的nopasswd选项,
这下苦了我们自己,面对成百上千的服务器,需要拷贝个文件啊
或者root权限做个事情啊,那绝对是恶梦。为了拯救自己于恶梦,
利用NET::SSH,写了两个小脚本:

  1. 一个是scp.rb用来拷贝文件的,用法很简单:
    scp.rb hostA:/tmp/afile ./ 或者
    scp.rb afiel hostA:/tmp/afile
  2. 另外一个叫ssh_sudo.rb,看名字就知道,ssh来sudo的,比如:
    ssh_sudo.rb hostA cat /etc/shadow 会在HostA上面执行 cat /etc/shadow

把ssh_sudo.rb中,15行换成:
15 channel.exec(“#{cmd}”) do | ch, success|
就成了普通版的ssh了。这两个可以解决我80%的问题了。剩下20%就根据情况,临阵定夺了

################## scp.rb #####################

#!/usr/local/bin/ruby
require ‘net/scp’
password=”real_password
username=‘real_name’
src=ARGV[0]
dst=ARGV[1]
if ARGV[0] =~ /:/
host,remote_path=ARGV[0].split(“:”)
else
host,remote_path=ARGV[1].split(“:”)
end
Net::SCP.start( host, username, :password => password) do | scp |
if ARGV[0] =~ /:/
scp.download!( remote_path, dst )
else
scp.upload!( src, remote_path )
end
end
################## end scp.rb #####################

######################## ssh_sudo.rb #######################

#!/usr/local/bin/ruby
require ‘net/ssh’
password=”real_password
username=‘real_name’
host=ARGV[0]
cmd=ARGV[1..ARGV.length-1].join(” “)

begin
#Net::SSH.start(host, username, :password=> password, :verbose => :debug ) do | session |
Net::SSH.start(host, username, :password=> password, :timeout=>3 ) do | session |
retry_count=0
session.open_channel do | channel|
channel.request_pty
channel.exec(“sudo #{cmd}”) do | ch, success|
#channel.exec(“echo ‘robert:$xxx.’ | sudo /usr/sbin/chpasswd -e”) do | ch, success|
abort “could not execute command” unless success
channel.on_data do | ch, data |
if data =~ /Password/
retry_count+=1
channel.send_data password+”\n”
else
puts data
end
end
channel.on_extended_data do |ch, type, data|
if data =~ /Password/
retry_count+=1
channel.send_data password+”\n”
end
end
channel.on_close do |ch|
puts “Error for #{host}” if retry_count > 1
end
end
end
end
rescue Exception
$stderr.print “Error: #{$!} on #{host}\n”
end
############# end of ssh_sudo.rb ###################

Del.icio.us : , , , ,

2010年01月20日

ramfs VS tmpfs

Filed under: Linux — 标签:, , , — HackGou @ 11:23

这两种基于内存的文件系统,都可以称为内存盘。只是稍微有些差别:
Mount options for ramfs
Ramfs is a memory based filesystem. Mount it and you have it. Unmount it and it is gone. Present since Linux 2.3.99pre4. There are no
mount options.

Mount options for tmpfs
The following parameters accept a suffix k, m or g for Ki, Mi, Gi (binary kilo, mega and giga) and can be changed on remount.

size=nbytes
Override default maximum size of the filesystem. The size is given in bytes, and rounded down to entire pages. The default is
half of the memory.

nr_blocks=
Set number of blocks.

nr_inodes=
Set number of inodes.

mode= Set initial permissions of the root directory.

从挂载选项中可以看出两者最大的差别: tmpfs有size限制,ramfs没有size限制,换句话说: tmpfs不会耗光内存,因为有大小限制:超过物理
内存的时候会使用swap;而ramfs则有可能耗光物理内存,把机器拖垮,但是好处是会动态增长,适用于无法预估所需内存大小而内存又肯定够用的
情况,比如smarty的template_c;

Del.icio.us : , , ,

2010年01月19日

Bugzilla书写经验

Filed under: 生活小札 — 标签:, — HackGou @ 11:10

bugzilla是不错,但是没有WYSIWYG的编辑器,实在寒酸
好在bugzilla的帮助文档中有一个列表,罗列出可链接书写格式的参考。
其中用处最多的就这几项项,又是28:

comment3 -> comment3

Bug 178148 -> Bug 178148

Issue 195427 comment 1 -> Issue 195427 comment 1.

Issue Linkable References

Linkable References enable the user to automatically link to another issue or comment via signal words. When you enter a linkable reference in the Additional Comments text box, Bugzilla automatically creates a link to that reference in the posted comment. Refer to the following table for the list of linkable entries and their respective signal words.

Note: A word followed by a + sign indicates that multiple words are required. A comma separating words indicates that any of those words work as a signal to Bugzilla. The signal words are not case-sensitive.

Linkable Reference

Single Words (not case sensitive)

Netapp bug

netapp + bug

Netapp case, log or ticket

netapp + case, log, ticket

Netapp Part Number

netapp, newtwork app

Netapp Syslog translator

[A valid syslog output]

CJ Account

ac, cid

FedEx Tracking Number

fedex, tracking

UPS Tracking Number

[A valid UPS tracking number starting with 1Z]

F5 Solution Id

f5 + SOL

RFC

rfc,bcp,std

Cisco Bug Id

[A valid Cisco ID starting with CSC]

Cisco TAC Case

cisco, tac + case,ticket

Cisco RMA

rma

Cisco Error message decoder

[A valid Cisco error message number]

IEEE OUI lookup (mac addresses)

[A valid mac address]

Telnet Command

telnet

Javadocs

[A valid javadoc reference]

Virus Name

[A valid virus name beginning with W32]

Dell Service Tag

[A valid service tag number]

Seagate Part Number

[A valid part number starting with ST]

Mojo Adserver Placement Id

rotation, placement

Del.icio.us : ,

2010年01月9日

黄百之旅的流水帐

Filed under: 徒步 — 标签: — HackGou @ 16:02

响应老何的号召,期待在浙江第一峰上,就着皑皑白雪,迎接2010年的第一缕阳光
于是乎便有了下面这篇流水帐,时间是根据录音回来整理的,气温及海拔等数据来自
王子的CASIO和老何的GPS校对结果

12月30号晚上

9:45家里出发
10:30火车南站
11:50火车晚点至12:15分

12月31号

7:00 到丽水火车站,晚点半小时,火车站出口对面50m处有3路公交车直达丽水汽车西站,车票1.5
汽车西站以西200m有加油站,可以加到93号汽油,3块钱加了450ml汽油。 早饭18块,
8:10 分出发, 72一张,2快保险。每40分一班,11点左右到庆元
9:45 刚刚过龙泉
11:20 到庆元汽车站,庆元汽车站等到万里林的车,山路弯来弯去,Q胖开始晕车了
12:40 13967074746 到万里林车主电话号码。庆元车站出发到万里林,预计14点到,5人车费45。
每天一班,路上风景不错,逆流而上
14:10 到百山祖万里林(车根村)
14:50 万里林出发,进入百瀑沟,在卧龙瀑处,右侧的小路不通,沿左边走,需要过溪
16:00 走完百瀑沟,到杜鹃谷入口休息,老何的纯水净化坏掉了,
16:05 加入杜鹃谷,
16:15 走完杜鹃谷, 期间王子左脚小腿抽筋一次,海拔1675m,8.6℃
16:20 到百管站
16:35 放下包,开始轻装冲顶,海拔1700m
17:00 到达百山祖冷杉
17:15 登顶百山祖,休息15分,
17:30 开始下撤,气温迅速下降,
17:40 左右天全黑
17:55 下撤只百管站,耗时25分钟
18:30 开始喝老何的红糖姜汤
19:50 油炉开始出问题,修理;准备烧水洗脚、洗脸,月亮很大很圆,三顶帐篷都已经在百管站的水泥地展开,准备睡觉了

2010年1月1号

01:30 来了一帮驴友,吵醒了百管站的鸡还有小黄,它们一唱一和,搞到天亮。想起了柴门闻犬吠,但也想起了周扒皮;实在难以入睡
05:00 王子起床,据称昨晚: 帐内温度-3.6℃。王子帐篷内壁结冰,睡袋温度20℃
05:10 我开始起床,外帐全是水, 开始修油炉
07:55 出发,折腾一个半小时后,开始出发, 百管站的小黄跟着我们一路送到茶木於
09:10 到达茶木於管理站香菇湾入口,此处不容易找路,应该沿着铺满松针的平地的最右侧
09:43 爬完茶木於旁边的坡,电话线和高压线
09:51 茶木於到龙岩、三井溪的三岔路口,继续沿着高压线走,电话线通向三井溪
11:20 到达龙岩村,离龙岩村一里地的时候,有一个岔路口,我们选择了右边的岔路,然后直直的往下
后来证实,这个向下的岔路是通向下溪村的,是条错路。在下溪村打听到:沿着公路就可以直达龙岩村。
12:15 龙岩吴三公祠堂前吃完午饭,准备出发
13:20 溧阳到龙岩三岔口,
13:30 到达牌坊,牌坊到麻连岱2.5km,麻连岱到凤凰湖2.8km
14:40 到麻连岱向导家
15:00 从麻连岱出发,轻装冲刺黄矛尖
16:05 到凤阳湖动物通道
16:20 瓯江源牌坊,沿右侧石阶登顶黄矛尖
17:25 黄矛尖登顶, 5m/s风速
17:36 开始下撤,准备头灯
17:45 天全部黑了,气温-7/8℃
18:10 黄矛尖至凤阳湖的路上,大雾继续弥漫,能见度5m,气温下降比较厉害
18:30 撤到凤阳湖
20:00 撤回麻连岱,老何嚷着要鸡汤,老马嚷着再也别自虐了

2010年1月2号

07:30 离开向导家,从麻连岱向龙泉进发,25/人
10:35 到龙泉车站,下车即可到丽水的班车,40/人,6:30到19:40都有车
12:30 到达丽水车站
11:05 腐败

2010年1月3号

06:45世纪大道呈鸟兽散
07:25到家门口

Del.icio.us :

Powered by WordPress