2011年11月15日 星期二

這篇文章要感謝 瘋狂帽客 由他那邊部落格轉載的

Prolific Technology USB to RS232 console works on MAC OSX

我想Mac的機器,對於大多數的Engineer來說最讓人頭痛的就是沒有RS232 console port,這個東西對於Engineer來說是多麼重要的東西,我想我也不需要多說了,但是這個已經不再是Mac的瓶頸了!利用以下方法就可以讓你在 Mac下使用USB to RS232 console。

1. 買個Prolific PL2303的USB to RS232 console: 似乎很多家都是用他的chipset,至少我手邊的兩家不同廠商都是。
2. 到這裡下載driver,請注意它有區分10.6.x與104.x/10.5.x!裝錯版本可是驅動不了的!
3. 裝好driver後將Mac開機後,插入USB to RS232 consoel。
4. 至/dev目錄去檢查是否有多出一個usb device file,for example: /dev/tty.usbxxx。
5. 開啟Mac終端機。
6. 輸入 screen /dev/tty.usbxxx 9600,9600就是你的baud rate,至於怎麼用screen command請參考我以前的筆記

以上就可以在Mac裡使用console了,但是如果你還是習慣使用圖形介面的console管理介面,我到是推薦一套for Mac的免費serial tools,yes~它就叫做serial tools

0 comments:

2011年10月13日 星期四

esx4.1 service console 重新設定


重新建立你的VSwif0介面











分享








很多人可能會誤砍VSwif0介面,導致不能用VI Client登入管理ESX Server. 或是網路忽然失效

所以學起來也不賴,可以救急.

以下方式重建你的
Service Console 需到ESX Server Console畫面前面開始以下步驟 :



1.建立新vswitchesxcfg-vswitch -a vSwitch0

2.建立新的portgroupesxcfg-vswitch -p "Service Console" vSwitch0 3. 3.分配網
esxcfg-vswitch –L vmnic0 vSwitch0 4. 4.分配vswif 介面並設定IPesxcfg-vswif –a vswif0 -p "Service Console" i 192.168.2.102 –n 255.255.255.0




Rebuilding your Service Console network


We had been having issues installing in a new ESX farm on a c7000 chassis, due to the lack of a Routing Switch (we will not go into the reasons as to its absence, the pain is still too sharp), so when it finally arrived we had to change the IP addressing scheme on the installed servers and guests to collapse the current flat network that utilised a 16 bit sub-net into a network that utilised a 24 bit sub-net mask. what follows below is a blow by blow account of the command line battle. It was a glorious war :D


So how exactly do you do this from the command line, well firstly you have to delete your vswif and if configured your vmknic interfaces by using the following commands


設定網卡


esxcfg-vswif -d vswif0

esxcfg-vmknic -d vmkernel   Substitute your vmkernel name here.


Also remember that ESX is a case sensitive Operating system: VMKernel is different from vmkernel.   Once that is done you need to delete your port groups


esxcfg-vswitch -D “VMKernel”

esxcfg-vswitch -D “Service Console”


The Quotes are not necessary unless you have spaces in your port group names so it is better to get used to using them. Finally delete your vSwitches


esxcfg-vswitch -d vSwitch0


This will now leave you with a ‘blank’ networking config. next run the reset options for each of the following commands:


esxcfg-vswitch -r

esxcfg-vmknic -r

esxcfg-vswif0 -r


and finally verify if everything has actually gone use


esxcfg-vswitch -l

esxcfg-vmknic -l

esxcfg-vswif -l


Now you need to recreate your switches and portgroups


First issue the following command to create the vswitches


esxcfg-vswitch -a vSwitch0

esxcfg-vswitch -a vSwitch1


Next create your port groups


esxcfg-vswitch -A “Service Console” vSwitch0

esxcfg-vswitch -A “VMKernel” vSwitch0

esxcfg-vswitch -A “ProdNet” vSwitch1




