2008年12月30日 星期二

Plone的備份與還原

這裡以Plone-3.1.7為例

Plone使用repozo這隻程式來做備份與還原的工作,以下將示範如何使用這支程式來執行備份與還原的工作。

以Plone-3.1.7版來說,repozo位於/zinstance/bin/目錄下,執行的時候需注意路徑,底下介紹相關參數:

-B 執行備份
-v 顯示詳細訊息
-z 使用gzip壓縮
-F 完整備份
-r 指定備份目錄
-f 指定 FileStorage
-R 執行還原
-o 指定還原檔案

備份



紅色底線框起來的表示repozo的路徑,-BQv 就是執行備份並顯示詳細資訊,-r 用來指定要將備份檔備份到哪個目錄,-f 則是選擇Data.fs的來源路徑。備份有分完整備份及差異備份,如果要執行完整備份可以加參數 -F,由於這個範例是第一次執行,所以它會先執行完整備份,之後就會執行差異備份。



還原


-R 選項是用來還原資料,紅色底線的 -r代表要從該路徑還原,藍色底線的 -o代表要將資料寫入的目的地檔案,也就是系統的Data.fs


2008年12月19日 星期五

reStructuredText

甚麼是reStructuredText?

reStructuredText是一種純文字標記語法和分析系統,透過它可以將文件轉成各種格式,像HTML、OpenOffice 格式和LaTex格式等等,甚至也可以轉成簡報檔。個人覺得這是一個非常好用也很方便的工具,reStructuredText也很容易學習,你只要懂幾個常用的標記語法就可以開始編輯reStructuredText文件了,而且你甚至不用懂python,因為只有再轉換格式時,才會用到幾個python指令。


安裝Docutils

reStructuredText是利用Python中的Docutils元件將純文字轉換成各種格式,因此我們必須要安裝Docutils,這樣就可以使用reStructuredText了:
首先到Docutils的網站下載Docutils:



下載回來後將檔案解壓縮:
[root@localhost ~]# tar -zxvf docutils-0.5

切換到該目錄底下:
[root@localhost ~]# cd docutils-0.5

輸入下列安裝指令:
[root@localhost docutils-0.5]# python setup.py install.py

這樣就完成安裝了!!


相關網站:

reStructuredText簡易入門

reStructuredText

VST(Vim reStructured Text)簡介

2008年11月21日 星期五

2008酷學園群英會

一年一度的酷學園群英會又要到了 今年的主題是目前正夯的 "Green IT"


有興趣的朋友可以到 酷學園 網站報名

以下為活動內容:

活動日期:2008 年 12 月 20 日 (星期六)

地點:國立臺灣大學工學院應用力學研究所國際會議廳
   106 台北市羅斯福路4段1號



主辦單位:酷學園

友情贊助:台灣科技大學資訊工程系學會,光華 - 益大書局,鳥哥的 Linux 私房菜,魔力門,三秒練功房,FTUG

活動議程表:

時間 活動議程 講師
------------------------------------------------------------------------------------
08:00 ~ 08:30 入場
08:30 ~ 08:50 來賓致詞,活動簡介
08:50 ~ 10:40 企業IT環境部署虛擬化架構 - HOWTO Oreo & Thx
10:50 ~ 11:50 潔淨能源 - 風力發電與太陽能發電 台灣風能科技 - 朱銘隆
11:50 ~ 13:10 中餐
13:10 ~ 14:10 Green Data Center ZMAN
14:20 ~ 15:20 Hyper-V 被 SCVMM 2008 包下來了 Jerry
15:20 ~ 15:40 下午茶時間
15:40 ~ 16:40 綠色救援 - 從EXT2 / EXT3架構談資料救援 巨匠 楊濬銘
16:40 閉幕

2008年11月4日 星期二

建立及使用資料庫

建立資料庫
------------

create 是mysql用來新增資料用的語句,像資料庫、資料表等等,都可以使用它來新增:

mysql> create database new;
Query OK, 1 row affected (0.02 sec)
第一句意思為新增一個名為new的資料庫,如果要新增資料表,把database改成table就好了。資料庫或資料表名稱需注意大小寫需一樣。

建立完資料庫,我們就可以在裡面新增資料,但在新增資料我們必須確定我們現在用的是哪個資料庫,mysql使用use來設定使用的資料庫:

mysql> use new
Database changed
第一行意思為要使用new這個資料庫,第二行顯示使用的資料庫已經是new。

我們也可以在登入mysql時就指定要使用的資料庫:

[root@localhost ~]# mysql -u root -p new
Enter password:

要注意後面那個new,是要使用的資料庫名稱,而不是你的密碼,當你輸入完並按下Enter,它才會要你輸入密碼。


建立資料表
-----------

先來看看new這個資料庫裡面有甚麼資料表:

mysql> show tables;
Empty set (0.00 sec)
用show這個指令來看有甚麼資料表,記住你要看哪個資料庫的資料表,要先用use切換到那個資料庫下面。同樣的,我們也可以使用show來看有甚麼資料庫,記住tables跟databases,用show都要加s。

和新增資料庫一樣,使用create這個指令來新增資料表:

mysql> create table phonebook(
-> name varchar(20),
-> phone int(20));
Query OK, 0 rows affected (0.08 sec)
為了方便閱讀所以我分三行輸入。create table phonebook後面用()包了一些指令,資料表裡的欄位要使用()包起來,以這個例子來看,第一個欄位為name,後面接資料型別(下面會介紹資料型別),資料型別後面的(20)代表這個欄位的長度。如果還有別的欄位請用","(逗點)分開。
這裡我新增一個叫做phonebook的資料表,裡面包含兩個欄位,分別為name跟phone。

建立完資料表我們來看看是否真的有建立進去:


mysql> show tables;
+---------------+
| Tables_in_new |
+---------------+
| phonebook |
+---------------+
1 row in set (0.00 sec)

