小生同学的碎碎念

Entries for the ‘技术相关’ Category

Linux上使用华为E1750 3G无线上网卡

本人用的是gentoo,不过以下内容来自网络,他是ubuntu上的,应该都能适用 http://www.geeksonhigh.com/geeksonhigh/huawei-mobile-broadband-e1750-on-ubuntu-linux-9-10-howto 一、安装usb-modeswitch和libusb-dev 二、在/etc/usb_modeswitch.conf的最开始增加如下内容: DefaultVendor= 0x12d1 DefaultProduct= 0×1446 TargetVendor= 0x12d1 TargetProduct= 0×1001 MessageContent=”55534243000000000000000000000011060000000000000000000000000000″ MessageEndpoint=0×01 CheckSuccess=5 三、在/etc/udev/rules.d目录下新建一个文件叫15-huawei-e1750.rules,在这个文件内增加一行内容: SUBSYSTEM==”usb”, SYSFS{idProduct}==”1446″, SYSFS{idVendor}==”12d1″, RUN+=”/usr/sbin/usb_modeswitch” 四、重启一下udev服务,如果上网卡已经成功接上的话,应该可以在/dev/看到三个ttyUSB设备 五、我一般使用wvdial拨号,在/etc/wvdial.conf增加如下内容: [Dialer wcdma] Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 Init6 = AT+CFUN =1 Phone = *99# Idle Seconds = 300 Auto DNS = 0 Password = any Modem [...]

rsyslog and relp

留个坑,有后续进展再添。。。 时间格式化 rsyslog默认输出log的时间格式为Aug 11 18:59:46 可是想得到2010-08-11 18:59:46 怎么办呢? rsyslog的Property里有没有second这个东西。。 定义template如下: $template xsformat, “%$NOW% %TIMESTAMP:8:15% %syslogtag%%msg%\n” 只好通过TIMESTAMP这里去取时间了,希望看到的朋友有更好的方法提醒我一下,谢谢 简单日志过滤: local0.none -/var/log/syslog     #所有的local0日志都不写入syslog local.crit -/var/log/xxxxlog       #local.crti写入/var/log/xxxxlog :msg, contains, “ERR”           -/home/log/rsyslog_err.log  #msg中包含ERR的写入rsyslog_err.log文件 日志文件权限设置: 需要设置不同的日志读写权限,好吧,研究了老久,发现其实一样是使用$FileCreateMode 和 $umask设置 这两个值可以多次设置,在设置值之后的日志就按这个设置值设定权限

FreeBSD iotop

iotop是Linux上一个查看IO情况的好工具,FreeBSD上没有,不过FreeBSD的top可以实现类似功能 top -m io -o total

erlang初始化内存申请跟ulimit/limit的关系

实际上应该是说erlang内存申请跟文件句柄数的关系可能好一点? 前段时间有个项目打算尝试erlang做一些新的开发,让我这边准备 下测试环境,不过erlang对我来说,完全是个新的东西,当然,也还好,这个对我来说,就是安装嘛,估计问题不大,呵,在程序员的开发机和我的 Debian机上都没发现太大问题 当准备放到外服测试环境时,程序员刚跑一起来的那一刻,我PS了一下,发现刚起来erlang就占用了 几百M内存,当时第一反应是难道是程序员同时一下load了太多东西了?就提醒程序员留意一下了,不过他们也暂时没发现问题 跑了一个晚 上,第二天程序员同学告诉我提示内存不足,errno是enomem,第一反应是这么神奇,然后询问程序同学是否有更详细的debug,当然我也开始从系 统方面去思考这个问题 重新编译了一个lite版的erlang,发现还是一样,要几百M内存 到其它机器再编译一个,发现 这次内存少了,而且少的相当整齐,大概是原来的一半,对比了下这两台机器的区别,两点比较明显的区别是一台是64bit,8G内存,一台是 32bit,4G内存,难道跟系统的内存有关系(这两台的系统参数配置完全一样)?咨询了下程序员同学开发机的内存,及erl占用的内存,发现又不成比例 了,猜测跟系统某参数有关系.. 开始just fucking google it,没google到比较直接讲erlang内存申请方式的文章.只好到erlang的源码目录跑了下 grep -r alloc * 看看是否能有所斩获,让我找到一个看起来比较熟悉的关键字max_files,呵 erts/emulator/sys/unix/sys.c:       erts_alloc(ERTS_ALC_T_DRV_TAB, max_files * sizeof(struct driver_data)); 难 道跟系统最大文件句柄的参数有关?看了一下两台机的limit, descriptors  655000 把 这个改成1024,再跑erl,内存降到几十M,看来跟这个有关系了,呵 使用关键字”erlang max_files limit” 让偶搜索到一篇叫<erlang深度分析>的文章,里面1.62节提到了这一点 之 后程序同学提示我能不能改小这个limit?系统的限制我就不想改了,也不能乱改了,但改变当前shell的limit还是可行的 CSH %limit descriptors 1204 BASH/SH $ ulimit -n 1000 清静~~~~ PS:limit/ulimit更改文件句柄数,不能超过 系统设置的最大文件句柄数