If this all works with no issues, if you have issued the commands correctly then you should have no issues. Issue the command esxcfg-vswitch -l to see what it looks like.


Next recreate the vswif interface


esxcfg-vswif -a vswif0 -p “Service Console” -i <your IP Address here> -n <Your Subnet Mask here>


Now recreate the vmkernel interface


esxcfg-vmknic -a “VMKernel” -i <your IP Address here> -n <Your Subnet Mask here>


Run esxcfg-vswitch -l to verify your vswitch config.

Lastly, associate uplinks to your vSwitches


esxcfg-vswitch -L vmnic0 vSwitch0

esxcfg-vswitch -L vmnic1 vSwitch1


If you have more than one nic assigned to each vSwitch then reissue the above command with the required vmnic#


there is one further set of commands to add, if you are using multiple Portgroups per vSwitch you will need to assign a VLAN id to it.


esxcfg-vswitch -v <VLAN ID> <PortGroupName> vSwitch#


This is quite a complicated set of commands to work through, but well worth the time spent, the above commands are the basic building blocks of a nice #Bash script I will be showing you late



2011年10月12日 星期三

[ FreeBSD ] FreeNAS Rsync to Operate (Pull/Push)



rsync 是一套非常棒的 OpenSource 檔案備份同步軟體,因為 rsync 在備份資料時有方向性(Pull/Push),因此將此測試做個簡單的記錄以方便未來使用,過程是在兩台FreeNAS (Server/Client) 下操作,備份方式直接使用 SSH 連進 Client 端那台機器下 command 操作,FreeNAS 為 FreeBSD 所打包的嵌入式 NAS 系統因此基本操作都跟 FreeBSD 一樣。為何不用 FreeNAS WebGUI 上直接設定 rsync ?因為小弟在使用 FreeNAS 的 WebGUI 設定 rsync 時上遇到權限上的備份問題,且 WebGUI 對方向性(Pull/Push)的設定沒那麼彈性,因此我的用戶端才改為 command 操作,待測試 Ok 便可寫個 shell script 加入 crontab 就可用定時去同步備份。



環境:



B (192.168.1.1) Server 端

使用 WebGUI 開啟Port 873 的 rsync 服務,同時分享出名稱為 office 的備份目錄。

A (192.168.1.2) Client 端

用 SSH 直接連進機器使用 commnad line 操作。



操作方式:



A 機器上操作( 將 A 機器上要備份的 /mnt/office/main 目錄檔案送到 B 機器的 office 分享資料夾中)。



# rsync -avzrtopg --delete-after /mnt/office/main 192.168.1.1::office



A 機器上操作( 將 B 機器上分享的 office 檔案夾取回到 A 機器的 /mnt/office/main 分享資料夾中)。



# rsync -avzrtopg --delete-after 192.168.1.1::office /mnt/office/main/



下 command 的基本原則。



# rsync (參數) (Source來源端) (Destination目的端)



參數說明:



* -a, –archive archive mode,檔案模式。

* -v, –verbose increase verbosity,觀看過程。

* -z, –compress compress file data,壓縮資料。

* -P, – equivalent to –partial –progress,顯示程序進度%。

* -delete , –delete files that don't exist on the sending side (參數 -after 表示完成同步後再刪除),保持二台機器資料的一致性。



Ref.


http://www.samba.org/ftp/rsync/rsync.html




Mac 上寫 blog

現在開始用離線軟體寫一些工作上的筆記



2011年8月21日 星期日

[FreeBSD]Apache22 + PHP + MySQL + phpMyAdmin

OS Freebsd 8.2

平台 ESX 4.1

===================================
1. 安裝 MySQL ~ 設定編碼為 unicode
===================================
mysql-5.5.9.tar.gz
# cd /usr/ports/databases/mysql55-server
# make WITH_CHARSET=utf8 WITH_XCHARSET=all WITH_COLLATION=utf8_unicode_ci BUILD_OPTIMIZED=yes install clean