真的有剛剛新增的資料表。

除了show,還可以使用describe來看看資料表欄位的類型:

mysql> describe phonebook;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| name | varchar(20) | YES | | NULL | |
| phone | int(20) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.01 sec)
這個指令會將資料表欄位的資訊顯示出來,如果你忘記欄位類型,這是很好用的指令。


新增資料
---------

接著便要在資料表裡新增資料,新增的方式有幾種,先講第一種:
直接輸入:
在mysql>提示字元下,一行一行輸入資料:

mysql> insert into phonebook values('xiang', '0970-123456');
Query OK, 1 row affected, 1 warning (0.00 sec)
新增的指令為"insert into",phonebook代表你要新增資料到哪個資料表,values後面接(),裡面用來放新增的資料。以這個例子來看,phonebook資料表裡有兩個欄位,因此()內我必須要有兩筆資料,每筆資料要以''框起來,資料間要以,隔開,新增資料有分順序,因為phonebook第一個欄位為name,第二個欄位為phone,所以第一個欄位就要輸入名字,第二個欄位要須入電話號碼,要注意資料型別,資料型別錯誤的話,新增會有問題的。

mysql> insert into phonebook values('0970-123456', 'xiang');
ERROR 1046 (3D000): No database selected
我將上面例子的資料反過來,就出現錯誤了。

另一種方法,你可以先將資料寫好,使用匯入的方式,在資料很多的時候這是很方便的方法:
我在/tmp/mysql下面建立了一個名為phonebook.txt的文字檔,內容如下:
jack 0935-000000
mary 0933-123456
david 0928-101999
一行為一筆資料,每行有兩個欄位,欄位之間用tab鍵隔開,建立完之後再來就要匯入了:

mysql> load data local infile '/tmp/mysql/phonebook.txt' into table phonebook;
Query OK, 3 rows affected, 3 warnings (0.00 sec)
Records: 3 Deleted: 0 Skipped: 0 Warnings: 3
應該很容易看出來語法吧,匯入指令load data local infile,用''框起來的就是檔案路徑,into table phonebook就是要匯入到phonebook這個資料表。

安裝與登入mysql

安裝mysql

以fedora環境下,直接輸入 yum install mysql及yum install mysql-server


啟動mysql


與一般服務的管理方式一樣,在fedora可以使用 service來管理,亦或是在 /etc/init.d下直接來管理服務。輸入 service mysqld restart,安裝後第一次啟動mysql,會提示你使用 mysqladmin -u root password 'your-password'來指定root密碼:


[root@Fedora8DK etc]# service mysqld start
Initializing MySQL database: Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h Fedora8DK password 'new-password'
See the manual for more instructions.
You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/bin/mysqlbug script!

The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at http://shop.mysql.com
[ OK ]
Starting MySQL: [ OK ]



登入mysql


登入mysql的指令如下:
mysql [-h host_name][-u user_name][-pyour_pass ]

-h為要登入的主機名稱,可省略,未指定就是本機
-u為使用者名稱,可省略,未指定就是下指令的user
-p為密碼,如果有設密碼的話就不能省略。密碼不用先輸入,按下確定後系統會請你輸入密碼,如範例第二行
-h, -u和-p選項的另一種形式是--host=host_name、--user=user_name和--password=your_pass。注意在-p或--password=與跟隨它後面的口令之間沒有空格。
下面為指令範例:

