dmesg 以 human readable 的方式显示时间

dmesg 默认以 seconds.nanoseconds 方式来打印出信息,这个不是很符合要求,最好是以 human readable 的方式显示。由于版本不同,dmesg 可以使用的参数也不同,比如我的 Arch 可以通过 -T 参数来显示可读的时间日期,而 Ubuntu 10.04.4 和 CentOS 5.6 可以使用的参数则少的可怜,并且没有 -T 选项。

在 github 上找到了一个已经写好的 pydmesg
其实 dmesg 显示的内容在 /var/log/ 下面都能找到。
 

IP 冲突引起的问题

jw-2 开放的端口会出现间歇性的连接不上,直接 “connection refused”,比如从 jw-1 连接
[email protected]:~$ ssh jw-2
ssh: connect to host 192.168.10.50 port 22: Connection refused

查看 jw-1 上当前的 arp 表:
[email protected]:~$ arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.10.50              ether   78:2b:cb:77:d5:3f   C                     eth1

在 jw-2 上查看网络连接:
[email protected]:~$ ifconfig
eth0      Link encap:Ethernet  HWaddr d4:be:d9:ed:64:9d 
          inet addr:192.168.10.50  Bcast:192.168.10.255  Mask:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:36 Memory:d2000000-d2012800 

Continue reading

apt error

通过 ppa 增加某个源的时候,执行:
$ sudo add-apt-repository ppa:xxx
会出现如下的 error:
sudo: add-apt-repository: command not found

原因是缺少 python-software-properties,安装即可:
$ sudo apt-get install python-software-properties

ref:
http://pricklytech.wordpress.com/2011/07/24/ubuntu-server-10-4-lucid-add-apt-repository-command-not-found/
 

Could not get lock /var/lib/apt/lists/lock 问题

遇到了这样一个问题,使用 apt-get 更新某个包,由于网速较慢,就 Ctrl+c 强制停止了(?不确定),过了一段时间再次 apt 时出现如下的错误:
Could not get lock /var/lib/dpkg/lock – open (11 Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/)

g 了下,大致意思是说 lock 这个文件同一时刻只能被一个进程占用,否则会出现上面的错误。然后大多数的解决方式如下,总之是把 lock 这个文件给删除了:
$ sudo rm /var/lib/dpkg/lock
$ sudo rm /var/lib/apt/lists/lock
$ sudo rm /var/cache/apt/archives/lock

实际,上面三个文件还是有一定区别的。不过执行了并没有效果,而是显示类似如下的信息:
rm: cannot remove '/var/lib/dpkg/lock': No such file or directory

在 askubuntu(1, 2) 上找了个方法,分别适用于 apt-get 以及 apt-cache:
$ sudo fuser -cuk /var/lib/dpkg/lock; sudo rm -f /var/lib/dpkg/lock
$ sudo fuser -cuk /var/cache/apt/archives/lock; sudo rm -f /var/cache/apt/archives/lock

It works!

out of range-启动黑屏

一台 11.10 内核 3.0.0-12-server 的机器将内核降到了 2.6.32-38-server,重启失败,通过 iDRAC 登录上去,屏幕上只能看到 "out of range" 的信息。
这篇文章讲述了问题的原因,主要还是显卡的问题。通过使用 nomodeset 来禁止内核在启动的时候加载显卡驱动:

将 nomodeset 添加到 /etc/default/grub 中:
GRUB_CMDLINE_LINUX="nomodeset"
$ sudo update-grub

另外,还看见有种做法,是修改 vga 这个参数,我试了下,也能达到效果:
$ dmesg  | grep BOOT
[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-2.6.32-38-server root=UUID=ea950ea8-e81a-106f-ac4b-2f7ffa526648 ro vga=700
[    0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz-2.6.32-38-server root=UUID=ea950ea8-e81a-106f-ac4b-2f7ffa526648 ro vga=700

关于 vga 的转换,可以看这里
 

使用 split 分割文件

默认 1k 行一个问题,默认以 x 为前缀:
$ split accesslog
$ ls | head -n 5
accesslog
xaa
xab
xac
xad

numeric-suffixes:
$ split -d accesslog
$ ls  | head -n 5

accesslog
x00
x01
x02
x03

分割固定的行:
$ wc -l accesslog
733928 accesslog
$ split -l 300000 accesslog
$ ll
total 317640
-rw-r–r– 1 jaseywang jaseywang 162625987 2012-06-02 20:45 accesslog
-rw-rw-r– 1 jaseywang jaseywang  66399043 2012-06-02 20:47 xaa
-rw-rw-r– 1 jaseywang jaseywang  66551898 2012-06-02 20:47 xab
-rw-rw-r– 1 jaseywang jaseywang  29675046 2012-06-02 20:47 xac
$ wc -l xaa
300000 xaa
Continue reading