簡介:您是否知道博客創作與 UNIX(R) 攜手前行?UNIX 內置的 Web 和文本處理工具使您能夠方便快 捷地創建博客。探索一些用於改進 UNIX 博客創作技能的便利技巧。
UNIX® 和網絡博客或博客 具有許多共同之處。除了作為大多數 Web 服務器的本機環境和許多 Web 開發人員的首選環境之外,由於其強大的 Web 和文本處理能力,UNIX 還是用於創建博客的理想環境 。利用 UNIX 所固有的命令行工具和特性來使您成為更優秀的博客所有者。下面是一些幫助您實現該目的 的技巧。
不斷提供新鮮內容
博客創作的最重要規則是做得盡可能多。總體思想在於,您的博客應該更類似滾動的自動收報機紙條 ,甚至更類似電視畫面的運動,而不是類似從考古井中拔出的一些蝕刻片斷。它應該始終不斷增長,並且 讀者在訪問時應該獲得新鮮感。就網站這種媒體而言,有多少訪問者在積極地閱讀它們,差不多就有多少 訪問者在觀看 它們——訪問鏈接、重新加載和返回。要在這樣的網站上取得成功,您就必須 適應這一點。
雖然您不需要為此而安裝任何特殊軟件,但改進網絡博客的最快速和最重要的方法是:您必須不斷添 加新內容!既使您今天才開通博客,只要您堅持每天對它更新多次,而不是一放就是一年,只有心血來潮 時才更新它,那麼到周末就會有更多的人閱讀它了。
這個技巧與本文後面的所有其他技巧相關,因為它們將向您表明 UNIX 系統如何有助於比以往更快更 好地提供新鮮的博客內容。您必須知道您的哪些內容最受歡迎、知道誰正在閱讀它以及他們來自何處、使 您的文本更快更好地加載,並自動化您的博客更新。下面您將簡單介紹一些基於 UNIX 的內容管理解決方 案,它們可能比您以前一直用來制作博客的解決方案更好。
查看日志
日志就是您的活力之源。它們將告訴您誰正在查看您的博客以及有關位置、次數和頻度的信息。如果 您積極地發布網絡博客,則應該至少每天檢查一次 日志。日志使您能夠看到誰正在閱讀您的發布、確切 了解他們正在閱讀的內容以及他們閱讀的時間。所以,為什麼要忽略它呢?
您可以使用命令行工具來從日志提取有意義的數據,但是存在一些特殊的 UNIX 工具可以自動分析最 流行格式的日志,包括 Apache Web 服務器所寫入的日志。此類工具之一就是流行的開放源代碼 analog 命令。
對受歡迎的內容作出反應
使用 analog 命令來檢查您的鏈接並查看人們所訪問的內容。首先,獲得一個顯示統計信息的常規報 告——正在發出多少個唯一請求、是否存在任何失敗的請求、正在為多少個不同的主機服務, 等等:
$ analog -A www.20060901 | lynx -stdin
此命令產生類似於清單 1 所示的代碼。
清單 1. analog 工具的示例輸出
Web Server Statistics for BigBlog
Program started at Mon-25-Sep-2006 14:46.
Analyzed requests from Fri-01-Sep-2006 00:01 to Fri-01-Sep-2006 23:59 (1.00 days).
____________________________________________________________________________
General Summary
(Go To: Top: General Summary)
This report contains overall statistics.
Successful requests: 3,400
Average successful requests per day: 3,403
Successful requests for pages: 2,015
Average successful requests for pages per day: 2,016
Failed requests: 3
Redirected requests: 963
Distinct files requested: 101
Distinct hosts served: 950
Data transferred: 65.338 megabytes
Average data transferred per day: 65.429 megabytes
____________________________________________________________________________
This analysis was produced by analog 6.0.
Running time: Less than 1 second.
(Go To: Top: General Summary)
要特別注意 Search Word Report(其中顯示了最流行的查詢關鍵詞和它們被查詢的次數)和 Directory Report(其中顯示您站點上最受歡迎的目錄)。(查看讀者當前對哪些存檔的博客條目感興趣 始終是個好主意。)最後,Request Report 顯示了站點上被請求次數最多的文件。您的博客徽標和任何 經常在整個站點中出現的圖形固定在頂部附近,但是通過查看實際內容文件(如 .html 文件),您可以 清楚了解哪些頁面或存檔的博客條目最受讀者的歡迎。
可能會出現每天或周期性的高峰,您應該對此作出反應。然而,長遠考慮長期趨勢始終是明智的。如 果要在存檔目錄中保留每天的日志,這是很容易做到的。只需拼接它們,然後將它們全都發送到 analog 以進行一次性處理。這可以每周、每月甚至每年進行一次以跟蹤趨勢。使用 zcat(在有些系統上名為 gzcat)來同時解壓縮和拼接任何壓縮的日志。例如,為了獲得有關 2006 年 9 月的所有日志的完整報告 ,可以使用以下命令:
$ zcat www.200609* | analog - | lynx -stdin
知道您的讀者是誰
知道您的讀者來自何處可能很有幫助——所在的域、IP 地址和國家。若要查找網絡博客中 的所有主機,您可以使用幾個命令行工具來獲得有關每個主機名稱的簡要報告。如果使用 Apache 風格的 日志記錄,則請求 IP 地址是每行的第一個字段:
$ for i in `cut -d " " -f1 www.200609* | sort -u`; { host $i; }
如果您的日志是壓縮的,則首先使用 zcat 來通過管道輸出解壓縮的文本。或者,如果每天的日志在 一個 access.log 文件中可用,您可以使用同樣的原理來查看 badblog.example.com 中的同事是否已訪 問過您的站點:
$ for i in `cut -d " " -f1 access.log | sort -u | head`; \
> { host $i; } | fgrep badblog.example.com
您可以基於 web/logs/ 目錄中所具有的壓縮日志來輸出訪問過您的 /blog 目錄的唯一域總數:
$ zcat web/logs/* | fgrep "/blog" | cut -d " " -f1 | sort -u | wc -l
知道他們來自何處
如果某個站點在向您的博客發送大量讀者,您需要對其進行確認。這意味著您應該密切注意 referrer——包含指向您的頁面鏈接並出現在標頭中的 URL。該數據保存在您的日志中,您可 以使用 analog 來提取它。analog 工具列出 Referrer Report 中的所有 referrer,如清單 2 所示。可 以使用 +f 標志來啟用該報告。
清單 2. 來自 Referrer Report 頁面的示例
Web Server Statistics for BigBlog
Referrer Report
(Go To: Top: General Summary: Monthly Report: Daily Summary: Hourly Summary: Domain
Report: Organization Report: Referrer Report: Search Word Report: Operating System
Report: Status Code Report: File Size Report: File Type Report: Directory Report:
Request Report)
This report lists the referrers (where people followed links from, or pages which
included this site's images).
Listing referring URLs with at least 20 requests, sorted by the number of requests.
reqs: URL
----: ---
814: http://www.ibm.com/developerworks/
359: http://www.google.com/search
114: http://badblog.example.com/
102: http://badblog.example.com/2006/09/01/
81: http://www.google.co.uk/search
530: [not listed: 485 URLs]
________________________________________________________________________________
還可以跳過對報告軟件的使用而直接從命令行獲得 referrer。在 Apache 風格的日志中,referrer 包含在雙引號中,並跟在 IP 地址、日期和時間以及實際請求(也包含在引號中)後面。可以使用 awk 來提取 referrer;在使用一個雙引號字符作為字段分隔符的情況下,它們是每行的第四個字段。由於在 請求沒有引用 URL 時,Apache 將寫入一個連字符,因此可以結合使用 grep 命令和 -v 選項來忽略那些 行。作為最後一個技巧,可以按唯一 referrer 的受歡迎程度來排序:
$ awk ' BEGIN { FS="\""}; {print $4}' log.daily|grep -v "^- $"|sort|uniq -c|sort -r
預先設置圖像大小
超文本標記語言 (HTML) 標記 <img> 的 HEIGHT 和 WIDTH 屬性非常重要。這些參數指定給定 圖像的大小。當這些參數存在時,大多數浏覽器都會在加載圖像之前,在呈現頁面的窗口中為圖像騰出空 間。如果沒有這些標記,則必須在圖像下載完成以後,才會顯示圖像周圍的文本。
所以,當您在博客中放置圖像時,在 <img> 標記中包括這些參數是有利的,尤其是在單個頁面 上開始有大量圖像的時候,因為這樣可以顯著改善博客頁面的加載。訪問者將能在頁面開始加載時就開始 閱讀,而不必等待整個頁面及其所有圖像傳輸到本地。
但是,每次使用圖像並將它們放在 <img> 標記中時,都必須確定精確的 HEIGHT 和 WIDTH 值 ,這本身就是件恐怖的麻煩事情。幸運的是,存在一個工具可以為您自動執行整個任務。imgsizer 實用 程序(請參見參考資料)讀取您提供給它的任何 .html 文件,檢查那些文件中所引用的所有源圖像,確 定它們的高度和寬度,並在給定文件所包含的 <img> 標記中寫入正確的值:
$ imgsizer index.html
就這樣簡單——您不必加載任何圖像或對它們做其他任何事情。在 imgsizer 添加這些標 記以後,您將對頁面加載速度的提高幅度感到非常吃驚。很少有博客所有者使用了此項簡單技術,但它是 讀者將會非常欣賞的技術。
自動化更新
很少有博客所有者直接在在線頁面本身之上制作博客。大多數工作都是在本地副本上完成的,他們首 先在本地副本上草擬和提煉新條目。然後,當新的 index.html 文件為在線 准備就緒時,博客所有者將 該文件上載到承載實際站點的服務器。
該過程可能要花 30 秒到一分鐘的強制性注意時間,在此過程中,博客所有者打開文件傳輸協議 (FTP) 連接、鍵入密碼、切換到本地網絡博客根目錄、切換到服務器根目錄、上傳該文件,然後注銷(有 關示例請參見清單 3)。
可以想象,此過程很容易出現用戶錯誤。如果您志在成為每天擁有 10 個優秀更新的大亨級精英博客 所有者,則此上傳過程每天就要花去您整整五分鐘時間——或者說每年總共超過 30 個小時! 那是相當多的時間,原本可以更好地花在閱讀 developerWorks 文章來加強您的信息技術 (IT) 本領上。
清單 3. 網絡博客根頁的手動更新
develbox$ ftp bigblog.example.com
Connected to bigblog.example.com.
220 bigblog.example.com NcFTPd Server (licensed copy) ready.
Name (bigblog.example.com:joe): joe_blogger
331 User joe_blogger okay, need password.
Password: secret
230 You are user #1 of 2 simultaneous users allowed.
230 Logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> lcd ~/blog
Local directory now /home/joe/blog
ftp> cd public_html
250 "/usr/www/users/joe_blogger" is new cwd.
ftp> put index.html
local: index.html remote: index.html
200 PORT command successful.
150 Opening BINARY mode data connection.
226 Transfer completed.
ftp> bye
221 Goodbye.
develbox$
完成此任務的一種更好方法是使用 Expect 語言,它是為腳本交互式會話而設計的(請參見參考資料 )。對於通過 FTP 來人工更新站點的博客所有者,創建自動化的更新腳本是很自然的方法。清單 4 顯示 了一個自動化清單 3 所示的會話的示例。
清單 4. 自動化網絡博客更新的 Expect 程序
#!/usr/bin/expect
# update a weblog index page
# puts ~/blog/index.html in remote ~/public_html/
exp_version -exit 5.0
if $argc!=0 {
send_user "usage: bloggit\n"
exit
}
set timeout 60
log_user 0
spawn ftp bigblog.example.com
expect "Name*:"
send "joe_blogger\r"
expect "Password:"
send "secret\r"
expect "ftp>"
send "lcd ~/blog/\r"
expect "ftp>"
send "cd public_html/\r"
expect "ftp>"
send "put index.html\r"
expect "226*ftp>"
send "bye\r"
send_user "blogged it.\n"
close
現在,當您准備將某個更新置於在線時,所花的時間要少得多:
$ bloggit
blogged it.
$
使用內容管理系統
就開發並推出產品而言,UNIX 人傾向於自行其事。但同樣地,他們也很懶惰,如果已經存在適用的解 決方案,他們也不會費心地另辟蹊徑;太多的新思想還在等待形成。
在博客的早期年代,最成功的網絡博客是手工編碼的 HTML——如今已很不常見了。現在, 大多數博客都是由 CMS 提供支持的數據庫驅動、手工配置的站點。
如果說存在網絡博客應用程序,那就一定是 CMS,它能為您提供大量難於通過編程來實現的必備博客 特性——分類排序、按日期、類別和媒體類型存檔、協作帳戶便利性、布局模板和格式化、標 准或滾動圖像或主題,以及各種格式和渠道(如 RSS)的內容可用性。
存在太多的 CMS,甚至無法嘗試列出它們的完整清單——其中有數百個是當前正在使用的 ,還有一些是在 developerWorks 上的其他地方詳細描述的(請參見參考資料)。但是,列舉出其中一些 在 UNIX 上工作得很好並且可以配置來開發和運行網絡博客的較好和較流行的開放源代碼 CMS 是值得的 。表 1 列出了這些 CMS,但是還有其他許多沒有列出,因此肯定存在滿足您特定需要的解決方案。
表 1. 用於 UNIX 的流行開放源代碼 CMS
CMS 描述 Blosxom Blosxom 是一個基於 Perl 的網絡博客發布系統,其特色是插件體系結構和虛擬目錄。 Drupal Drupal 是一個模塊化的 CMS,用於通過評論和 Trackback 來構建網絡博客。 Textpattern Textpattern 是一個文檔管理系統,並著眼於精美的 Web 排版;它使用 PHP V4.3 或 更高版本和 MySQL V3.23 或更高版本。 WordPress 它是最受歡迎的開放源代碼 CMS 包之一,用於 UNIX 上的發布。總結
UNIX 環境真正是用於博客創作的天然環境。從 Web 友好的基礎設施到強大的命令行工具,其中有大 量的特性可幫助您改變一生的博客創作命運。本文提供了一些可以使用 UNIX 來使您的博客創作進行得更 好更快的方法。