星期五, 二月 27, 2009
使用 PHP 對所有 MySQL Database 做 Optimize / Repair 的動作
發現 Blog 的速度越來越慢, 主要原因應該是資料越來越多, Database 也開太多(資料蒐集 等等), 於是想說要來為所有 DB 做 Optimize 和 Repair 的動作.
詳可見:
- MySQL Reference Manual :: OPTIMIZE TABLE Syntax
- MySQL Reference Manual :: REPAIR TABLE Syntax
- myisamchk — MyISAM Table-Maintenance Utility
星期四, 二月 26, 2009
MySQL Replication Slave 使用 PHP 來忽略錯誤語法
MySQL 使用量越來越大時, 就會遇到不少莫名奇妙的事, 不管是 Replication 還是 Data Import 等等.
最常見的就是這個: MySQL Replication 出現 Duplicate Key
註: 此狀況只會發生在 MySQL Replication 的 Slave, 所以下述程式也是給 Slave 用, Master 不需要.
(閱讀全文)星期三, 二月 25, 2009
查看 MySQL 各 Table 的使用空間
想知道 MySQL 每個 Table 到底使用多少空間, 如果是用 MyISAM 格式, 直接 ls -lh 去看即可. (下述路徑是 Debian Linux 預設 MySQL DB 存放路徑)
查看 MySQL Table 使用容量 (看 *.MYI)
- ls -lh /var/lib/mysql/DB_NAME/
- ls -lh /var/lib/mysql/DB_NAME/ | grep MYI # root 身份 可以直接 ls -lh /var/lib/mysql/DB_NAME/*.MYI
取出 MySQL Table 使用容量 依容量大小排序
- ls -l /var/lib/mysql/DB_NAME/ | grep MYI | awk '{print $5,$8}' | sort -nr
- 簡化: ls -l /var/lib/mysql/DB_NAME/ | awk '/MYI/ {print $5,$8}' | sort -nr # 感謝 artchiu 提供
不過若使用 InnoDB, 因為檔案只有一個, 就沒辦法使用此方法來查.
(閱讀全文)星期二, 二月 24, 2009
Perl 基本格式 (Hello、JSON 寫法)
Perl 讀取 JSON 寫法
#!/usr/bin/perl
# apt-get install libjson-perl
# http://search.cpan.org/dist/JSON/
# use JSON qw/to_json from_json/;
use JSON;
use Data::Dumper;
$json_text = '{"a":1}';
print Dumper from_json($json_text);
# $hash = from_json($json_text);
# print $hash->{'a'} . "\n";
(閱讀全文)
星期一, 二月 23, 2009
Ubuntu / Debian Linux Mplayer codecs 安裝 & 更新
Linux 看電影都是用 Mplayer, 平常所有影片都能看, 但是最近有個 rmvb 不能看(有聲音, 沒畫面), 但是我新灌的電腦可以看, 應該是 codecs 太舊的原因, 所以來更新看看.
如果您只是要安裝 Mplayer 與 確定可以正常顯示等等, 請先試此篇文章這兩個步驟:
- 安裝 / 更新 Mplayer Codecs
- 設定 視頻輸出驅動 (vo)
如果不行, 再參考本篇內其它步驟~ :)
註: 感謝 shell 的指點, Debian 有寫好的 Script 可以直接執行, 就會自動安裝好.
sudo /usr/share/mplayer/scripts/binary_codecs.sh install(閱讀全文)
星期五, 二月 20, 2009
使用 AWK 來做垂直數字加總
數字垂直加總
檔案內容 (num.txt)
1
2
3
- 加總:
cat num.txt | awk '{sum += $1} END {print sum}'
- 輸出: 6
加總 Apache access log 輸出的流量
cat access.log | awk '{sum += $10} END {print sum}'
- 數值就是輸出的流量.
相關網頁
星期四, 二月 19, 2009
Amazon SimpleDB 操作筆記 與 程式範例(PHP)
在 EBS(Elastic Block Store)出來前(註: 有 EBS 就可以將 MySQL data 目錄 mount 上去.), 若要使用 EC2 搭配的資料庫, 就是得要選 SimpleDB, 雖然現在可以有 EBS 用, 不過 SimpleDB 還是有值得使用的地方, 應用範圍再自行想像囉~ :)
Amazon SimpleDB 儲存的格式是 Domain -> PKeys, PKey -> Attributes, Attributes 有很多 Key ->Value (註: Attributes 就是一筆紀錄下面, 可以有多個 Key -> Value 的紀錄), ex:
Key: 1
Attributes:
Category: Book
Price: 200
Date: 2009-01-01
而且 SimpleDB 也有簡易的 Select 語法可以使用(在此篇還沒詳細研究 Select 語法.)
相關資訊: Amazon SimpleDB 研究相關文件蒐集
(閱讀全文)星期三, 二月 18, 2009
PHP 依固定長度切割字串(unpack)
切割字串通常都是有某些特殊分隔用 split 來分隔, 而另外一種是固定長度的切割法, 就是第一欄長度是 20, 第二欄長度是 15 .. 等, 遇到這種可以使用 unpack 來切割.
(閱讀全文)星期二, 二月 17, 2009
Amazon EC2 取得自己的外部 IP
Amazon EC2 開機會自動取得自己 10.x.x.x 的 IP, 要抓取實體 IP / Hostname 等, 要用下述方法抓:
- 取得 IP:
wget -q -O /tmp/public-ip http://169.254.169.254/latest/meta-data/public-ipv4
- 取得 Hostname:
wget -q -O /tmp/public-hostname http://169.254.169.254/latest/meta-data/public-hostname
- 註: 169.254.169.254 是特殊 IP, 非 EC2 無法用此方法抓取.
星期一, 二月 16, 2009
Debian Linux 5.0 Lenny Release
Debian 總算將 Lenny 放進 Stable 版, 於 2009/2/14 釋出.
- 詳可見: Debian GNU/Linux 5.0 released
- 相關資訊: Debian "lenny" Release Information
- 下載: Network install from a minimal CD (我習慣下載最小安裝版)
星期五, 二月 13, 2009
星期四, 二月 12, 2009
Amazon EC2 使用操作筆記 (使用 Elasticfox)
Amazon Elastic Compute Cloud (Amazon EC2) 是虛擬主機的服務, 主要是可以隨時加機器、硬碟等, 可以非常快速的擴充.
不過也有些缺點, 就是在上面的資料是不會被儲存的, 若是機器當掉、強制關機等等, 資料就會消失. IP 不固定等問題.
Amazon 針對這些問題也都有解法:
- 資料儲存: 用 Amazon Elastic Block Store 解決此問題(而且可以動態新增硬碟並掛載上去), 並可隨時為此硬碟做 Snapshot.
- IP 不固定: 用 Elastic IP Addresses 解決此問題, 可以先把 IP 先租起來放.
這幾天照文件都玩過一次, 寫寫筆紀做紀錄.
(閱讀全文)星期三, 二月 11, 2009
Windows 磁碟重組程式 - IObit SmartDefrag
家裡的電腦開 Windows 時, 實在慢到受不了, 想想似乎重灌好到現在, 從沒跑過磁碟重組工具, Windows 內建的磁碟重組工具跑一次要好久. :~~
(閱讀全文)



