[Netflow] NFSen install

安裝必要的套件

sudo apt-get install gcc flex librrd-dev make libglib2.0-dev libxml2-dev apache2 libapache2-mod-php7.0 \
                     php7.0 php7.0-fpm php7.0-cli php7.0-common php7.0-curl php7.0-gd php7.0-json php7.0-mbstring php7.0-mysql php7.0-tidy php7.0-xml php7.0-zip \
                     nfdump rrdtool librrds-perl librrdp-perl librrd-dev libmailtools-perl libio-socket-ssl-perl \
                     -y

 

安裝 perl 的 Socket6 套件

sudo perl -MCPAN -e 'install Socket6'

 

下載並解壓縮 nfsen

wget http://sourceforge.net/projects/nfsen/files/stable/nfsen-1.3.6p1/nfsen-1.3.6p1.tar.gz
tar -zxvf nfsen-1.3.6p1.tar.gz

 

複製設定檔,並建立 nfsen 目錄

sudo cp nfsen-1.3.6p1/etc/nfsen-dist.conf /etc/nfsen.conf
sudo mkdir -p /data/nfsen

 

修改設定 ( /etc/nfsen.conf )

$PREFIX  = '/usr/bin';

$USER = "www-data";

$WWWUSER = "www-data";

$WWWGROUP = "www-data";

%sources = (
    'data-source' => { 'port' => '9995', 'col' => '#0000ff', 'type' => 'netflow' },
);

 

設定修改完畢後,執行 install.pl

sudo ./install.pl /etc/nfsen.conf

 

啟動服務

sudo /data/nfsen/bin/nfsen start

 

設定開機自動啟動

sudo ln -s /data/nfsen/bin/nfsen /etc/init.d/nfsen
sudo update-rc.d nfsen defaults 20

 

Reference: Installation and configuration of NFDUMP and NfSen on Ubuntu | TerralTech

[Nginx] Nginx install

透過官方 Mirror  來安裝最新版

使用 wget 取得與新增 APT-Key

wget -qO - https://nginx.org/keys/nginx_signing.key | sudo apt-key add

 

利用 add-apt-repository 將 Nginx Repo 加到 /etc/apt/sources.list

sudo add-apt-repository 'http://nginx.org/packages/ubuntu/ nginx'

 

更新套件列表,取回 Nginx 的最新版本後,進行安裝

sudo apt-get update -y
sudo apt-get install nginx -y

 

[PHP] Failed loading php_xdebug.dll

試用 PHPStorm 要設定 PHP Interpreter 時總是偵測不到 Xdebug

下 CLI 時發現載入發生錯誤

Calos@localhost:~$ php -i | grep xdebug
Failed loading C:/Bitnami/wampstack-7.0.7-0/php/ext/php_xdebug.dll

 

WAMP 懶人包貌似沒裝好

懶得重新安裝,從 Stack Overflow 爬到了 Xdebug 官方有線上分析工具

可以幫忙進行 Xdebug 的除錯,並提供修正方法

連結: https://xdebug.org/wizard.php

 

使用方法很簡單

只需要在 CLI 下執行 php -i 將輸出的 PHP Information 貼即可

 

以此圖為例

網站直接提供了對應到 PHP 7.0.7 的 Xdebug extension DLL 檔

也會告知你應該放在哪個目錄下, php.ini 要做哪些修正

照著做後重新啟動 service,就解決了

 

Reference:

  1. Stack Overflow: XDebug not loading on Windows 7 64 bit PHP 5.4
  2. Xdebug: Support; Tailored Installation Instructions

[MariaDB/MySQL] mysqldump include/exclude (ignore) specific table

備份資料庫其中一種方式是使用 mysqldump 指令,例如我要備份一個名為db1的資料庫:

mysqldump -u admin -p db1
# 參數說明
# -u: 使用者名稱
# -p: 密碼,指令enter後會要求輸入密碼,也可以直接將密碼連接在後面,如密碼為123456的話,參數改成 '-p123456' 後指令會直接執行,不會再次要求輸入密碼

 

若只要備份特定的資料表時,有三種方式

  1. 排除/忽略特定資料表 (Exclude / Ignore)

    使用參數 --ignore-table 去排除,需完整名稱 (即 database.table);多個 table 無法使用逗點 (comma) 串接,需個別指定。適用於排除少數資料表。

    mysqldump -u root -p123456 myDB --ignore-table=myDB.logs --ignore-table=myDB.users > dump.sql

     

  2. 指定資料表名稱 (Include)

    在資料庫名稱後面指定資料表名稱,可指定多個資料表;無法使用 * 去指定特殊的 prefix / suffix;適用於匯出少數資料表。

    mysqldump -u root -p123456 myDB table_1 table_2 table_3 > dump.sql

     

  3. 包含特定資料表前綴/後綴或特定 pattern 的資料表 (Include prefix / suffix / pattern)

    利用 sub command 在內層執行 SQL 先取得指定資料表名稱後,再執行外層的 mysqldump ,適用於資料表數量眾多,需匯出指定資料表也較多的資料庫。

    mysqldump -u root -p123456 myDB  $(mysql -u root -p123456 myDB -Bse "SHOW TABLES LIKE 'my_table_%'") > dump.sql

    一般情況下用 LIKE 語法就夠了,若情況特殊,用 REGEXP 語法去撈也是可行的,需注意 WHERE 的欄位是 `Tables_in_資料庫名稱`

    mysqldump -u root -p123456 myDB  $(mysql -u root -p123456 myDB -Bse "SHOW TABLES WHERE `Tables_in_myDB` REGEXP 'table_[0-9]+_[A-Za-z]+'") > dump.sql

 

Reference: http://stackoverflow.com/a/26514699/7521686