PHP 查詢並算出世界各地時間

線上的服務有世界各地的人來使用(若是有提供英文語系的話), 就有可能遇到需要幫世界各地的時區算時間.

要做個時區分佈設定(ex: 台灣是 +8), 想要選取後, 自動秀出他的時間, 照理說就是現在時間 -8hr 即可(設定於台灣機器而言), 但是又想到機器可能會換, 程式還是該寫好點才行, 於是花了點時間做研究.

閱讀全文〈PHP 查詢並算出世界各地時間〉

Debian Linux Package 快速製作筆記(deb)

快速製作 Debian Package, 單純 Hello world 版, 若要詳細版本可見:

Debain Package 相關資料

閱讀全文〈Debian Linux Package 快速製作筆記(deb)〉

於 Linux、FreeBSD 使用 lockf 避免程式未結束,又被再次執行

程式設到 crontab 去執行是很常做的事情, 通常也會避免同時執行過多的 Script, 不過, 通常最怕的是程式要執行很久, 結果遇到程式還沒執行結束, 同樣的程式又被執行了一隻的狀況.

通常有幾種做法:

  1. 把時間拉長避開
  2. 程式寫 file.lock / ps 等, 去判斷是否執行結束
  3. 使用 lockf 來判斷

註: 關於 lockf 安裝可見 - 於 Debian Linux 安裝 lockf 或 參考 flock 用法

閱讀全文〈於 Linux、FreeBSD 使用 lockf 避免程式未結束,又被再次執行〉

於 Debian Linux 安裝 lockf

以前都不知道有 lockf (execute a command while holding a file lock) 這麼方便的程式, 直到 Leeym 長輩 提醒才知道~

不過這個只有 FreeBSD 有, 在 Debian Linux 裡面翻不到, 最後打算找 Source code 來試著改寫看看, 就找到有人改寫好的程式囉~ 😀

  • 註1: 在此先不詳細介紹 lockf 使用時機, 另外, 有空再來包 Debian package, 目前只有 tarball 可以安裝使用~:)
  • 註2: 其它版本 Linux 應該也都可以正常編譯, 只是我沒測試過.

閱讀全文〈於 Debian Linux 安裝 lockf〉

使用 PHP 對所有 MySQL Database 做 Optimize / Repair 的動作

發現 Blog 的速度越來越慢, 主要原因應該是資料越來越多, Database 也開太多(資料蒐集 等等), 於是想說要來為所有 DB 做 Optimize 和 Repair 的動作.

詳可見:

閱讀全文〈使用 PHP 對所有 MySQL Database 做 Optimize / Repair 的動作〉

MySQL Replication Slave 使用 PHP 來忽略錯誤語法

MySQL 使用量越來越大時, 就會遇到不少莫名奇妙的事, 不管是 Replication 還是 Data Import 等等.

最常見的就是這個: MySQL Replication 出現 Duplicate Key

註: 此狀況只會發生在 MySQL Replication 的 Slave, 所以下述程式也是給 Slave 用, Master 不需要.

閱讀全文〈MySQL Replication Slave 使用 PHP 來忽略錯誤語法〉

查看 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, 因為檔案只有一個, 就沒辦法使用此方法來查.

閱讀全文〈查看 MySQL 各 Table 的使用空間〉

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";

閱讀全文〈Perl 基本格式 (Hello、JSON 寫法)〉