显示标签为“linux”的博文。显示所有博文
显示标签为“linux”的博文。显示所有博文

星期四, 三月 24, 2011

快被 linux 的at玩死了

在作公司的產品,其中有一個零件,我要port at到公司的linux 上。

由於整隻linux是學長重新改過的,在生成script的時候,有一個比較特別的地方是,系統的script會在 /tmp/cfg.XXXdfa 之類暫時的資料夾生成。

而我把at port上system 之後,由於我讓at 的指令生成的時間點,正好是script生成的時間點,於是at 就把這個/tmp/cfg.XXXdfa 視為是current directory存下來, 寫到/var/spool/cron/atjobs/下的job define script檔

然後,我的at永遠都不會動,除非我下的時間點是 now。不會動的錯誤訊息是 Execution directory inaccessible

我用console進去 debug時,永遠都會動,因為current directory是 /root


星期五, 十月 08, 2010

轉換subnet mask的程式 => ipcalc

寫網路程式時,常常要處理和ip address有關的issue。這時候,遇到255.255.255.255 = 32的Mask還好,但是如果是IP address/31 或是 IP address/30呢?

還好,我找到了一個很好用的程式: ipcalc
ipcalc 192.168.0.1/24

下頭是輸出
Address: 192.168.0.1 11000000.10101000.00000000. 00000001
Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000
Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111
=>
Network: 192.168.0.0/24 11000000.10101000.00000000. 00000000
HostMin: 192.168.0.1 11000000.10101000.00000000. 00000001
HostMax: 192.168.0.254 11000000.10101000.00000000. 11111110
Broadcast: 192.168.0.255 11000000.10101000.00000000. 11111111
Hosts/Net: 254 Class C, Private Internet

星期二, 三月 09, 2010

讓qemu啟動時,可以不用加上sudo的改法

(1)先用 whereis qemu 找出系統上,qemu的執行檔在那個資料夾。


(2)為這個執行檔加上SetUID,這樣它就可以直接access /dev/net/tun
sudo chmod 4755 /usr/bin/qemu-system-i386

找出所有沒有被stripped的檔案

find . -type f | xargs file | awk '$0~"not stripped" {print $0}' | awk -F: '{print $1}'

解說:
(1) find . -type f (可以遞迴找出子目錄下所有的檔案 )
(2) xargs 可以將前一個指令的輸出,當作argument交給file指令
(3) file指令可以顯示這個檔案有沒有被strip
(4) 第一個awk 指令可以先 (*)比對 "not stripped" 這個字串
再 (*)把有被 strip的行印出
(5) 第二個awk可以取出檔案名稱