[root@localhost ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.0.45 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

成功登入後,提示字元變成mysql>,代表現在在mysql底下。


登出mysql

輸入quit即可,或是按Ctrl+d也可以。



輸入查詢


這裡將介紹輸入命令的基本原則及特性。一般進入mysql後會顯示 mysql>,表示已經在mysql底下,並可以開始輸入命令,mysql>有幾個特性:
* 通常一個命令會以 ;(分號結尾),如果沒有";"即使按Enter鍵,mysql仍然會等待輸入(並非全部,像quit就不用以;結尾)
* mysql用資料表格(行和列)方式顯示查詢輸出。第一行包含列的標籤,隨後的行是查詢結果。通常,列標籤是您取自資料庫資料表的列的名字。
* 當執行完一個命令,mysql會將命令傳給伺服器,並將結果顯示出來,然後顯示另一個 mysql>等待下一個命令的輸入
* mysql的結果會顯示返回了多少行,以及查詢花了多長時間,它給您提供伺服器性能的一個大致概念。
* mysql底下不分大小寫,除了一些特定的字

底下為一些示範:

select version()使用version()來查詢現在的版本,底下輸出結果以及查詢所花費的時間。
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.0.45 |
+-----------+
1 row in set (0.00 sec)


您可以在一行上輸入多條語句,只需要以一個;(分號)間隔開各語句:

mysql> select version(); select now();
+-----------+
| version() |
+-----------+
| 5.0.45 |
+-----------+
1 row in set (0.00 sec)

+---------------------+
| now() |
+---------------------+
| 2008-11-03 16:13:32 |
+---------------------+
1 row in set (0.00 sec)


你可以不用把所有的命令都集中在同一行,前面有說過,mysql以;(分號)做為結束符號,因此你也可以將命令分成好幾行,像這樣:
一樣使用select version();這個命令做示範,我將這個命令分成三行輸入,結果是一樣的。
mysql> select
-> version()
-> ;
+-----------+
| version() |
+-----------+
| 5.0.45 |
+-----------+
1 row in set (0.00 sec)

如果你在輸入到一半的想取消輸入,可以直接輸入 "\c"來取消輸入:
mysql> select
-> version()
-> \c
mysql>

這裡要注意一下,當我沒輸入;就按Enter的話,提示字元為 ->,其實每個符號各有不同的意思:

提示符號 含義
mysql> 準備好接受新的命令
-> 等待多行命令的下一行
'> 等待下一行,等待以單引號(「'」)開始的字串的結束。
"> 等待下一行,等待以雙引號(「"」)開始的字串的結束。
`> 等待下一行,等待以反斜點(『`』)開始的識別符的結束。
/*> 等待下一行,等待以/*開始的註釋的結束。

2008年10月31日 星期五

客製化你的logo

相信很多人架好Plone後,一定會想將佈景換上自己的風格。首先就來介紹如何更換頁面最上方的logo。



首先當然是先準備你的logo,尺寸的話就看個人喜好,這裡我用的尺寸為 283x91。
登入Plone之後,點選左上角的Site Setup進入站台設定介面。



點選Zope Management Interface進入Zope的管理介面



點選portal_skins



點選plone_images



點選logo.jpg,這個就是logo的圖檔。


進去之後會顯示檔案的狀態,按一下下面的Customize進入客製化的介面



按一下下面的 File Data後面的"瀏覽",選取你的logo,接著點選uploadSave Change後,你的logo就變成你要的





將將~~真的變成我的logo了

2008年10月13日 星期一

Adding Files

新增檔案的功能可以讓我們很容易的上傳各種檔案到網站上,供人下載使用。新增的步驟很簡單,這個範例中我已經事先新增一個資料夾用來放要新增的檔案,其他步驟如下:
點選工具列上的 Add new... > File 就會到新增檔案的頁面:



Title :檔案標題(一定要有)
Description:檔案描述(可有可無)
File:點一下瀏覽,到電腦裡選擇你的檔案
最後別忘記按下save




新增完成,要注意的是,檔案的名稱為該檔案你存在電腦時的名稱,而不是Title

2008年10月1日 星期三

Adding Folders

新增資料夾是管理Plone裡最基本的動作之一。

新增的方式很簡單,點一下Add new選單會跳出項目清單:




點一下Folder,就會進入新增資料夾的畫面,在title的地方輸入資料夾的名稱。要注意,紅色方塊的地方是一定要輸入的,其它像是description,不填也沒關係,日後有需要也是可以回來填上你要的描述:



description 在使用者執行搜尋時很有用,因為搜尋的結果會包含title與description兩者。
另外,你會發現上面有一排標籤:Default, 用來輸入title與description, Categorization, 將資料夾分類(你應該知道key words), Dates, 設定資料夾的開放時間, Ownership, 給特定的使用者或投稿者來修改文件, Settings, 設定是否開放註解、是否出現在navigation menu。
這些是標準的標籤,當你新增別的型別的內容,你會很常看到它。

最後,別忘記按下save完成新增的動作。

2008年9月19日 星期五

CCNA啪斯~

準備好一陣子的CCNA總算是去給他考過了 真是太開心了阿~~~~
雖然只是最低階的考試 不過還是有點緊張 畢竟可是要200美金阿
整理了一些心得

上課或自修:能的話當然上課聽講師講會比較好,補習班要挑可以實機操作,不是用模擬器。
這裡當然推一下我上的奇科,講師是Henry,個人覺得很不錯,他有CCIE,除了NA的內容,他也常會講一些不錯的觀念(學習或工作態度等等)給我們
奇科的環境是個小機房 可以真正摸到機器 課後要作lab的話 只要沒有其他人上課在用就可以去作(嘖嘖 應該跟奇科收廣告費的)

參考書籍:
去上課的話一般都會有原廠教材,老實說真的看那個就夠了,一方面可以訓練英文能力,不過我比較急一點所以我還是買了一本中文書
推旗標翻譯的CCNA認證教戰手冊第六版 這本厚到絕對可以砸死人(驚) 當初在天瓏買的1千大洋
網路上有關CCNA的電子書也是一堆 需要的可以跟我要(當然是看交情拉,我還有NP哩哩摳摳的)

Lab:
可以的話,當然是有設備最好了,不然就是用模擬器,Cisco原廠出的Packet Tracer,以CCNA考試的範圍來說,這個已經夠用了。

考題:
考題也有很多種可以選,我看的是Pass4sure,網路上找一下,很容易找到

準備方法:
我是先去補習班上過(之前有一點網路的底子,一點點而已),上完後開始k那本中文書,Lab一直作(我都用模擬器的拉),等看完一兩遍就開始看考題
考題邊看,有問題就查書,多作幾遍到最後答案都記得了(疑?)。準備要考的前一個禮拜可以去網上看看有什麼特別的訊息,像我這次,前兩天我上網看
才發現最近Cisco考題有變動的情形,而我抓的Pass4sure也有最新的版本是針對這次的變動,好險有抓到,超級多題目是一模一樣的(疑疑?)

說真的,如果只死背考題也是會pass的,但是就失去證照的意義了,看個人怎麼斟酌,恁爸pass要來找飯局了~挖哈哈哈哈
禮拜三之前 找我請吃飯 呼呼

2008年9月4日 星期四

Linux 常用軟體

compress
rarlinux :使linux支援winrar

2008年8月18日 星期一

wordpress佈景主題

Wordpress也提供了更換佈景的功能,首先到http://wordpress.org/extend/themes/選擇你想要的佈景按下Download:




將下載的檔案解壓縮到/var/www/html/wp-content/themes/目錄底下,接著登入你的wordpress管理介面,點選Design,即可顯示佈景主題的管理頁面:






往下拉到下面會顯示其他可用的佈景主題,點選你要的佈景主題:






會出現佈景主題的預覽視窗,按右上角的Activate套用主題:





回到首頁就就會套用佈景主題了


2008年8月15日 星期五

wordpress語系變更

本文參考http://codex.wordpress.org/WordPress_in_Your_Language上的說明,這裡只介紹正體中文,其他語言請參考該網頁。

Wordpress預設的語言為英文,但他同時也支援許多語言,請參照網頁上的介紹。安裝語言有幾種方式,先介紹最簡單的,打開瀏覽器輸入http://of.openfoundry.org/projects/91/download#1.2,到自由軟體鑄造場下載正體中文的套件



接著依照下述步驟:
1.下載的檔案裡有個languages的目錄,將他解壓縮到 wp-content 目錄下面
2.在 wp-config.php 檔案內設定正體中文語系
define ('WPLANG', 'zh_TW');
3.資料庫格式請使用 utf-8,另於 wp-config.php 檔案內設定資料庫連線資訊如下:
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', 'utf8_unicode_ci');

接著打開網頁應該就變成中文介面了!


2008年8月12日 星期二

wordpress快速安裝

所需套件

# PHP 4.3 or greater
# MySQL 4.0 or greater
並確定web server有啟動

請注意mysql也需要安裝mysql-server,而注意php不是安裝php就行了,因為mysql也會用到php,所以也需要安裝php-mysql套件,不然在安裝Wordpress的時候會發生錯誤。
Web server一般預設為Apache,記得要先啟動。mysql部分有遇到新增user或是變更密碼後要重新啟動mysql才有效,這點滿怪的。

1.請先到 Wordpress網站下載wordpress




2.下載之後將檔案解壓縮到主機的web server目錄,我的路徑為/var/www/html,解壓之後把wp-config-sample.php更改名稱為wp-config.php。

3.使用文字編輯器打開wp-config.php,依圖示所框起來的區域輸入資料庫的資料(在這之前,必須先在mysql裡新增一個Wordpress專用的資料庫)


DB_NAME DB的名稱
DB_USER 登入DB帳號
DB_PASSWORD 登入密碼
DB_HOST DB所在的那台主機


4.打開瀏覽器,輸入你的網頁位址就會到達wordpress的設定畫面。如果沒有的話請輸入http://你的網路位址/wp-admin/install.php,如下圖:



Blog Title為你Blog的名稱
Your mail為輸入你的電子郵件,密碼也會寄到這個信箱裡
輸入完之後按下Install Wordpress,之後會出現成功畫面,如下圖:


username 為使用者名稱
password 為預設的密碼,建議第一次登入後就將他改成你自己的,接著按下log in到登入畫面




輸入帳號密碼後即可登入wordpress了

2008年8月4日 星期一

Fedora9 輸入法安裝

最近安裝 Fedora 9 64bit 準備架站玩玩
用的是之前要跑 VM Lab那台 因為有8GB的ram 所以當然要跑64bit爽一下
除了架站 一些工作也會在上面做
結果 Fedora 9 預設是沒有安裝輸入法的 於是乎上網找了一下
請在終端機輸入
yum install scim-lang-chinese
大約會下載25MB的套件 跑完 重開機後就有中文輸入法了

2008年7月27日 星期日

終端機設定



尋尋覓覓 也沒這麼誇張拉
最近終於找到我喜歡的終端機設定
文字顏色 #F0F607
文字字型 MiscFixed 13
背景顏色 #121207

就像上圖一樣

2008年7月13日 星期日

lab用 桌機建構完成

因為工作的關係 可能要學些系統
拜科技進步所賜 以前要建構這些lab環境 一般人可能負擔不起
現在只要一台不錯的桌機 就可以搞定了
先列出這次組的硬體規格
CPU :Athlon 64X2 4600+
RAM :創見DDRII-800 2G*4 共 8G
MB :技嘉MA78GPM-DS2H
HD :WD SATAII 400G
Power:全漢PFC 400W
Case :coolermaster iTower 930
CPU跟硬碟是跟朋友買的中古品
RAM選創見是因為終身保固 換貨不囉唆
MB這塊則是讓我等了一陣子 號稱目前最前的內顯 記憶體是內建DDR3 128mb 不是共享的喔
Power 朋友推薦的
Case使用應該是市面上唯一一台有前制式熱插拔硬碟 一般這種只有在伺服器上面出現
雖然他的面板適用塑膠的 至少讓我這個常會換硬碟的人是個很方便的功能

這個規格 一次開了四個VM還是很順 爽度一百 讚拉!~

2008年7月10日 星期四

Installing Plone 3 with the Unified Installer

Unified Installer

Unified Installer 是個可安裝在Unix-like系統上的安裝套件,他包含了zope、python、plone以及相關的lib。


Root or User Install

依照安裝者的權限所安裝出的環境也有些許不同:
The root install:

# 安裝在 /opt/ 底下
# 會把libz及libjpeg安裝到system libraries
# 新增一個名為plone的使用者,並會將相關的檔案擁有者設給plone。他也擁有配置及執行zope的權限。

The normal (non-root) user install:

# 安裝在 $HOME/ 底下
# 會把libz及libjpeg安裝到local libraries
# 只有該user能執行zope

Why Choose root or normal?

一般來說使用root帳號來安裝是最好的,因為安裝套件時是在安裝者的uid下被創造的,因此應該會有較高等級的控制及存取權限。
而normal user比較適合在測試或開發的環境下使用。

To ZEO or Not to Zeo?

zope 提供兩種執行方式 Client/Server 及 stand-alone
在Client/Server configuration架構,ZEO允許許多用戶端程序共用一個資料庫程序

The stand-alone Zope instance
適合較單純或測試環境使用

The ZEO Client/Server configuration
此架構有幾個優點適合給生產或開發平台使用:
更好的負載平衡選項
執行script功能
更好的除錯功能


Running the Unified Installer

安裝時所需的套件

# gcc, the GNU Compiler Collection.
# g++, the C++ extensions for gcc.
# GNU make, the fundamental build-control tool.
# GNU tar. This is the version of tar on all Linux, BSD and OS X platforms, but not Solaris.
# bzip2 and gzip decompression packages. gzip is nearly standard; some platforms will require that bzip2 be installed.

安裝步驟:

解壓縮Unified Installer
tar zxf Plone-3.VERSION-UnifiedInstaller.tar.gz

切換到安裝套件的目錄
cd Plone-3.VERSION-UnifiedInstaller

Running install.sh
(如果要使用root身份安裝,請使用su root或是在命令前加上sudo)

ZEO Installation:

./install.sh zeo


Stand-Alone Zope Installation:

./install.sh standalone

接著可以稍微放鬆一下並看看安裝過程:
如果安裝程序未開始,這代表可能有所需的套件為安裝,安裝他並在安裝後在安裝一次Plone
如果安裝成功,你可以看到一些有關設定啟動Zope/Plone的指令,請注意admin的password,這是系統預設的密碼。相關的指令會紀錄在README.txt而密碼會紀錄在adminPassword.txt裡。
如果安裝失敗,請注意任何的錯誤或診斷訊息。如果你無法修復這些問題,你可以寄信給plone-setup mailing list請求幫忙,並請詳述有關你的系統資訊及所有錯誤訊息。

Checking your installation

你可以使用下列方式來測試動Zope/Plone是否有正確啟動:
打開瀏覽器並在位址列上輸入 http://localhost:8080,應該會看到Zope的歡迎訊息。



進入PLone,請輸入http://localhost:8080/Plone




進入Zope的管理介面,請輸入http://localhost:8080/manage




如果你無法進入,常見的問題是有別的程式也使用了相同的8080 port,更改port並再次啟動看看。另外防火牆的設定也是常見的問題之一。

以上參考 Installing Plone 3 with the Unified Installer

2008年6月13日 星期五

OSI model

OSI提供的是模型,不是規範,OSI是由ISO於1984年所發表的,描述資料如何在網路間傳遞,OSI將整個網路分為7層,各層各自負責各層的工作:



physical layer 實體層


資料傳送單位:0與1 =>bit
此層用來定義:接頭型式、電壓、電流、線材(傳輸媒介)、腳位等等....
負責位元的傳送與接收
設備:集線器,接收信號並將信號再生或放大,再從所有埠送出,但不檢視任何資料



Data link layer 資料連結層


資料傳送單位:frame,會將bit=>byte=>frame(框架)或是將網路層的訊息轉換成bit,供實體層傳輸
定址:使用MAC(6 bytes)
前3B:廠商代碼
後3B:流水號
傳送機制:CSMA/CD
定義上層協定,錯誤偵測(Error detection),網路拓撲,流量控制
將訊息格式化為frame,並加上包含目的與來源硬體位址的表頭(Header)
乙太網路資料連結層的兩個子層:
Media access control MAC,媒介存取控制
CSMA/CD

Logical link control LLC,邏輯連結控制
負責辨識網路層協定,透過LLC標頭得知該如何處理封包
設備:交換器、橋接器
當接收到資料時:
1.檢查資料完整(FCS,tailer)
2.檢查長度(>64bytes~<1500bytes)
3.目的地的MAC是自己才接收

Network layer 網路層

定址(IP)
Routing (繞送)
1.找到最近閘道器
2.資料送到最近目的地的閘道器
3.資料送達目的地
使用 IP協定(IPX、AppleTalk等等)
資料傳送單位:Package
設備:路由器


Transport Layer 傳輸層

多工
決定順序
Error Recovery 錯誤回復功能
TCP及UDP
資料單位:Segment
Data de-encapsulation
將資料切割與重組到資料串流中
流量控制
封包排序
確認
著名的TCP、UDP協定就是在此層


Session layer 會議層

建立管理拆除會談
單工半雙工全雙工



Presentation layer 表現層

將資料呈現給應用層
資料的轉換與編碼格式
壓縮、解壓縮、加密、解密等




Application layer 應用層

使用者真正跟電腦溝通的地方,所有會使用到網路的程式都可算是

backup Plone

最近想開始研究Plone,我想是沒有中文說明的關係吧,Plone在台灣似乎是很少討論,反倒是對岸的社群還滿多的。想說邊研究邊看原廠說明文件,一方面也可以加強自己的英文....................

一開始我想的第一個重點是備份,沒錯!因為如果玩壞了可以馬上利用備份來還原資料,這份文件是參考官方提共的說明http://plone.org/documentation/how-to/backup-plone/?searchterm=backup,有興趣的人可以自行去瀏覽


備份重點
Plone的主要幾個備分重點如下:
Zope database ,Plone的資料庫,主要的資料都在這裡,Zope database的資料庫存放路徑為 /安裝Plone的資料夾/zeocluster/server/var/ 底下,附檔名fs的就是資料庫
(3.1.5已經改為 安裝Plone的資料夾/zeocluster/var/filestorage)

Product,Plone提供很多Product用來擴充Plone的功能,這些額外安裝的Product大都放在/安裝Plone的資料夾/zeocluster/server/Products/底下

Zope configuration file ,Zope的設定檔,通常在 /安裝Plone的資料夾/zeocluster/server/etc/底下,名為zeo.conf

備分方式
上述這些都可以直接使用複製的方式複製在媒體上,除了資料庫。zope的db雖然也可以使用複製的方式來備份,但這並不百分之百代表db會完整的備份下來,尤其是在plone還在運

作的時候,要備份資料庫可以:
1.先將Plone停止,再備份資料庫

2.使用repozo.py 這隻script來備份資料庫,詳細說明請參考Backing up FileStorage files

3.使用Zope管理介面的備份工具
進入Zope的管理介面,在網址列輸入http://localhost:8080/mange,並點選左欄的Control_Panel



進入後,點選主畫面下方的Database Management



在點選你要備份的資料庫



按下PACK,這樣就完成備份

2008年6月12日 星期四

Plone 介紹



Plone 是個透過 web 使用的內容管理系統(CMS),架構在 Zope 之上,以 GNU GPL 授權釋出的開放原始碼軟體。Plone 常被用在文件出版或做為群組軟體之用,支援多種文字,強調可用性(accessibility),內建全文搜索功能,並可藉由安裝或卸除產品(products)來改變 Plone 網站的功能。

Plone 一般而言較少有安全漏洞的問題,但所需硬體資源較多。很合適作為組織內部的網站,但若要在網際網路上用 Plone 提供高承載的服務,最好要搭配一些網頁快取系統和╱或 ZEO 的分散式後端系統。

Plone的特色
安裝容易:透過Plone的安裝套件,您只需要輕鬆的點兩下即可完成Plone的安裝。
語系:Plone支援超過35種以上的語言,讓您可更輕鬆的使用Plone。
自由軟體:Plone與Linux一樣透過GNU方式發佈軟體,這使您可以自由的使用、修改此軟體。
支援性強:世界上有將近一千個Plone的開發團隊,這使得Plone有更強的支援性。
擴張性強:透過add-products的功能讓Plone可以安裝更多不同的功能



Plone 這個名字是為了向 Plone 這個來自英國伯明翰的電子樂團致敬而取的。

支援平台
Plone 支援 Windows, Linux, BSD, Mac OS X等平台,安裝方式也只需輕鬆的點兩下滑鼠就可以完成Plone的安裝。

知名採用網站
自由軟體基金會、美國中情局、教材交流網站 Connexions 等等的網站都是用 Plone 架設的。Plone 官方網站上有一個 網站清單和 提供 Plone 服務的公司清單。



歷史
由 Alan Runyan、Alexander Limi 與 Vidar Andersen 在 1999 年開始開發。
Plone 基金會於 2004 年成立,以處理和 Plone 的開發、宣傳和法律相關事務。

外部連結
官方網站

Plonebook — 免費的 PDF 電子書

Plone 的相關產品

Plone 示範檔

Plone 的 Wiki

介紹 Plone 的影片

2008年5月29日 星期四

Process Management

程序
在Linux底下,每觸發一個事件(通常是執行一個指令或程式),系統會將他設定成一個程序並給予一個ID,稱為PID,管理者就可以藉由這個PID來管理程序。另外系統也會依照觸發程序的使用者所擁有的權限給予程序適當的權限。

父程序與子程序
當一個程序又去觸發另一個程序時,第一個程序為父程序,新觸發的程序就稱為子程序。像我們所登入系統後會得到一個bash的shell,我們可以在這個bash而執行許多指令,假設我們在這個shell執行了/usr/bin/less這個指令,這個less的PID就稱為子程序,而bash就是他的父程序。
關於子程序與父程序的關係,可以使用pstree這支指令去觀察:
pstree 參數
-p 列出各程序的PID
-u 列出各程序的所屬帳號名稱

程序的觀察
前面所介紹的pstree指令,僅能列出子程序與父程序的關係,並不會顯示出程序的相關資訊,若要或得程序的詳細資訊可以使用ps這隻程式,他提供了程序的狀態、CPU、記憶體的使用情況等等:
ps 參數
在不加任何參數直接執行 ps時,只會列出使用者個人、有連結終端機的程序,如下:
[root@localhost tmp]# ps
PID TTY TIME CMD
2591 pts/1 00:00:00 bash
30891 pts/1 00:00:00 ps

然而只列出這些是不夠的,我們可以加入ㄧ些參數得到更多的資料:
a 顯示有連接終端機的所有行程
u 顯示有效使用者相關的程序
x 顯示未連結終端機的所有程序(通常是長期運作的的伺服行程)
l 較長、詳細的格式輸出(顯示nice值)

ps 常搭配 aux這三個參數使用,執行結果如下
[root@localhost ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 2112 704 ? Ss 08:02 0:01 init [5]
root 2 0.0 0.0 0 0 ? S< 08:02 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S< 08:02 0:00 [migration/0]
root 4 0.0 0.0 0 0 ? S< 08:02 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 08:02 0:00 [watchdog/0]
root 6 0.0 0.0 0 0 ? S< 08:02 0:00 [events/0]
root 7 0.0 0.0 0 0 ? S< 08:02 0:00 [khelper]

user 該程序的使用者名稱
PID 該程序的PID
%CPU 使用CPU的百分比
%MEM 使用實體記憶體的百分比
VSZ 使用虛擬記憶體的大小
RSS 佔用固定的記憶體大小
TTY 運作的終端機,如果與終端機無關則顯示 ?
STAT 程序狀態,有以下幾種
R 程序執行中
S 程序睡眠中,可被喚醒
T 程序偵測或停止
Z 程序已停止,但父程序無法正常終止他
START 程序觸發時間
TIME 該程序實際使用CPU時間
COMMAND 程序指令名稱

相對於ps的靜態輸出,top提供了動態的輸出,top可以更即時的獲取程序狀態:
top 參數
-d 更新的秒數,預設是五秒更新一次
-b 通常會搭配資料流重導向來將批次的結果輸出成為檔案
-n 指定觀察的次數,常與-b搭配
-p 指定PID
在top執行時可用的快速鍵:
?:顯示可用的快速鍵
P:以CPU的使用率進行排序
M:以記憶體的使用率進行排序
N:以PID進行排序
k:給某PID傳送信號
r:重新設定某PID的nice值
top的執行畫面如下:
top - 14:51:28 up 7:05, 3 users, load average: 0.01, 0.00, 0.00
Tasks: 126 total, 2 running, 124 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.4%us, 0.6%sy, 0.0%ni, 98.6%id, 0.4%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 2075220k total, 571116k used, 1504104k free, 59064k buffers
Swap: 2031608k total, 0k used, 2031608k free, 305772k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2381 root 20 0 143m 61m 15m R 84.2 3.0 1:59.05 nautilus
2088 root 20 0 49148 19m 6016 S 3.9 1.0 0:38.33 Xorg
3372 root 20 0 2360 964 724 R 2.0 0.0 0:00.01 top
1 root 20 0 1948 768 560 S 0.0 0.0 0:01.04 init
2 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/0
4 root 15 -5 0 0 0 S 0.0 0.0 0:00.11 ksoftirqd/0
5 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
6 root 15 -5 0 0 0 S 0.0 0.0 0:00.01 events/0
7 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 khelper
第一行為系統的已啟動時間,線上人數,平均負載:三個數字分別代表1、5、10分鐘
第二行為總程序數,這個例子為,126的程序,2個執行中,124個睡眠,0個已停止,0個zombie程序
第三行為CPU的整體負載
第四行為實體記憶體的使用情形
第五行為虛擬記憶體(swap)的使用情形
接下來的畫面就是各程序的狀態,與ps大致上都相同

程序的執行順序
在Linux系統中,每個程序都會擁有一個優先執行程序的屬性,利用該屬性能讓系統知道哪個程序比較重要需要先執行。當我們執行ps -l或top時會發現有兩個欄位,PRI(top為PR)和NI,這兩個欄位就是用來計算程序的執行順序的:
PRI Priority的縮寫,數值越小越優先執行
NI 系統給予我們可改變執行順序的值,需注意以下幾點:
一般使用者的NI值為0~19
一般使用者僅能調高NI值
一般使用者僅能調整自己的NI值
root的NI值為-20~19
程序執行順序=PRI+NI,我們可以透過修改NI值來決定程序的執行順序,一般來講有兩種修改的方法:
程序執行時就指定NI值(nice)
修改執行中程序的NI值(renice)

nice -n command
-n 調整的NI值
command 欲執行的指令
[root@localhost ~]# nice -n -7 vi&
[root@localhost ~]# ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 R 0 3292 3289 0 80 0 - 1493 - pts/1 00:00:00 bash
4 T 0 3387 3292 0 73 -7 - 1530 signal pts/1 00:00:00 vi
這個例子我設定vi的NI為-7,並在背景執行,並使用ps -l觀察

renice number PID
number 欲設定的NI值
PID 欲設定程序的PID
例:
[root@localhost ~]# ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 R 0 3292 3289 0 80 0 - 1493 - pts/1 00:00:00 bash
4 T 0 3387 3292 0 73 -7 - 1530 signal pts/1 00:00:00 vi
4 R 0 3397 3292 0 80 0 - 1430 - pts/1 00:00:00 ps
延用剛才的範例,我已經將vi的NI設為-7,並得知PID為3387,現在將NI值改成10:
[root@localhost ~]# renice 10 3387
3387: old priority -7, new priority 10
[root@localhost ~]# ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 R 0 3292 3289 0 80 0 - 1493 - pts/1 00:00:00 bash
4 T 0 3387 3292 0 90 10 - 1530 signal pts/1 00:00:00 vi
4 R 0 3399 3292 0 80 0 - 1431 - pts/1 00:00:00 ps
NI值真的變成10了!

程序的管理
前面只提到程序的觀察,再來要介紹管理程序的指令
再來介紹 kill這個指令,這個指令可透過傳遞信號來管理程序的執行狀態,kill的語法如下:

kill -single PID
single 傳給程序的信號代碼
PID 該程序的PID
另外 -l參數會列出可用的信號清單
一般常用的信號有:
代碼 名稱 內容
1 SIGHUP 接收到此信號後,程序會重新讀取自己的組態檔,類似重新啟動的功能
2 SIGINT 中斷、停止執行,跟Ctrl+C 有同樣的作用
9 SIGKILL 強制結束程序
15 SIGTERM 以正常程序中止程序

假設我目前有個程序狀態顯示為 Z,而他的 PID為4100,要將他強制結束可以這樣:
[root@localhost ~]# kill -9 4100
要重新啟動的話也只要將信號代碼改成 1就行了:
[root@localhost ~]# kill -1 4100

除了代碼,也可以直接使用信號名稱:
[root@localhost ~]# kill -TERM 2569
另外,若未設定任何參數,kill預設會傳送 SIGTERM(15)

另一個跟 kill有關的是 killall,使用 kill必須要知道程序的PID,而 killall則是要知道程序的指令名稱:
[root@localhost ~]# killall -9 vi
相關參數:
i interactive,互動式,當要刪除時會先詢問使用者
I 忽略大小寫



相關指令
檢視目前記憶體使用狀況
free 參數
-b 以bytes為單位
-k 以Kbytes為單位
-m 以Mbytes為單位
-g 以Gbytes為單位
-t 顯示實體與swap記憶體總量
執行結果如下:
[root@localhost ~]# free -m
total used free shared buffers cached
Mem: 2026 554 1471 0 58 299
-/+ buffers/cache: 196 1829
Swap: 1983 0 1983

2008年5月28日 星期三

admin的密碼修改

1. 在網址列輸入 http://192.168.168.232:8080/manage進入管理介面(:8080/manage前面的IP或網址請輸入妳自己的網址,:8080/manage為Plone的管理介面路徑)




2. 先點選左欄的acl_user,再點選右欄的users




3. 點選後會進入使用者管理介面,點選password後就能進到修改密碼的頁面



4. 接著輸入妳的新密碼吧!

2008年5月24日 星期六

NTFS的支援

在Linux要使用NTFS可先安裝 ntfs-3g 這個套件,安裝完應可自動掛載

另一要注意的是,在windows使用過的外接硬碟需"安全的移除裝置",否則到Linux底下會顯示無法掛載

2008年1月11日 星期五

檔案搜尋

which 接command
依照PATH的路徑 尋找command 列出該位置

xiang-debian:/var# which ls
/bin/ls

whereis [option] name
尋找特定程式的可執行檔 原始碼檔 以及manpage路徑. 該指令只會在標準Linux 目錄尋找(/bin /etc /usr/bin /usr/local......)

option
-b 只尋找可執行檔
-m 只尋找manpae
-s 只尋找原始碼檔


locate 接patterns
列出包含patterns的檔案. 需要注意的事,第一次執行locate時,他會建立一個索引資料庫,locate都是從該資料庫尋找,所以如果檔案在更新資料庫之後出現是找不到的.

updatedb 更新資料庫囉

whatis keyword
會於whatis資料庫中尋找keyword, 需完全符合keyword才會顯示出來

apropos keyword
跟whatis差不多 , 但沒那麼嚴格,會找出類似的資料

另外 find 會另外寫一篇

2008年1月9日 星期三

apt 指令

常用的一些指令 其他請參考man

=========
apt-get
=========
apt-get update
更新資料庫,依sources.list 的設定 比對軟體資料庫

apt-get install 接套件名稱
安裝套件,安裝過程中幾乎只要選擇yes/no apt就會幫我們安裝

apt-get remove 接套件名稱
移除套件

apt-get upgrade
套件升級

apt-get source
取得套件source

apt-get clean
透過apt-get install 所安裝的套件,一般都會先下載到 /var/cache/apt/archives 及 /var/cache/apt/archives/partial目錄底下,要清除這些套件就需要使用這個指令

apt-get check
當發生問題時可以使用這個指令來診斷問題

==========
apt-cache
==========
apt-cache showpkg
顯示套件資訊

apt-cache stats
顯示相關統計資訊

apt-cache show
顯示套件資訊 如 rpm -qi

apt-cache search
尋找相關套件

apt-cache depends
顯示套件相依性

apt

APT(Advanced Package Tool)是 Debian GNU/Linux 用來管理套件的工具

apt功能
apt 能安裝 管理 移除 或是升級套件,而且最重要的 他會自動解決相依性的問題
假如在安裝A套件時 需要先安裝B套件,在以前我們會需要先去下載並安裝B套件,之後在安裝A套件,但是apt會"自動"的執行

apt運作原理
事實上apt是透過網路連線連到遠端的伺服器上去下載套件的,在 /etc/apt/sources.list 這個檔案裡設定我們指定的apt 伺服器位址.

sources.list 格式
deb uri distribution [component1] [componenent2] [...]
deb 這一欄只有兩種寫法 deb . deb-src , deb為編譯好的套件, deb-src 則為 source 的版本

uri ( Universal Resource Identifier ) 套件的來源位置, 位置可以是系統的某個file CDROM 的檔案 遠端伺服器(http ftp)的檔案等等
常見選項 file 系統內的檔案 deb file:/home/moto/debian stable main contrib non-free
CDROM 光碟檔案 deb cdrom:/dists stable main contrib non-free
http 透過http傳輸 deb http://http.us.debian.org/debian stable main contrib non-free
distribution debian 軟體種類(下面說明)

component 參數共分為 『 main 』、『 contrib 』、『 non-US 』、『 non-free 』
main 最基本及主要且符合自由軟體規範的軟體
contrib 這裡頭軟體雖然可以在 Debian 裡頭運作,即使本身屬於自由軟體但多半卻是相依於非自由 ( non-free ) 軟體。
non-US 來自非美國地區的軟體
non-free 非屬於自由軟體

關於debian 的軟體種類大致上分為三種 stable . testing . unstable
stable
最穩定的版本,通常適合用在伺服器上面

testing
已經相當接近stable的版本,這些軟體大多是從unstable流入, 適合desktop使用

unstable
版本最新的類型,不過通常太新相對的bug也比較多一點,但更新速度很快就是了

參考資料 debian 無痛起步

debian 套件管理

debian 最基本的套件管理工具是 dpkg 操作對象為檔案名稱
另一個工具是 apt 操作對象為套件名稱

dpkg
語法 dpkg [option] action
dpkg會維護 /var/lib/dpkg 目錄下的套件資訊
其中 available 列出所有可用套件
status 紀錄套件的屬性
選項
-i 接套件名稱 安裝指定的套件
-l 接pattern 在以安裝的套建中 列出指定的 pattern 以及相關資料
-L 接套件名稱 列出安裝該套件所會安裝的檔案
-r 接套件名稱 移除該套件 但保留組態檔
--purge 接套件名稱 移除該套件的所有檔案
--info 接套件名稱 套件相關資訊
其他的 請找man吧

使用 --info 的範例
==============================================
xiang-debian:/tmp# dpkg --info lynx_2.8.5-2sarge2.2_i386.deb
新格式的 debian 套件,版本是 2.0。
大小 1859352 bytes:主控檔案=1200 bytes。
14 字節, 1 行 conffiles
854 字節, 20 行 control
468 字節, 20 行 * postinst #!/bin/sh
228 字節, 15 行 * postrm #!/bin/sh
537 字節, 15 行 * preinst #!/bin/sh
206 字節, 9 行 * prerm #!/bin/sh
Package: lynx
Version: 2.8.5-2sarge2.2
Section: web
Priority: optional
Architecture: i386
Depends: libbz2-1.0, libc6 (>= 2.3.6-6), libgnutls13 (>= 1.4.0-0), libncursesw5 (>= 5.4-5), zlib1g (>= 1:1.2.1)
Recommends: mime-support
Conflicts: lynx-ssl
Replaces: lynx-ssl
Provides: www-browser, news-reader, lynx-ssl
Installed-Size: 4568
Maintainer: James Troup
Description: Text-mode WWW Browser
Lynx is a fully-featured World Wide Web (WWW) client for users
running cursor-addressable, character-cell display devices (e.g.,
vt100 terminals, vt100 emulators running on PCs or Macs, or any other
"curses-oriented" display). It will display hypertext markup language
(HTML) documents containing links to files residing on the local
system, as well as files residing on remote systems running Gopher,
HTTP, FTP, WAIS, and NNTP servers.
===============================================

debian 學習

最近參加了debian的讀書會 所以會開始記些debian的東西囉


/xiang