修改 /usr/local/etc/rc.d/vmware-tools.sh, 加上紅色字串部分即可
# Start the guest OS daemon
vmware_start_guestd() {
cd "$vmdb_answer_SBINDIR" && "$vmdb_answer_SBINDIR"/vmware-guestd \
--background "$GUESTD_PID_FILE" --halt-command "/sbin/halt -p"
}
2012年12月24日 星期一
2011年7月5日 星期二
自製DNS load balance(正確說只有sharing)
前情提要: 因client DNS query是走UDP, 免費套件中比較好的load balance是HAproxy, 但只支援TCP, 所以只好自製. 作法大致上是用pf(pakcet filter)防火牆中的nat+rdr去達成分送後端的功能, 再配合table可動態增刪, 加上自製的一些shell script與一些小軟體, 即可做到DNS load balance server.
所需機器: 一台用作load balance server(簡稱LB), 三台DNS server(簡稱DNS-A, DNS-B, DNS-C), 當然後端要幾台是隨意...
架構: 類似NAT+private ip的網路
所需機器: 一台用作load balance server(簡稱LB), 三台DNS server(簡稱DNS-A, DNS-B, DNS-C), 當然後端要幾台是隨意...
架構: 類似NAT+private ip的網路
2011年7月4日 星期一
自動重啟動停掉的服務 shell script
rcd_service_mon.sh
程式碼:
#!/bin/sh
export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin:/root/bin
if [ "$1" = "local" ];
then
rcd="/usr/local/etc/rc.d"
service="$2"
else
rcd="/etc/rc.d"
service="$1"
fi
status=` $rcd/$service status|grep 'is not running' `
if [ "$status" ];
then
echo "$1 is not running, auto restart..."
$rcd/$1 start
fi
程式碼:
#!/bin/sh
export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin:/root/bin
if [ "$1" = "local" ];
then
rcd="/usr/local/etc/rc.d"
service="$2"
else
rcd="/etc/rc.d"
service="$1"
fi
status=` $rcd/$service status|grep 'is not running' `
if [ "$status" ];
then
echo "$1 is not running, auto restart..."
$rcd/$1 start
fi
用法:
rcd_service_mon.sh service_name 或 rcd_service_mon.sh local service_name
例:
1. 對named作用: rcd_service_mon.sh named
2. 對 apache 2.2 作用: rcd_service_mon.sh local apache22
詳細解說:
簡單說就是把手動的事情變成自動, 程式自動呼叫rc.d下的啟動用shell script, 並加上 status以得知狀態, 然後過濾輸出確認是否為沒在運作的狀況, 若沒在運作就嘗試啟動之.
2011年7月3日 星期日
unix epoch time 用date指令轉換
epoch time 是unix常用的一種時間, 為自從1970/1/1 0:0:0 開始到指定時間
所經過的秒數, 但閱讀不易, 可透過下面的指令轉換
date -j -f '%s' 1273075362 '+%Y/%m/%d %H:%M:%S'
顯示結果為
2010/05/06 00:02:42
其中
-j 不因執行此指令設定系統時間
-f '%s' 指定輸入的時間格式, 在此即為秒
1273075362 即為epoch time
'+%Y/%m/%d %H:%M:%S' 顯示的格式
所經過的秒數, 但閱讀不易, 可透過下面的指令轉換
date -j -f '%s' 1273075362 '+%Y/%m/%d %H:%M:%S'
顯示結果為
2010/05/06 00:02:42
其中
-j 不因執行此指令設定系統時間
-f '%s' 指定輸入的時間格式, 在此即為秒
1273075362 即為epoch time
'+%Y/%m/%d %H:%M:%S' 顯示的格式
被freebsd 7.X以前的版本的fdisk寫過dd(dangerously dedicated)的硬碟處理
昨日幫朋友重灌起來的系統在其他硬碟上重新建立資料碟, 發生了fdisk那關寫入成功但再次讀取卻啥都沒有的狀況,
經過一夜(?)思考後, 想到應該是mbr有什麼東西被dd模式改寫掉造成, 解決辦法是使用
fdisk -B /dev/adX
並於第一個問題回應 y 之後問要不要寫入當然也要回 y, 即可重寫mbr的boot code, 之後再去sysinstall的fdisk就可以看到之前切出來的partition,
且/dev/adXs1 s2也都跑出來了.
其他失敗的嘗試有
1.dd if=/dev/zero of=/dev/adX bs=1m count=10
無效, 因為存取mbr磁區需另外跟硬碟溝通
2. fdisk -i /dev/adX
無效, 後來發現跟這東西完全無關...
訂閱:
文章 (Atom)