Shell Script: 來最多次的 IP, 抓前 10 名

一隻簡單的 Bash Script, 找出暴力攻擊 Server 的 IP, 然後不得已的情況, 就是把他擋掉....

Shell Script: tail -1000 /var/log/apache2/www-access.log | awk '{print $1}' | sort | uniq -c | sort -n | tail

取最後進來的 1000 筆 access log 來看, 觀察一下有沒有太誇張的 IP (特別是看有沒有是特別來亂的, ex: 開始亂塞些惡意的值)

列出大致如下:

  • 次數 和 IP
  • 10 xxx.xxx.xxx.x
  • 100 xxx.xx.xx.x
  • 300 xx.xx.x.x
  • ... 等 10 筆

再去 grep 最大量的那些 IP, 看看是不是來亂的, 如果是來亂的, 擋掉這個IP, 或視情況擋掉那個網段(Linux):

  • 擋掉 100.100.1.1 的 IP: iptables -I INPUT -s 100.100.1.1 -j DROP
  • 擋掉 100.100.0.0 整個網段: iptables -A INPUT -s 100.100.0.0/24 -j DROP
  • 解除: iptables -D INPUT -s 100.100.1.1 -j DROP

JavaScript 的 Database: Taffy DB

JavaScript 的 Database 是 一個很酷的 Idea, 但是, 好像又有點怪怪的.....

DB 的空間只有 10K, 這跟直接存在 Cookie 或存成 JS Array 比起來, 似乎沒有比較方便.

不過, 提供的 DB 處理倒是可以省掉不少工(ex: Find / Update / Insert / Remove / OrderBy ... 等). 先記起來, 之後再研究如何應用它~ 🙂

閱讀全文〈JavaScript 的 Database: Taffy DB〉

MySQL 設定 Replication (Master - Slave)

MySQL 設定寫入 Master 後, 自動 Replication 到 Slave 去, 運作基本原理是:

  1. INSERT/UPDATE/DELETE 語法, 自動寫入 Master 的 binlog file.
  2. 由 GRANT REPLICATION 授權的帳號, 自動將 SQL 語法 repl 到 Slave 的 DB 執行.
  3. 因而完成 Replication 的動作.

閱讀全文〈MySQL 設定 Replication (Master - Slave)〉

IE8 的 相容Quirks模式 Meta Tag(X-UA-Compatible)

Microsoft 推出了 Internet Explorer 8 Beta 1, 裡面有一個非常大的改變: 微軟:IE8 預設模式將支援網路標準, 節錄裡面幾點:

  1. 微軟宣布,IE8一推出時,就會以標準相容模式(standards compatibility mode)作為預設的成像引擎(rendering engine)。微軟先前已表示,新版瀏覽器可以通過Acid2 rendering測試。
  2. 就IE8而言,微軟計劃提供三種rendering模式:新的標準相容(standards-compliant)模式、IE7成像引擎、以及一個展示舊型網站的選項。因為新版瀏覽器改變了預設環境,若網站希望IE8沿用IE7的引擎,就必須在各自的網站編碼中加入一個標籤(tag)。

所以 IE8 的預設模式會如下(取自: IEBlog: The Default Layout Mode):

閱讀全文〈IE8 的 相容Quirks模式 Meta Tag(X-UA-Compatible)〉

關於 Twitter 的使用心得

最早看到 Twitter 的時後, 就只是單純註冊, 也不曉得拿來寫什麼, 大概都寫些邪惡的東西測試看看而已~

有人說 Twitter 是 Micro Blog/Mini Blog 或者說是MSN 的 Status, 我倒是不習慣這種玩法. 直到上個月慢慢有朋友加入後, 才發現原來 Twitter 還蠻好玩的~

閱讀全文〈關於 Twitter 的使用心得〉

Debian 安裝 Perl CPAN 入門

Perl 一定要會用 CPAN(Comprehensive Perl Archive Network), CPAN 有太多套件可以使用. 但是在 Debian 上, 要安裝 CPAN 等套件, 想到就頭痛, 套件都不知道裝到哪邊去, 然後就隨便亂用, 也不知道安裝的是什麼東西, 移機的時後就會知道痛了, 還是應該好好研究研究...

閱讀全文〈Debian 安裝 Perl CPAN 入門〉

APT upgrade 和 dist-upgrade 的差別

Debian/Ubuntu Linux 都使用 apt, 升級時都是:

  • apt-get update
  • apt-get upgrade
  • apt-get dist-upgrade

但是常常有人會問, upgrade 和 dist-upgrade 有何不同, 仔細查查, 似乎大家對 upgrade 和 dist-upgrade 的解釋都有點不同, 在此也紀錄自己的看法.

閱讀全文〈APT upgrade 和 dist-upgrade 的差別〉

PHP5 寫法效能比較(有數據資料)

關於 PHP 程式該怎麼寫, 才會比較快的文章, 這類已經很多了, 不過這篇是有做實際測試的數值.(差異太小的就不要去管他了)

不過, 通常慢都會慢在 DB 的部份, PHP 的部份, 要慢到讓系統卡住, 是比較難一點(寫成無窮迴圈, 或者排序丟到 PHP 排的, 要自己認命).. 😛

閱讀全文〈PHP5 寫法效能比較(有數據資料)〉