2014/12/28

裝完xubuntu後發現bios的時間總是比現在的時間早了8小時
也就是變成了GMT時間
因為有定時開機的需求
所以只好把時間提早,也就是原來打算06:00開机 就要把時間調成 22:00
原本以為是bios本身的問題
後來才查到原來xubuntu在安裝時選擇時區時並沒有要不要把硬体時間設成UTC時間的選項
也就是預設就是UTC時間
因此在安裝完成後必須到 /etc/default/rcS 把
UTC=yes 改成 UTC=no
重開机後再重新校時就ok了

2014/12/25

自從使用ubuntu後一直在找方便的倉頡輸入法
最近因為電子看板的問題把之前測過的東西再拿出來
因為vnc及unity的問題選擇了xubuntu
雖然電子看板不需要使用到中文環境
但考慮到再來換新機器時也想用xubuntu來當桌面
所以測了一下中文
發現即使安裝時選擇中文
但xubuntu並不會把輸入法裝進去
必須手動安裝
同時也找到了一個方便的輸入法
快倉第六代
而且套件庫內就直接收錄了
sudo apt-get ibus-table-scj6 就OK了
記得要重開機
再從設定裡選擇
把之前安裝過有關倉頡的其他輸入法全移除了

按Shift就可以中英切換 不需再用ctrl-space切好几次了
首+尾+z 就可以當成簡易輸入法來使用

2014/12/21

在win中使用python
利用subprocess.call呼叫系統指令時
若指令的最後是反斜號 "\"

import subprocess