CNAME记录不与其它常规记录共存

嗯嗯,记录一下,省得下次又去翻rfc给人,我翻的辛苦,朋友也看的辛苦,直接抽出来好了^_^ http://www.ietf.org/rfc/rfc2181.txt The DNS CNAME (“canonical name”) record exists to provide the canonical name associated with an alias name. There may be only one such canonical name for any one alias. That name should generally be a name that exists elsewhere in the DNS, though there are some rare applications for aliases with the accompanying [...]

說說我今天干的比較BT的一件事(‘搞定’IE下的select disabled)

先吼一句:瀏覽器標準不統一真不是一件好事吧,拍磚的請砸向遠方,我扛不住.. 好吧,說說我BT的需求先<之前已經被同事小朋友說需求BT了,哈>: 有一個表單,裡面有幾個select選項,我需要顯示給用戶看,可我又不給你選,但我又希望這個表單能以正常的方式提交,select什麼就是什麼,我不想把他搞成TXT或者input readonly的形式給用戶看,我就是要以表單的形式體現..orz,我可真固執.. 好吧,其實原因是這樣的,這個postaction的後面,我是用了一個django的form,我不想搞成txt或者input的形式就是不想在我傳給這個form之前我還要做預處理..是不是很想砸我,好吧,這些都不是重點,看看我是怎麼”搞定”的吧,之所以搞定加了雙引號,是因為我沒有本質上的搞定,但達到了我的需求了-_- 假設某個select的ID是id_rdtype,如: <select name=”rdtype” id=”id_rdtype”> <option value=”CNAME”>CNAME</option> <option value=”A” selected=”selected”>A</option> </select>

通過ssh session及tar命令進行遠程備份

今天一朋友提起tar命令通過管道及ssh進行備份的一個想法,想想自己已經很久沒這樣用過了,就記錄一下吧,說不定哪天還會用上 我們首先假設,我們需要壓縮的目錄為data 將文件經過tar壓縮並傳到遠程服務器上: tar cpf – data | ssh user@remote_host “cat > data.tar” 或者 tar cpf – data | ssh user@remote_host “dd of=data.tar” 將文件經過tar壓縮傳送到遠程服務器上,併進行解壓: tar cpf – data | ssh user@remote_host tar xpf – 在本地解壓遠程服務器上的備份文件: ssh user@remote_host “cat data.tar” | tar xpf -

python digest与hexdigest的转化

今天一朋友提到一个问题: >>> base64.b64encode(hashlib.md5(“123456″).digest()) ’4QrcOUm6Wau+VuBX8g+IPg==’ 但是我只知道这个值:e10adc3949ba59abbe56e057f20f883e,这个值是由下面方式得来的: >>> hashlib.md5(“123456″).hexdigest() ‘e10adc3949ba59abbe56e057f20f883e’ 问题:怎么从’e10adc3949ba59abbe56e057f20f883e’得到’4QrcOUm6Wau+VuBX8g+IPg==’ ? 答: base64.b64encode(‘e10adc3949ba59abbe56e057f20f883e’.decode(‘hex’))

gentoo下破解无线wep加密

忏悔一下。。我今天竟然干了这事-_-不过只是尝试,无盗用之心,话说自打搬了租屋之后,由于电信ADSL实在是太贵鸟,一直没装网络,倒是习惯了回家看看电视,和舍友聊聊天,甚是惬意,网络在非工作需要时,倒是可有可无了,在前段时间就看到过说wep是可破解的,今天手痒。。就尝试一下。。主啊,原谅我吧。。阿门-_- 在破解前请先确认你的电脑有支持无线网络的硬件了,并确认你的无线网络接口名字了,比如我的是wlan0,另外,安装如下软件包: [I] net-wireless/aircrack-ng Available versions:  0.9.3 1.0_rc3 1.0_rc4 1.0 {kernel_FreeBSD kernel_linux sqlite wifi} Installed versions:  1.0(08:09:29 PM 11/18/2009)(kernel_linux sqlite -kernel_FreeBSD) Homepage:            http://www.aircrack-ng.org Description:         WLAN tools for breaking 802.11 WEP/WPA keys 使用emerge net-wireless/aircrack-ng安装。如果是Debian流的系统,比如Ubuntu,那应该是apt-get install aircrack-ng了,接下来就是网络上找到的操作了,直接引用好了,fix了几个小笔误罢了

Gentoo下VirtualBox使用alsa发音

之前VirtualBox使用alsa驱动时,总是与HOST机(gentoo)冲突,不能出声 换用pluseaudio驱动的话,HOST机又没声音-_-只好忍受了一段时间的无声虚拟XP 今天偶然发现,原来。。原来是可以出声且不冲突的,本来也应该是这样的 以前用Debian的时候就没这个问题,所以对于这个问题的解决一直是没放弃的 今天终于让我发现,哇哈哈哈哈-_-囧 查了一下我的/etc/make.conf发现有esd这个flag,好像当时是为了解决gnome的音量 调节问题加的-_-忘了。。杯具一下 在/etc/portage/package.use里增加: media-libs/libsdl -esd 之后: emerge media-libs/libsdl -1 问题解决~~~