************************************************************************

Remember to run mysql_upgrade (with the optional --datadir=<dbdir> flag)
the first time you start the MySQL server after an upgrade from an
earlier version.

************************************************************************
install-info --quiet /usr/local/info/mysql.info /usr/local/info/dir
===> Installing rc.d startup script(s)
===>   Compressing manual pages for mysql-server-5.5.9
===>   Registering installation for mysql-server-5.5.9
===> SECURITY REPORT:
      This port has installed the following files which may act as network
      servers and may therefore pose a remote security risk to the system.
/usr/local/libexec/mysqld

      This port has installed the following startup scripts which may cause
      these network services to be started at boot time.
/usr/local/etc/rc.d/mysql-server

      If there are vulnerabilities in these programs there may be a security
      risk to the system. FreeBSD makes no guarantee about the security of
      ports included in the Ports Collection. Please type 'make deinstall'
      to deinstall the port if this is a concern.

      For more information, and contact details about the security
      status of this software, see the following webpage:
http://www.mysql.com/

===安裝成功===

安裝會因為你的CPU效能時間有所不同要等待一下(約一個小時)之後,要產生 MySQL DB,一開始所要用的 Database,預設會裝在 /var/db/mysql 裡 ( 若不想裝在預設的地方,安裝時下參數 --localstatedir=/path/to/your/location )
# rehash
# mysql_install_db
(其實也可以省略上面動作 等完全安裝後 重新開機
複製 MySQL 的系統設定檔到 /etc 下
# cp /usr/local/share/mysql/my-medium.cnf /etc/my.cnf

設定 MySQL 資料庫權限,並且啟動它
# chown -R mysql:mysql /var/db/mysql
# mysqld_safe &

啟動無誤的話,畫面會出現此訊息
Starting mysqld daemon with databases from /var/db/mysql

設定 MySQL Root 的密碼
# mysqladmin -u root password 新密碼

若是更新舊的版本,就稍微注意一下
Remember to run mysql_upgrade (with the optional --datadir=<dbdir> flag) the first time you start the MySQL server after an upgrade from an earlier version.

===================================
2. 安裝 Apache
===================================
# cd /usr/ports/www/apache22
# make install clean
(這要將mysql 選進去)
===================================
3. 安裝 PHP
===================================
# cd /usr/ports/lang/php5
# make config install clean

記得要勾選此選項喔,不然 Apache 會不認得 PHP
APACHE     Build Apache module

再安裝 PHP5 Extensions
# cd /usr/ports/lang/php5-extensions
# make config install clean

建議加勾選 GD、MYSQL、MySQLI、MBSTRING、ZIP 和 ZLIB
===================================
4. 安裝 PhpMyadmin  phpMyAdmin-3.3.9.1-all-languages.tar.bz2
===================================
# cd /usr/ports/databases/phpmyadmin
# make install clean

****************************************************************************
===>   Returning to build of phpMyAdmin-suphp-3.3.9.1
===>   phpMyAdmin-suphp-3.3.9.1 depends on file: /usr/local/lib/php/20090626/mbstring.so - found
===>   phpMyAdmin-suphp-3.3.9.1 depends on file: /usr/local/lib/php/20090626/zip.so - found
===>   Generating temporary packing list
===>  Checking if databases/phpmyadmin already installed
===> Creating users and/or groups.
Using existing group `www'.
Creating user `_pma' with uid `336'.
===> Adjusting file ownership in /usr/local/www/phpMyAdmin

phpMyAdmin-suphp-3.3.9.1 has been installed into:

    /usr/local/www/phpMyAdmin

Please edit config.inc.php to suit your needs.

To make phpMyAdmin available through your web site, I suggest
that you add something like the following to httpd.conf:

    Alias /phpmyadmin/ "/usr/local/www/phpMyAdmin/"

    <Directory "/usr/local/www/phpMyAdmin/">
        Options none
        AllowOverride Limit

        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1 .example.com
    </Directory>

===================================
5. 修改設定檔
 ===================================
首先設定 PHP 的設定檔,以後就是設定 php.ini 這檔

# cp /usr/local/etc/php.ini-dist php.ini

修改 Apache 的設定
# vi /usr/local/etc/apache22/httpd.conf

在最上面加入
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

找到
DirectoryIndex index.html
把它變成
DirectoryIndex index.php index.html index.htm

修改 phpmyadmin 目錄位置


設定一開機啟動 Apache & MySQL
# vi /etc/rc.conf

加入這三行
apache22_enable="YES"
apache22_http_accept_enable="YES"
mysql_enable="YES"

在 /usr/local/www/data 裡新增一個檔案叫 index.php,內容如下
<?php phpinfo(); ?>

重新開機,大功告成!


2011年6月15日 星期三

在 Windows 的 VIM 中顯示中文

在windows 裡面 裝了vim 可以平常就可以練習 vim 的相關指令 不要特別在開 也可以寫些簡單的 script 給Freebsd使用 但是忽然裝完後卻不能顯示中文 只看到中文都是一堆亂慢 拜讀Google大神後 發現 原來要修改一下環境變數

修改 vim 程式目錄下的 C:\Program Files (x86)\Vim\_vimrc 這個檔案

set nocompatible
" Set fileencodings # 這兩行為增加的部分
set fileencodings=ucs-bom,utf-8,gbk,big5 # 增加部分
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin

set diffexpr=MyDiff()
function MyDiff()
  let opt = '-a --binary '
  if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
  if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
  let arg1 = v:fname_in
  if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
  let arg2 = v:fname_new
  if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
  let arg3 = v:fname_out
  if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
  let eq = ''
  if $VIMRUNTIME =~ ' '
    if &sh =~ '\<cmd'
      let cmd = '""' . $VIMRUNTIME . '\diff"'
      let eq = '"'
    else
      let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
    endif
  else
    let cmd = $VIMRUNTIME . '\diff'
  endif
  silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
endfunction

將紅色字的部分加入後 就可以了正常顯示中文了 (#號後面為說明 不必放到裡面)

2011年6月14日 星期二

VMware FT功能

舊文章

VMware FT (VMware Fault Tolerance)

透過vLockStep機制(其實是取自workstation的record/replay機制而來),vmkernel底層會不斷的record與 replicate來源虛擬機的所有行為與資料到目的虛擬機上,其實要驗證並展示給客戶看最簡單的方式就是使用remote console開啟目的虛擬機的畫面,可以看到在來源虛擬機上面移動滑鼠游標同時在目的虛擬機也可以看到~感覺就好像是在遠端遙控那種感覺,不過其實這就是一種在目的虛擬機端replay的機制。

不過我是蠻好奇的,當來源虛擬機fail的話(可能因為安裝錯誤的軟體導致crash),那麼目的端虛擬機是不是會也一併同步,一起死給你看呢?

VMware FT 是令人期待且非常重要的功能,不過相對一些硬體與軟體需求上又提高了門檻~

硬體: CPU限制,需要AMD-V 如AMD Barcelona 或以上版本, Intel VT 則是 Intel Harpertown 以上。且要做FT的所有ESX Server CPU family要一致。
軟體:所有ESX版本(build number)必須一致。

我覺得VMware最成功的地方在於,介面真的比較符合人性操作,很多功能做的很簡易。雖然背景運作機制複雜,但是大部分的時候,IT管理員沒有那麼多時間或精力study繁複的操作與技術,
困難的架構與規劃還有troubshooting就讓SI煩惱,不然錢哪那麼好賺?

不斷推陳出新的功能,無止盡的錢坑... 我想,企業IT人還是視自己是否確實需要這種功能,仔細思考才能不落入永無止盡的功能升級迷思吧...

VMware FT 時程 - 2009 Q2

所以 新技術的 實現 是有門檻的