subprocess.call('dir e:\',shell=True)

會造成以下的錯誤

c:\Python27\python.exe -u "C:\Users\nkhc\Desktop\1.py"
Process started >>>
  File "C:\Users\nkhc\Desktop\1.py", line 9
    subprocess.call('dir e:\',shell=True)
                                        ^
SyntaxError: EOL while scanning string literal
<<< Process finished. (Exit code 1)
================ READY ================

解決方式

subprocess.call('dir e:\\',shell=True)


2014/12/16

最近有個需求就是要讓pc在每天早上自動開机
所以必需要在bios裡設定
發現几個狀況
做個記錄

1. 定時開机在有些bios裡預設是disable 要enable才能看得到來設定

2. bios的時間如果經過os去設定(hwclock -w)
    有些會記錄GMT時間 有些則會記錄os的local 時間
    所以要設定定時開机時要注意一下時間差

3. 因為以上的原因 所以在os裡用 hwclock -r 取得硬体的時間也有可能跟os不同
    經由hwclock取得的時間os會認為是GMT時間後 再經過計算後顯示出os的local 時間
   
以台灣為例,如果bios記錄的時間是local時間 則hwclock -r 顯示出來的時間就會是local時間再加8小時;如果bios記錄的時間是GMT時間 則hwclock -r 顯示出來的時間就會是os的locl時間

無論如何 bios的自動開机時間是以bios的時間為準 在設定時要特別注意

2014/12/11

如果要用crontab開一個圖形的程式
必須要在執行指令前加上
DISPLAY=:0.0
例如

0 1 * * * DISPLAY=:0.0 /usr/bin/firefox

如果不指定DISPLAY的話 crontab不知道要把這個程式開到那個DISPLAY
所以桌面上就不會有任何新視窗
要特別注意

2014/11/28

最近在找 ubuntu中 如何讓一般user可以下指令 reboot
找到以下資料
很方便
但看來有點危險

使用下列指令

sudo vi /etc/sudoers


sudo visudo
就是去編輯設定檔。

將這行

%sudo   ALL=(ALL:ALL) ALL
改成

%sudo   ALL=(ALL:ALL) NOPASSWD:ALL



https://www.mxp.tw/2014/06/25/ubuntu-sudo-nopasswd-%E4%B8%8D%E7%94%A8%E8%BC%B8%E5%85%A5%E5%AF%86%E7%A2%BC%E8%A8%AD%E5%AE%9A/

2014/11/22

live migration without share storage

原來proxmox在几年前就做出來了
vmware在最近一版才支援



http://forum.proxmox.com/threads/16200-Live-KVM-migration-without-share-storage

2014/11/10

最近這一兩週有個單位的一台printer一直有問題
換了outlet  跳線  switch的port都沒用
今天接到cisco上發現出現了很多error
99%是Layer 1的問題了
拿fluke dsp-4300去測
發現第二條線斷了
斷在1米的地方
可能是patch pannel接觸有問題
用工具重壓
目前是ok

問題是也沒人去動
久了也是會有問題
XD

以後查問題可能要從Layer 1 開始了

2014/11/09

今天有朋友問到要如何限制user登入後只能在home directory活動
找到一個方式很簡單
只要在/etc/passwd把user 的shell改成rbash就好了
超方便

http://www.cyberciti.biz/faq/restrict-linux-users-to-their-home-directories-only/

2014/10/28

一直以來在找如何查詢office 365 for edu的空間
今天終於找到了 目前是1T

通過以下步驟查看的您的OneDrive for Business空間大小:
1.去您的OneDrive for Business。
2.在右上角的小齒輪上選擇“網站設定”。
3.在“網站集合管理“下選擇”儲​​存指標”。

http://community.office365.com/zh-tw/f/374/t/252498.aspx

2014/10/24

在ubuntu合併mp4檔案的方法

不能直接使用 cat 1.mp4 2.mp4 > 3.mp4的方法

方法如下

sudo apt-get install gpac

MP4Box -cat 1.mp4 -cat 2.mp4 -new 3.mp4

http://fauxzen.com/how-to-combine-mp4-files-on-the-ubuntu-cli/

2014/10/07

目前比較新的switch都提供Time-Domain-Reflectometry(tdr)的功能
以方便管理人員可以初步由switch端回測到outlet
方便layer 1的查修
指令如下

cisco

#test cable tdr interface <interface of your choice>
Wait 5-7 seconds
#show cable tdr interface <interface of your choice>

brocade

#phy cable-diag tdr 1/1/1
Wait 5-7 seconds
#show cable-diag tdr 1/1/1

以下列出 brocade在有接client及未接client顯示出的結果

未接client
Port    Speed   Local pair      Pair Length     Remote pair     Pair status
----    -----   ----------      -----------     -----------     -----------
0/1/2   UNKWN   Pair A          0000081M                        Open
                Pair B          0000084M                        Open
                Pair C          0000084M                        Open
                Pair D          0000080M                        Open

有接client
Port    Speed   Local pair      Pair Length     Remote pair     Pair status
----    -----   ----------      -----------     -----------     -----------
0/1/1   100M    Pair A          N/A    M        Pair B          Terminated
                Pair B          N/A    M        Pair A          Terminated
                Pair C          0000076M                        Shorted
                Pair D          0000072M                        Shorted

2014/09/29

今天發現了二個notepad++上好用的plugin
nppftp及python with notepad++
超方便

http://www.wingsv.org/2013/05/notepad-ftp.html
http://kilfu0701.blogspot.tw/2011/03/python-with-notepad.html

2014/09/25

最近因為原isp已到期
加上每次一到晚上都會感到不順
另外就是女王一直要求要把ap從小孩的房間移到客廳
所以決定換另一家isp
速度加快到40M價格沒變

但換了之後問題來了
直接使用網路線測試時可以到逹40M沒錯
但如果使用原來的ap就只能到20M左右
而原來的ap只支援到 802.11g 理論上是54M
但理論值跟實際上總是有點差距
所以去買了一台新的ap
考量到價位及未來使用
應該不需要使用到雙頻或到300M
所以買了一台 150M bgn的机器
但買完後問題來了
原來在pc上使用的那支網卡
也只支援11g 在不跑wpa2的情況下跟tplink也只能到 20M
如果ap把wpa2打開
則是完全連不上
看來不換也不行了
所以又去選了一支asus usb-n10 nano
因為查了滿多資料
而且網站上有直接提供linux的driver
應該很好處理
想不到東西寄來
使用原來linux安裝就有的rtl 8192c的module
完全沒作用
再使用網站上的driver
也不行
還導致開机出現問題
連su到root都不行
沒辦法了
只好抱著死馬當活馬醫的想法再使用ndiswrapper
試了半天
網站上提供的vista win7 win8的driver
都不能用
只有xp 沒問題
好吧
跑了一下測試
wpa2沒問題
速度也到達到40M
就醬用吧
本來是想要退貨的
另外一個小問題就是ndiswrapper不知為什麼竟然無法在開机時自動啟到
只要再加到/etc/rc.local

/sbin/modprobe ndiswrapper

再觀察看看囉

2014/09/18

linux中要把執行命令之後的結果輸出到檔案
跟把命令執行中所產生的訊息輸出到檔案是不同的做法

date > /tmp/t1
date >> /tmp/t2 是附加在原有的檔案中
如果是要看dd執行過程中的訊息
則要
dd if=/tmp/1 of=/tmp/2 &> /tmp/3
dd if=/tmp/1 of=/tmp/2 &>> /tmp/3 是附加在原有的檔案中

http://blog.jangmt.com/2012/08/linux-pipeline.html

2014/09/16

cp時如果碰到 i/o error
可以換用dd試試

dd if=/dev/abc.img of=/tmp/def.img conv=noerror,sync

http://aeroquartet.com/wordpress/2012/06/06/how-to-copy-a-file-with-io-errors/

2014/09/12

最近几天把guest搬移到新的host上
看起來都沒問題
但昨天接到user的電話說office的kms不能認証了
查了半天問題
發現在新host上的guest的office license不見了
再把舊的開起來看
還在
網路上找不到相關資料
只好打電話問智域的工程師
得到的回答是這是正常的
因為guest換了host後
m$會有自几的判斷机制來決定是不是換机
也因此決定license能不能繼續用
解決的方式只能把license重匯一次
也不要問為什麼
因為這個沒有解答

無言

2014/09/02

centos 7 /etc/rc.local開机不會執行

要把 /etc/rc.d/rc.local加上執行的權限

chmod 755 /etc/rc.d/rc.local


http://blog.ilc.edu.tw/blog/blog/25793/post/78462/514410

2014/09/01

centos mysql安裝好要做的几個動作

修改MySQL root 的密碼
 # mysqladmin -u root password '12345678'
 登入MySQL
 # mysql -u root -p
 刪除匿名帳戶
 mysql> DELETE FROM mysql.user WHERE user="";

重載權限
 mysql> FLUSH PRIVILEGES;
 mysql> quit

設定my.cnf
 # vi /etc/my.cnf
 在[mysqld] 新增
 default-storage-engine=innodb
 character-set-server=utf8
 port=3306
 新增[client]
 default-character-set=utf8
proxmox 在 hp virtual store left hand 11.0的版本下無法正常使用
更新到 11.5後目前看來是正常

隨後進行測試
二台proxmox 一開始各跑十隻guest進行i/o test
由下圖中可以看出各約1G 的流量
但在第一台再加5隻guest而第二台不變的情況下
可以看出第一台的流量增加
但第二台減少
由此可以看出storage可以提供的總流量是固定的
如下第三個圖所示











2014/08/23

測 i/o 小script

#!/bin/bash
rm 1.iso
dd if=/dev/zero of=1.iso bs=1G count=8
while [ true ]
do
        date >> io_test_log
        rm 2.iso
        cp 1.iso 2.iso
        date >> io_test_log
        echo "=========================" >> io_test_log
done

2014/08/15

在ubuntu中要使用spice client
除了安裝
browser-plugin-spice外
還要安裝
virt-viewer
browser才會自動處理proxmox下載回來的檔案

2014/08/14

hp的virtual store竟然無法在多台proxmox的情況下作業
會造成host os的down g
目前已詢問原廠是否有解決方案
考慮最差的情況應該就是拿一台机器把iscsi捉進來
再用nfs share出來了
因為容量超過2T所以必須使用之前的方法來處理
另外mount -t xfs /dev/sdb1 /mnt這個動作如果寫在/etc/rc.local
會因為執行太早網路還沒起來而無法成功
因此使用另一個方法
把開机後執行的指令放到crontab 裡

@reboot /root/0814test

0814test的內容如下

#!/bin/bash
/usr/bin/sleep 10
/usr/bin/mount -t xfs /dev/sdb1 /mnt

目前測起來工作是正常
只是nfs如果斷線重連
guest os還是有可能有問題需要重開
跟之前的預期有落差

2014/07/29

不久前有個朋友來電求救
問題狀況是之前幫他架的proxmox裡的guest
主要服務是mail及dns
只要一開机
所有的網路就動不了
他懷疑是不是主机被hack了
但因為只要一開机網路就死了
所以在想要怎麼連進去
最後請他先把guest關机
讓我能進到proxmox的管理介面先把guest的網卡停掉
再把guest boot
初步看了一下
並沒有看到被hack的情況
接下來把網卡enable
在rc.local加上
iptables -I OUTPUT -j DROP
reboot把網卡起起來
用tcpdump看到好多來自某個subnet ip的request
dos攻擊沒錯了
一樣用iptables在input擋掉
再把之前加的OUTPUT拿掉
恢復正常
目前就先醬
如果攻擊者換了subnet就再說了
但一個小公司
怎麼會有人無聊到dos port 53
不解

總結
1. 先drop output packet
2. 使tcpdump看 input packet
3. 決定對策

2014/07/28

找到一篇在ubuntu裡單純針對使用設定字型的方法
上次的方法比較
更方便了

2014/07/26

之前goole和adobe共同推出了免費的字型
一直想要換來用看看
今天下載回來解開後
想說依照之前的方法
應該很簡單
想不到放進去跑完
fc-cache -v -f 後
竟然沒有字可以選
再檢查了一下
發現google提供的是otf不是ttf
找了一下資料
發現解決的方式也很簡單
把libotf裝進來就好了

sudo apt-get install libotf-bin

再跑一次
fc-cache -v -f
就ok了

2014/07/12

不知道從那天開始
整個ubuntu的字變的怪怪的
所以一直想調整的好看一點
找了許多資料
找到了以下的文章


簡單整理一下
下載lihei pro字型
再解壓到/usr/share/fonts/truetype/
執行 fc-cache -v -f 讓系統重捉字型
安裝系統字型設定工具
apt-get install gnome-tweak-tool
接下來執行
gnome-tweak-tool
就可以選取li hei pro 做為系統預設字型了
chrome和firefox再分別修改

2014/07/09

不知道為什麼原來安裝在centos6 x64裡的openvas rule不能更新也不能scan了
花了不少時間找問題
但還是沒辦法處理
最後決定放棄重裝
依照原廠網站的方法
一次就ok了
目前還是使用v6的版本 因為v7還沒有人做出package
但有個問題就是開机時port 9392是有起來的
但連進9392 port時就掛了
在log上看到的訊息如下

gsad main:WARNING:2014-07-08 17h33.31 utc:1051: MHD: Failed to receive data: The TLS connection was non-properly terminated.

看起來是https有問題
再找了一下資料
把預設的https改成http

vi /etc/init.d/gsad
找到 daemon $EXEC #PARAMS
改成如下
daemon $EXEC #PARAMS "--http-only"  > 補上 --http-only 即可
service gsad restart

目前運作正常

http://www.i-uix.com/kevin/centos6-5%E5%AE%89%E8%A3%9Dopenvas/

2014/05/28

最近這几天一直收到由proxmox寄出的訊息
如下
/etc/cron.daily/mlocate:
Warning: /var/lib/mlocate/daily.lock present, not running updatedb.
run-parts: /etc/cron.daily/mlocate exited with return code 1
查了一下才知道這個訊息跟nfs有關
http://jonmccune.wordpress.com/2010/08/11/warning-varlibmlocatedaily-lock-present-not-running-today/

想到前几天才把一台nfs下架
雖然在/etc/pve/storage.cfg裡已經update了
但/etc/mtab還沒清掉
難怪這几天下df指令會一直hang住
只好手動強制umount 

umount -f /mnt/pve/nfs_bck

再看一下/etc/mtab已經正常了
df的指令也正常
再觀察看看今天還會不會收到訊息

2014/05/21

簡單說明如何把新server加到原有的HP SIM

在新机器的ilo上設好ip並新加一個user
接下來在 Administration的Management裡加入 HP SIM的ip







接著login到HP SIM的管理介面
使用 選項 - 探索 - 新增一個探索









輸入新机器的ilo ip後 記得在認証裡打上ilo的user及密碼














設定後選取立即執行






如果有出現問題
再依問題進行修正 重新探索
探索完成後即可把該探索刪除或停用

昨天上架了二台新机器
可是測了一下發現 i/o的狀況如下











怎麼想都不應該差這麼多
今天早上進raid的config看了一下
原來是cache沒打開

現在的工程師
連這個都不會
昨天中午停電
關掉了几台proxmox
想不到晚上的備份竟然停了
出現以下的error

INFO: starting new backup job: vzdump 115 --remove 0 --mode snapshot --storage nfs6_bck --node proxmox76
INFO: Starting Backup of VM 115 (qemu)
INFO: status = running
INFO: unable to open file '/etc/pve/nodes/proxmox76/qemu-server/115.conf.tmp.191828' - Permission denied
INFO: update VM 115: -lock backup
ERROR: Backup of VM 115 failed - command 'qm set 115 --lock backup' failed: exit code 2
INFO: Backup job finished with errors
TASK ERROR: job errors

早上把所有机器打開,再手動備一次
就ok了
今天晚上再觀察看看

2014/05/20

cisco 3750常會發生斷電後網路不通的情況
telnet 到該台机器後看到的vlan狀況如下

Vlan101 is up, line protocol is down

再看每個port的情況發現在該vlan中所有的port的情況都如下所示

GigabitEthernet1/0/1 is administratively down, line protocol is down (disabled)

最快的方式
conf t
int ra gi 1/0/1 - 24
shutdown
no shutdown

把所有的port重開一次

恢復正常

2014/05/15

今天又有user反應校外不能寄信的問題
參考了一下這篇
設定完成後
不管校內校外都不能發信了
看了一下log
fatal: no SASL authentication mechanisms
warning: xsasl_cyrus_server_get_mechanism_list: no applicable SASL mechanisms

參考以下連結
http://www.electrictoolbox.com/postfix-smtp-auth-no-sasl-authentication-mechanisms/

發現還要裝上 cyrus-sasl-plain 才能用

yum install cyrus-sasl-plain

2014/05/13

本來一直使用來統計的google map
這個apps官方只支援到5
當時升到6後必須手動安裝後才能使用
但作者也似乎沒有改版的動作
升到6.1後完全不能用了
Orz
查了一下文件
發現splunk直接提供了一個geostat的指令可以使用
不再需要google map這個app了
指令如下

* | iplocation src | geostats count

因為在我送到splunk的資料中 src 後面帶的是攻擊者的ip
如果是使用其他字串
請自行修改

2014/04/21

ubuntu 14.04把apache的預設目錄改回
/var/www/html了

2014/04/20

proxmox 3.0之後就已經announce可以使用link clone
但之前在clone時一直找不到這個選項
只有full clone
今天再仔細看了一下文件
原來要先把机器convert to template
才能使用link clone
只是轉成template後就不能再boot來用了
而且如果是放在local disk上
guest是不能migrade的

2014/04/18

升完ubuntu 14.04的問題還沒完
squid3也碰到問題了
squid.conf要改的有三個地方

原本放在/usr/lib/squid3 的 squid_ldap_auth 不見了
要改為 basic_ldap_auth

auth_param basic children 2
acl manager proto cache_object
以上這二行要mark掉

不然squid是起不來的
今天是ubuntu 14.04 release的日子
一開始upgrade時總是有三個檔案有問題
後來把source改到米國就ok了
但升完smokeping卻發生圖出不來的問題


查了一下rrd都有正常update
原來是apache2的升級把smokeping的site砍了
補回去
ln -s /etc/apache2/sites-enabled/smokeping.conf /etc/smokeping/apache2.conf
service apache2 restart
恢復正常

http://askubuntu.com/questions/365088/smokeping-web-front-end-on-ubuntu-13-10

2014/04/12

2014/03/31

crontab 預設最小的單位是分,如果需要crontab以秒執行,則可以這樣做~~

以下方法將每15秒執行一次

1.編輯crontab
# crontab -e

QUOTE:

* * * * * /bin/date >>/tmp/date.txt
* * * * * sleep 15; /bin/date >>/tmp/date.txt
* * * * * sleep 30; /bin/date >>/tmp/date.txt
* * * * * sleep 45; /bin/date >>/tmp/date.txt

2.檢查結果
# tail -f /tmp/date.txt

說明:需要將 /bin/date 更換成你的命令即可

================================================

如果需要精確到每秒執行一次...則可以寫Shell 的方式運作

1.編寫shell腳本

# mkdir /root/bin

# vi /root/bin/time.sh

QUOTE:
#!/bin/sh

while [ true ]; do
/bin/sleep 1
/bin/date >>/tmp/date.txt
done

2.後台運行
# nohup /root/bin/time.sh &

3.確認每秒執行

# tail -f /tmp/date.txt

http://www.adj.idv.tw/html/32/t-76632.html

2014/03/29

一般每5分鐘執行的crontab如下
*/5 * * * * command

但如果要在 2,7,12...分執行的話 指令如下
02-59/5 * * * * command

2014/03/25

原來lftp可以用來下載torrent
現在才知道
語法如下
先進入lftp

lftp>torrent abc.torrent -O /path/to/save

2014/03/23

一直以來user打電話來詢問網路狀況的時候都會先到splunk去查帳號跟ip 的對應
之後到到LP去查詢該ip 是否被block
但必須要進二個系統去查
有點麻煩
今天在想有沒辦法直接在splunk就可以查到所有的資料
因此必須把lp上的資料丟到splunk上

程式如下

#!/usr/bin/python

import MySQLdb,sys

db = MySQLdb.connect(host="localhost", user="root", passwd="123456", db="test")
cursor = db.cursor()

#cursor.execute("select StartTime,SourceHost,Cause,ReleaseTime from  BlockItem order by StartTime")
cursor.execute("select StartTime,SourceHost,Cause,ReleaseTime from  BlockItem where StartTime between date_add(now(), interval - 5 minute) and now()")
result = cursor.fetchall()
if result:
        for record in result:
                print record[0],
                print "ip=",
                sys.stdout.softspace=0
                print record[1],
                print record[2],
                print record[3]
db.close()

重點在where StartTime between date_add(now(), interval - 5 minute) and now()
每次取出這個時間點往回算5min的資料
以避免splunk重複地計入

2014/03/20

一直使用vnc的反向連線來作為電腦支援之用
但原來使用的viewer版本太舊
以致於在win8連線時會出現一些很奇怪的狀況
所以想使用bat去call最近版本的viewer
但又碰到一個問題就是bat的dos視窗還要手動去關
很麻煩
google了一下資料
只要在bat使用start就可以了
方便
之後有新版ultravnc時只要把這個批次檔copy到同一個資料夾就好了

檔案內容如下

start vncviewer.exe -listen 81
exit

http://www.weithenn.org/2014/01/cmd-exit-after-exec-batch-file.html

2014/03/10

aruba ap 105的怪事今天又發生了
ap大約每10秒亮一次紅灯 約0.5秒
測試線路也沒有問題
電壓也沒有問題
該ap拿回來直接接injector也沒問題
但就是開不了机
算了
換一台
就好了

七月還沒到
Orz

2014/03/03

之前一直都是使用xming來當做 m$ windows上的x server
發現了一個更好用的東東
內建ssh client及x server還有一堆功能
太強大了

2014/03/01

本來不太使用的coventive nas因為user的一個需求
必須在create一個帳號
但建完帳號發現quota無法設定
而且之前針對user設定的quota也都不見了
連絡原廠後原廠判定是home的file system有問題
而且原廠判定home的filesystem是xfs
而xfs的quota是記錄在filesystem內
所以做成以上結論
解決方法是找一個空間把home的資料co出來
重建home再放回去
我以xfs重建完home後
發現quota還是不能設定
找了一下coventive竟然沒有xfs_quota這個指令
再想一想應該還是使用ext3才對
繞了一大圈
最後總結應該是

把home裡的
.aquota.group
.aquota.user
這二個檔砍了
重跑quotacheck
再重新設定每個user 的quota應該就解決了
Orz

2014/02/19

今天有一台 cisco 3750 cpu莫名的飆高
目前重開後ok
找到下列文件
如果再發生方便查原因

http://www.cisco.com/c/en/us/support/docs/switches/catalyst-3750-series-switches/68461-high-cpu-utilization-cat3750.html#pbr

2014/02/10

昨天host重開
有一個guest一直停在

Booting from Hard Disk...

倒回之前的backup也沒用
想不到是grub壞了
修復方法如下
到底是誰搞壞的
Orz

單單利用 grub 安裝開機程式

你也可利用 grub 這個指令來安裝開機程式,它卻不會在 /boot/grub 內安裝 Grub 的檔案。要是開機程式被蓋過或損壞了,此方法可修復 Grub 的安裝。

執行 grub。
你可選擇執行 find /boot/grub/stage1 尋找哪個分割區在 /boot/grub 內含有 Grub 所需的檔案。如果你的 /boot 採用獨立分割區,請執行 find /grub/stage1。
執行 root [按 Grub 方式命名的分割區] 來指定哪個分割區的 /boot/grub 內含有 Grub 檔案及備有 /boot/grub/grub.conf。
利用 setup [按 Grub 方式命名的開機程式位置] 來安裝開機程式。
執行 quit 來離開 Grub 程式。
範例:


[root@localhost ~]# grub
Probing devices to guess BIOS drives. This may take a long time.

    GNU GRUB  version 0.97  (640K lower / 3072K upper memory)

 [ Minimal BASH-like line editing is supported.  For the first word, TAB
   lists possible command completions.  Anywhere else TAB lists the possible
   completions of a device/filename.]

grub> find /boot/grub/stage1
 (hd0,5)
 (hd0,9)

grub> root (hd0,5)
 Filesystem type is ext2fs, partition type 0x83

grub> setup (hd0)
 Checking if "/boot/grub/stage1" exists... yes
 Checking if "/boot/grub/stage2" exists... yes
 Checking if "/boot/grub/e2fs_stage1_5" exists... yes
 Running "embed /boot/grub/e2fs_stage1_5 (hd0)"...  15 sectors are embedded.
succeeded
 Running "install /boot/grub/stage1 (hd0) (hd0)1+15 p
(hd0,5)/boot/grub/stage2
/boot/grub/grub.conf"... succeeded
Done.

grub> quit

http://wiki.centos.org/zh-tw/HowTos/GrubInstallation

2014/02/07

製作ocs client佈署程式時
使用7z sfx maker一定要設定解壓縮路徑
否則在copy時會把不相關的檔案都copy到ocs的資料夾內


2014/02/05

VBoxManage startvm vmname --type gui

VBoxManage snapshot vmname restorecurrent

VBoxManage snapshot vmname restore snapshot_name

http://xx3d2ybnf.pixnet.net/blog/post/119457139-virtualbox-%E7%94%A8%E4%BE%86%E9%80%B2%E8%A1%8C%E7%9B%B8%E9%97%9C%E7%AE%A1%E7%90%86%E7%9A%84%E7%B5%82%E7%AB%AF%E6%A9%9F%E6%8C%87%E4%BB%A4-vboxma
proxmox在最近的 test update把open vswitch加進去了
今天試玩了一下
首先要手動安裝openvswitch

apt-get install openvswitch-switch

再來在管理介面中移除原本的bridge (二者無法共存)
之後在管理介面
network - create - ovs bridge


設好之後reboot
如圖所示為vmbr1 因為vmbr0已被之前的bridge使用
所以reboot後要到/etc/network/interface把vmbr1改為vmbr0
否則必須重改所有guest的network

open vswitch的相關文件如下

http://www.sdnap.com/wp-content/uploads/2013/05/OpenvSwitch%E5%AE%89%E8%A3%85%E5%8F%8A%E9%85%8D%E7%BD%AE.pdf

2014/01/21

postfix如果要利用header_checks來check中文是會有問題的
必須先把中文進行編碼
網址如下
http://www.mytju.com/classCode/tools/base64.asp
要分utf8或big5

編出來之後再加入header_checks
/^Subject:.*5biQ5oi3/ DISCARD
/^Subject:.*pc6k4Q==/ DISCARD

postfix要重啟

2014/01/16

Gluster 系統服務
啟動Gluster服務:
指令:
service glusterfs-server start

停止Gluster服務:
指令:
service glusterfs-server stop

檢視Gluster服務:
指令:
service glusterfs-server status

Gluster 節點指令
檢視Gluster 節點狀態:
指令:
gluster peer status

新增Gluster 節點:
指令:
gluster peer probe <HOSTNAME>
說明:
HOSTNAME為您要新增該節點的主機名稱

刪除Gluster 節點:
指令:
gluster peer detach <HOSTNAME>
說明:
HOSTNAME為您要刪除該節點的主機名稱

Gluster 卷冊指令
檢視Gluster 卷冊狀態:
指令:
gluster volume info

新增分散式卷冊(Distributed Volumes):
指令:
gluster volume create <NEWVOLUMENAME> [transport [tcp | rdma | tcp,rdma]] <NEWBRICK1> <NEWBRICK2>...
說明:
1.NEWVOLUMENAME為您要新增的卷冊名稱
2.transport為傳輸模式,預設不輸入該指令參數是使用tcp模式
3.NEWBRICK為您要新增至卷冊之節點儲存區塊

新增複製式卷冊(Replicated Volumes):
指令:
gluster volume create <NEWVOLUMENAME> [replica COUNT] [transport [tcp |rdma | tcp,rdma]]<NEWBRICK1> <NEWBRICK2>...
說明:
1.NEWVOLUMENAME為您要新增的卷冊名稱
2.replica COUNT為副本的數量
3.transport為傳輸模式,預設不輸入該指令參數是使用tcp模式
4.NEWBRICK為您要新增至卷冊之節點儲存區塊

新增帶狀式卷冊(Striped Volumes):
指令:
gluster volume create <NEWVOLUMENAME> [stripe COUNT] [transport [tcp | rdma | tcp,rdma]]<NEWBRICK1> <NEWBRICK2>...
說明:
1.NEWVOLUMENAME為您要新增的卷冊名稱
2.stripe COUNT為帶狀的數量
3.transport為傳輸模式,預設不輸入該指令參數是使用tcp模式
4.NEWBRICK為您要新增至卷冊之節點儲存區塊

新增分散複製式卷冊(Distributed Replicated Volumes):
指令:
gluster volume create <NEWVOLUMENAME> [replica COUNT] [transport [tcp | rdma | tcp,rdma]]<NEWBRICK1> <NEWBRICK2>...
說明:
1.NEWVOLUMENAME為您要新增的卷冊名稱
2.replica COUNT為副本的數量
3.transport為傳輸模式,預設不輸入該指令參數是使用tcp模式
4.NEWBRICK為您要新增至卷冊之節點儲存區塊

增加儲存區塊(Brick)至現有卷冊中:
指令:
gluster volume add-brick <VOLUMENAME> <NEWBRICK>
說明:
1.VOLUMENAME為您要加入儲存區塊的卷冊名稱
2.NEWBRICK為您要新增至卷冊之節點儲存區塊

移除儲存區塊(Brick)於現有卷冊中:
指令:
gluster volume remove-brick <VOLUMENAME> <BRICK> start
說明:
1.VOLUMENAME為您要移除儲存區塊的卷冊名稱
2.BRICK為您要移除儲存區塊名稱

檢視移除儲存區塊(Brick)狀態:
指令:
gluster volume remove-brick VOLUMENAME BRICK status
說明:
1.VOLUMENAME為您所移除儲存區塊的卷冊名稱
2.BRICK為您要移除儲存區塊名稱

提交移除儲存區塊(Brick)狀態:
指令:
gluster volume remove-brick VOLNAME BRICK commit
說明:
1.VOLUMENAME為您所移除儲存區塊的卷冊名稱
2.BRICK為您要移除儲存區塊名稱

啟用卷冊:
指令:
gluster volume start <VOLUMENAME>
說明:
VOLUMENAME為要啟用的卷冊名稱

停用卷冊:
指令:
gluster volume stop <VOLUMENAME>
說明:
VOLUMENAME為要停用的卷冊名稱

刪除卷冊:
指令:
gluster volume delete <VOLUMENAME>
說明:
1.VOLUMENAME為要刪除的卷冊名稱
2.要刪除卷冊之前必須要先停用卷冊

掛載卷冊
手動掛載卷冊:
指令:
mount.glusterfs HOSTNAME-OR-IPADDRESS:/VOLUMENAME MOUNTDIR
說明:
1.HOSTNAME-OR-IPADDRESS為您所要掛載的主機名稱或IP及掛載的卷冊名稱
2.MOUNTDIR為您所要掛載的目的地路徑
參考資料:http://www.gluster.org

http://ithelp.ithome.com.tw/question/10107251

2014/01/07

python 從2.4開始建議使用
subprocess來取代

os.system
os.spawn*
os.popen*
popen2.*
commands.*

除了 subprocess.call() 之外,另外還有 check_call() 跟 check_output()。

除了 check_output 會回傳 output 之外,用法相同跟 call() 一樣。只不過會自動檢查 return code,如果是非零值的話,就會直接丟出 CalledProcessError,這個時候 return code 還是可以透過 returncode 這個 attribute 來取回。例如:(但是要執行的程式不存在時,還是會丟出 OSError)

如果要捉取回傳的值來進行某些判斷的話
就要使用subprocess.check_output()
範例如下

import subprocess

a = subprocess.check_output("dir", shell=True)
print a

b = a.find('zz')
print b


http://docs.python.org/2/library/subprocess.html
http://imsardine.wordpress.com/tech/shell-scripting-in-python/

2014/01/05

import telnetlib

f = open("switch")
lines = f.read().splitlines()
#print lines
command_arr = ["123456","en","123456","terminal length 0","sh mac add","exit"]
#print command_arr

for HOST in lines:
#print HOST
tn = telnetlib.Telnet(HOST)
for command in command_arr :
        tn.write(command + "\n")
#print tn.read_all()
content = tn.read_all()
print content
chk = content.find("1122.3344.5566") #找出這個mac是否在這台switch上 在那一個port上
print chk
tn.close()

python 讀檔

f = open("1")
lines = f.read().splitlines()
 #如果不用spllitlines則會把分行符號\n一起放到list去

print lines
#列出lines這個list的所有示素

for i in lines:
print i
#分行列出list裡的所有元素

結果如下
['afdkfj', 'fsldfjk', 'fjslfk', 'fsdlkfj', 'fsldfj']
afdkfj
fsldfjk
fjslfk
fsdlkfj
fsldfj

2014/01/04

使用python的 telnetlib對網路設備進行一些自動化的操作
範例如下


import telnetlib

HOST = "1.1.1.1"

tn = telnetlib.Telnet(HOST)

tn.read_until("Password: ")
tn.write("12345\n")
tn.read_until("cc>")
tn.write("en\n")
tn.read_until("Password: ")
tn.write("12345\n")

tn.write("sh flash\n")
tn.write("exit\n")
print tn.read_all()

http://blog.johnsonlu.org/category/programe/pythin/
http://docs.python.org/2/library/telnetlib.html

2014/01/01

最近碰到一個很奇怪的問題
使用了一段時間的aruba ap
突然發生無法使用的情況
查了一下brocade icx 6450的log發現是ap向switch要更多的電
原本是使用802.3 af的 15400ma
但switch無法提供更多
因此視為異常而把port disable了
但該ap並不是新裝而是已經使用一段時間了
搞不清楚到底是ap還是switch 的問題
因為有二顆出現這個情況
所以先送修一個回aruba原廠
同時詢問brocade原廠
大約隔了二週
 brocade給了一個針對poe module的patch
上上去之後
目前看起來是正常
更新指令如下

 inline power install-firmware [stack-unit |unit-number] tftp ip-address filename

必須先用show run看poe是在那一個unit
今天稍微玩了一下lxc

如果只用linux是可以考慮的選擇
但支援的linux也不多
目前支援的如下圖

有web介面可以管理
如下連結
http://lxc-webpanel.github.io/index.html

web介面安裝指令
wget http://lxc-webpanel.github.io/tools/install.sh -O - | bash

但要進入guest的console還是要下指令

相關指令如下
lxc-create  -n  虛擬機器名稱  -t  ubuntu

lxc-console -n 虛擬機器名稱

sudo lxc-shutdown  -n 虛擬機器名稱

如果不熟linux的應該會不太適應

不過效能上應該是比較好的
測試的環境是先在virtualbox上裝ubuntu
之後才在ubuntu上裝lxc
guest中的guest
沒有什麼lag

http://www.arthurtoday.com/2012/10/ubuntu-create-and-setting-lxc-containers.html#.UsOuPtIW2So