網頁

2015年12月24日 星期四

EeePC 1000 再利用 (Wake On LAN for ASUS EeePC 1000 on Windows)

初步的想法,想利用這台來做定期監控各主機的存活狀態。

目前有兩個問題:

第一個問題就是這台主機的風扇聲音有點大、第二個問題就是到時會將 EeePC 放在較隱密的地方,也就是說要按下實體開關時會很不方便。

  • EeePC 風扇聲音的解決方式:
可下載論壇內所提供的程式。下載後 (eeectl_0.2.4.zip),解壓縮後,設定系統啟動時自動載入該程式,風扇設置選為 automatic 即可。
  • 解決不方便按下實體開關的方式:
就是透過Wake On LAN的方式來喚醒主機。方式簡述如下:
  1. 調整 EeePC 內的 BIOS ~ 將右方項目啟用 OnBoard LAN Boot ROM Enabled、Onboard WLAN Enabled
  2. 作業系統內的網卡裝置設定。將網路位址與關閉喚醒項目調整(如圖)。
  3. 撰 寫 WOL 喚醒的批次檔:example: WolCmd.exe PC_MAC_NO. PC_IP 255.255.255.0 7 ( WolCmd.exe 程式下載:http://www.depicus.com/downloads/WolCmd.zip )
  4. 後來發現,我所使用的 Vigor2920內就有內建WOL功能了。也可以直接透過該功能來喚醒  EeePC。
 相關資料:

2015年12月10日 星期四

PHP7 安裝與升級 @ Windows

PHP7 己於 104.12.03 釋出。稍微先試著升級原本的測試開發主機。主機環境與升級步驟簡述如下。至於正式上線服務的主機內的相關系統是否可以順利的在 PHP7內使用,這部份有時間在陸續測試。
  • 目前的測試開發主機環境:
  1. Windows 7 64bit
  2. Apache 2.4.17 (C:\Apache2\*)
  3. PHP 5.6.16 (C:\PHP\*)
  • 安裝與升級步驟:
  1. 安裝需要的 Visual Studio 2015 (VC14) 
  2. 備份原本 C:\PHP\* 的目錄內的檔案。備份好後將它原本執行目錄內的所有檔案刪除。
  3. 新版本的 PHP7 內的相關檔案複製到 C:\PHP\*
  4. 調整 php.ini 內的參數
  5. 修改 Apache/conf/httpd.conf ,將原本 LoadModule php5_module "C:/PHP/php5apache2_4.dll" 改成 LoadModule php7_module "C:/PHP/php7apache2_4.dll"
  6. 重新啟動 Apache 後即可 
相關資料:

2015年12月3日 星期四

炮竹響 醒獅起 竹狐躍 慶雙甲

交通大學校慶精神口號徵選活動。這是第一次參加標語說明的活動。也許是老王買瓜,個人是真的覺得寫的還不錯。如果在票選系統內加入標語意涵的說明欄位,可以讓票選者能了解標語後面的背景(意涵)後,能獲得的票選數量應該可能會更多吧!總覺得有點可惜,就放在這做個紀念吧!


投稿原件:
  • 標語:炮竹響 醒獅起 竹狐躍 慶雙甲
  • 標語說明:醒獅為交通大學滬校前身(南洋公學)的象徵,竹狐則代表著新竹交通大學。新竹交通大學傳承兩甲子,不僅傳承「實」的精神理念,更將此理念落實與深耕於交大學子內心。學子們在各地開花散葉,於各領域內均有不凡表現。母校,新竹交通大學的表現亦同時飛(活)躍於全球,更有著亮眼的成績單。漫天炮竹響起,傳承兩甲子實在是值得慶祝。

2015年12月2日 星期三

PHP iniscan tools

PHP iniscan tools :檢查 php.ini 設定的安不安全的檢查工具。

安裝方式:
使用 Composer安裝,指令如右  composer require psecio/iniscan

使用方式:
example : iniscan scan --path=C:\PHP\php.ini --fail-only ,直接參考線上說明即可。

2015年11月26日 星期四

磁碟陣列卡(MegaRAID SAS RAID Card)

最近購入 MegaRAID SAS 9341-8i RAID Card。將此卡插入裝到主機後也上官網將所需要的驅動程式下載且安裝在裝置管理員內有看到該裝置,但卻出現了驚嘆號的的符號,也確定不能使用該裝置。到裝置管理員內看到該裝置顯示出 code 10 的代碼。於是連絡UPMOST 代理商後確認該型號卻不相容於HP Z620 主機。建議更換其它 RAID Card。

於是又換了 LSI MegaRAID SSA 9271-4i 。這張新卡很順利的在 Win 7 64bit 安裝且成功。但所插入的 SASHD,卻是抓不到。原來是要先到 MegaRAID BIOS 先設定過才可以使用。解決方式可以參考以下相關資料。

簡述如右:在BIOS 頁面輸入  Ctrl+H 進入LSI Web Bios 內,再使用它的介面內的 configuration wizard 來進行相關設定。

相關資料:

2015年10月28日 星期三

PHP Composer 相關資料

安裝環境:

主機環境 Windows 10 Apache2.4.33 PHP 7.2.X

安裝過程:

可以利用 Composer-Setup.exe 自動安裝的方式進行,但我這偏好手動安裝的方式。

手動安裝的方式:下載最新版本的 composer.phar ,再將它放到專案的目錄內即可。

在安裝 PHP Composert 時出現 Internal Error [ERR_STATIS],exit code255(如圖)的錯誤訊息

原來是 php.ini 內的設定需要做一些調整,不是很確定是要將 disable_function 內的那一項刪除,我猜應該是它是需要使用到 shell_exec function ,不過因為是在測試用機器,所以將 disable_function 的部份全部開放。若往後專案有使用到,再來確定就可以了。反正目前是在學習中。


php.ini 需配合調整
extension=php_openssl.dll //啟用
allow_url_fopen = On //改成 On
open_base="C:\ProgramData\ComposerSetup\bin"; //也許也要調整
;disable_function = shell_exec //將它暫時關閉
新北市樹林國小 Laravel 工作坊內的課程各單元投影片內的 COMPOSER套件管理 PPT內P16頁,它有提到它其實是可以有隨身版的,這是因為 composer 是 PHP Archive files。只要將 composer.phar 放到專案的根目錄底下就可以直接使用。輸入的指令要修改成 php composer.phar {command}。



















Composer command

  • php composer.phar self-update //定期更新
  • composer validate //檢查 composer.json 內容
  • composer show --installed //列出目前專案所有的相依套件
  • composer install  //讀取目前目錄的 composer.json 檔案、解析依賴套件、並安裝他們到 vendor 中
  • composer update //為了取得依賴套件的最新版本,並且更新 composer.lock 檔案
  • 該使用 install or update :
  • composer 目錄架構
    • vendor/*  (下載相關套件)
    • vendor/autoload.php (自動以載入套件中所有對外公開的類別)
    • composer.lock ()

範例,以 phpmailer 為例

參考 phpmailer website 內的作法
  1. 在composer.json 檔案內直接指定使用版本 "phpmailer/phpmailer": "~5.2" 或使用 php composer.phar require phpmailer/phpmailer,它會自動的產生 composer.json 檔案。
  2. 在 php 程式內直接 require 'vendor/autoload.php' 後(參考 github 上範例),就可以做發信的動作;實際測試時,php.ini 內有將 openssl 啟動會造成 phpmailer  SMTP Error: Could not connect to SMTP host.

相關資料:
  1. 首頁 - Composer | 正體中文文件
  2. 新北市樹林國小 Laravel 工作坊
  3. 逐步提昇PHP技術能力 - 開發工具 : 用Composer管理相依性
  4. 5 features to know about Composer PHP   
  5. Download Composer
  6. Composer設計原理與基本用法 
  7. A Dependency Manager for PHP

2015年10月21日 星期三

Apache 2.4.17 HTTP/2

Apache 2.4.17 此版本新增了 HTTP/2 支援 (HTTP/2 support)。於是就試著升級 Apache 版本並試看看此功能。

使用的方式很簡單,只要在Apache 的 httpd.conf 加入以下腳本即可。

LoadModule http2_module modules/mod_http2.so
#ProtocolsHonorOrder On
Protocols h2 h2c http/1.1

但 Apache Daemon 重開後,使用 FirefoxHTTP/2 and SPDY indicator 工具來觀察。但由工具來看一直沒有看到有支援,有支援的話會在網址列看到閃電符號。調整後,一直沒看到閃電符號。查了一下,由資料看來,主機需要同時部署 SSL(TLS) 功能後才能支援。

相關資料:
  1. mod_http2 :: HowTo & Info & Tips
  2. HTTP/2 资料汇总
  3. HTTP/2 時代將來臨 : Let’s Encrypt 即將開放正式 SSL 憑證 
  4. How to h2 in apache 
  5. [译]使用HTTP/2提升性能的7个建议

2015年10月14日 星期三

Ubuntu Linux 14.04.3 整理

sudo apt-get update
sudo apt-get upgrade
清除下載過的套件
ls /var/cache/apt/archives
du -sh /var/cache/apt/archives (查佔的容量 )
sudo apt-get clean (刪除這些已更新過的套件)

  • 修改網路IP
sudo nano /etc/netword/interfaces
#iface etho inet dhcp
iface eth0 inet static
address 140.114.73.73
netmask 255.255.255.0
gateway 140.114.73.254
dns-nameservers 8.8.8.8 140.114.63.1

使新設定的值生效
sudo /etc/init.d/networking restart

  • Firewall (UFW)
sudo ufw enable
sudo ufw allow 80 or ufw allow 80/tcp
ufw delete allow 80 //刪除規則
ufw status verbose //查狀態
sudo ufw allow 22 140.114.73.0/24
ufw allow from 140.114.73.73 to any port 22 //add rule
ufw delete allow from IP to any port 22 // remove rule
sudo ufw allow from 140.114.73.0/24 to any port 22 //限制範圍 IP

sudo apt-get install apache2
apache 主程式 @ /etc/apache2
apache 設定檔 @ /etc/apache2/apache2.conf
重新啟動 Apache
sudo /etc/init.d/apache2 restart (stop or start) OR
sudo service apache2 restart

調整目錄 permissions ; 這部份有點搞不清楚,先註記起來
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R g+rw /var/www/html

sudo chown -R www-data:www-data /var/www
sudo chmod -R g+rwX /var/www


P.S.
www-data:www-data mean ⇒ user:group
g+rw (文字方式來指定檔案權限的做法):此表示將同群組使用者加入read and write權限
groups useraccount (查詢使用者的群組設定狀態)

  • 網頁上傳的方式
  1. FTP or SFTP:透過 FTP
  2. SSH :透過 ssh daemon
  3. ln  (例子:sudo ln -s /home/user/html /var/www): 利用軟連結的做法; ln 後的權限狀態
note. ln -s 的權限會是 rwxrwxrwx ,代表真正的權限要以所指的檔案為準,符號連結本身不做任何限制;刪除soft link ,直接使用 rm 指令。e.g. rm /var/www/html

sudo apt-get install php5 libapache2-mod-php5
sudo apt-get install php5-gd php5-curl //加入要使用的模組
sudo apt-get install php5-mysql //加入要使用的模組 (include mysqli)
apt-cache search php5 //找其它要使用的模組

調整 php.ini (sudo nano /etc/php5/apache2/php.ini )
要使用的 extension 加入到檔案內

sudo apt-get install mysql-server

  • 加強安全性
firewall 調整
fail2ban install

  • 排程工作(crontab)
  1. 新增範例:crontab -e (選擇要使用的文字編輯器), 加入以下文字
10 8 * * * /usr/sbin/ntpdate time.nist.gov(表示每天08:10自動校時)
查詢範例:crontab -l
  1. 利用apt指令讓Ubuntu定期自動更新:寫一支腳本,再定期執行這支腳本即可。

  1. 新增其它登入帳號:useradd
  2. 將帳號加入到 www-data群組(同以下做法)
  3. 新增其它的 sudo 使用者:
    1. sudo nano /etc/group
    2. 找出 sudo:x:27:Useraccount
    3. 新增 Useraccount2的使用者,將文字改成sudo:x:27:Useraccount,Useraccount2
  4. 找尋某程式放的位址:e.g. whereis ntpdate
  • 相關設定檔調整

  • 相關資料

2015年9月23日 星期三

JSON 轉換小技巧

最近利用 FullCalendar 來架設開館時間的行事曆。不過在於資料提供的方面,想到要請同仁直接提供符合 JSON 格式的資料,對同仁來說可能會有些困擾。但如果要將 FullCalendar 改寫,將資料的來源取自資料庫,又覺得沒有必要這樣大費周章。另外撰寫一個轉換格式的程式也覺得沒必要。後來想到,其實也可以利用 phpmyadmin 。將同仁彙整的 CSV 檔案直接將匯入到資料庫(MySQL),再利用 phpmyadmin 資料匯出成符合 JSON 的格式(如圖)。按一按選一選,就可以很快得到符合需求的 JSON 格式資料。

  • 輸出成果:
[{"id":"1","title":"09:00-18:00","start":"2015-09-20","end":"2015"}, {"id":"2","title":"08:00-22:00","start":"2015-09-21","end":"2015"}, {"id":"3","title":"09:00-22:00","start":"2015-09-26","end":"2015"}]



2015年9月22日 星期二

JS Calendar

同仁提出一個想法。想要提供類似日本筑波大學圖書館的開閉館行事曆服務。

這套 FullCalendar 看來很不錯。資料的提供,再修改一下從資料庫取出,再轉成它可接受的格式後應該就可以套用。讚!

註記:

  • 事件用不同顏色標記的做法
    • 範例:
events: [
                {
                    title: '09:00-18:00',
                    start: '2015-09-20',
                    backgroundColor: '#E66F89'
                },
                {
                    title: '08:00-22:00',
                    start: '2015-09-21',
                    end: '2015-09-26',
                    backgroundColor: '#20D788'
                },
  • 定義星期六、日與星期一至星期五的底色
    • 範例 (在 CSS內調整):
<style>
    .fc-sat{
           background-color: #BBE7F2;
    }
    .fc-sun{
           background-color: #FC8D90;
    }
    .fc-mon{
           background-color: #CBF8A8;
    }
    .fc-tue{
           background-color: #CBF8A8;
    }
    .fc-wed{
           background-color: #CBF8A8;
    }
    .fc-thu{
           background-color: #CBF8A8;
    }
    .fc-fri{
           background-color: #CBF8A8;
    }
</style>
  • 介面中文化
    • 範例
    • 加入中文語言 js (<script src='../lang/zh-tw.js'></script>)
    • 指定預設語系: lang: 'zh-tw',

相關資料:

雛形:


2015年9月7日 星期一

Install ionCube Loader on Windows Server 2008

最近可能要購入的一家系統。他們的 PHP 程式碼採用 ionCube 加密。這是我第一次遇到有做加密過的 PHP 系統。稍微看了一下官方的文件。提供解密的 ionCube Loader 的安裝方式如下:
  1. 官方下載符合主機作業系統使用的版本
  2. 解壓縮後,將符合主機使用的 PHP 版本 dll 檔案,複製到 PHP/ext/* 目錄內
  3. php.ini 內加入 zend_extension = ioncube_loader_win_5.6.dll
  4. restart Apache. Done.
官方也很貼心的提供  loader-wizard 的方式。只要將下載 Loader Wizard 檔案。解壓縮後傳上網頁主機。再利用瀏覽器去執行 http://serverip/loader-wizard/ioncube/loader-wizard.php。在依照頁面上的提示進行即可完成安裝。至於是否安裝成功且能正確的解密。頁面內也有提供測試腳本。如果正確安裝與執行就會出現如下圖示。

2015年7月10日 星期五

MySQL 效能調整

效能調整要考慮的因素很多。最簡單也能最能自主掌握的應是由 my.ini or my.cnf 設定檔。以下是最為重要的幾個參數的相關整理。

參數名稱       建議

key_buffer_size               //Do not set it larger than 30% of your available memory
innodb_buffer_pool_size //you may set this  parameter up to 80% of the machine physical memory size ;Typical values are 5-6GB (8GB RAM), 20-25GB (32GB RAM), 100-120GB (128GB RAM).
innodb_log_files_size     // This has been lifted in MySQL 5.6.
query_cache_size           // The best option is to disable it from day 1 by setting query_cache_size = 0 (now the default on MySQL 5.6) ; Or Try 32 - 128M (caution: 512!)
thread_cache_size          //8 - 128M 

innodb_buffer_pool_size

相關參考:

2015年5月22日 星期五

PHP Fatal error: Allowed memory size of 536870912 bytes exhausted @ PHP5.6

升級PHP5.6後,有一支程式在執行上會出現 PHP Fatal error:  Allowed memory size of 536870912 bytes exhausted (tried to allocate 65488 bytes) in xxx.php 的訊息。原本以為是 php.ini 內的 memory_limit 的緣故,但不管再如何的調整都是會出現這樣的訊息。

只好重新檢視 PHP 程式的原始碼。檢查了好久,看來看去都覺得沒有問題。後來查了好久才發現與預設編碼有關係。在 php5.6 的 php.ini 預設編碼是指定為 UTF-8。而程式內所使用的Multibyte String Functions(例如: mb_strlen  、mb_strpos 等 function) 。若沒特別指定時,會以  php.ini 內預設值為準。所以也就造成程式在判斷上與邏輯錯誤造成無數迴圈,因而造成此現象。

解決方式其實只要加入一行,直接指定原來升級前所使用的編碼方式就可以了。

宣告如右:mb_internal_encoding("ISO-8859-1"); 

為了這一行花了 N 久的時間。天啊。

往後若不確定升級前所使用的編碼方式,也可以直接 echo mb_internal_encoding(),就可了解所使用的編碼。

相關資料:

2015年5月20日 星期三

PHP short open tags (PHP5.6)

由於安全性支援週期的緣故,預計將手上的 PHP慢慢的升到 5.6版本。

沒想到第一台就出現的狀況。本來懷疑是系統的 mysql function 需要改寫的,但經測試它還是可以支援。...... 後來發現是 short_open_tag 所造成的。

這個讓我花了半天的時間除錯。真是天阿。明明有將 php.ini 內的 short_open_tag 啟用 (short_open_tag = ON)。但是PHP程式在使用短標籤時就是會有問題。查了手冊,它預設就是啟用的。就算沒特別的啟用也是 OK的。查了老半天。原來在我宣告的下方,它的預設宣告值就有一行是直接指定為 off 的狀態。

相關資料:

google calendar 整合多個行事曆

很久以前所做的。有點忘了要怎麼做。之前找到的資料它的連結已失效。補充記錄在這備忘。

  1. 在 google calendar 內先建立每組要使用的行事曆。
  2. 在前端頁面做下接選單功能,來讓使用者選擇。透過選擇的項目來判定 iframe 所選擇的行事曆。
  3. 列出所有行事曆的部份:則採用下面 merge google calendars together 的做法。
  4. 雛型範例













相關資料:

2015年5月19日 星期二

robocopy 差異備份

++++ 指令範例 +++++
rem 差異備份(來源與目的一致)
robocopy "來源" "目的" /mir

rem 差異備份(來源與目的一致,但排除特定目錄)
robocopy "來源" "目的" /mir /xd "目錄1位址" /xd "目錄2位址"

rem  差異備份(來源與目的一致 ; /purge :刪除來源中,不再存在的資料夾或檔案)
robocopy  "來源"  "目的"  /e  /xo  /purge

rem來源的檔案一律複製到目的
robocopy  "來源"  "目的"  /e  /xo /nfl /ndl /njh /MT:12
robocopy  "D:\A" "E:\A" /e /dcopy:t /xo /xa:sh /xj /unicode /eta /MT:12

rem 兩顆硬碟複製
robocopy  "X:\" "Y:\" /e /xo /nfl /ndl /njh /xa:sh /MT:12
robocopy Y:\ X:\ /e /dcopy:t /xo /xa:sh /xj /unicode /eta /xd "$RECYCLE.BIN" "System Volume Information"

++++ 參數說明 +++++
robotcopy /?

/mir Mirrors a directory tree (equivalent to /e plus /purge).
/nfl Specifies that file names are not to be logged.
/ndl Specifies that directory names are not to be logged.
/njh Specifies that there is no job header.
/xo Excludes older files. (排除較舊的檔案)
/e  複製子目錄包含空目錄
/dcopy:t 複製時間戳記
/xa:sh 跳過屬性為 s (系統) 與 h (隱藏) 的檔案;若是整顆硬碟備份時,要有此參數,要不會出現存取被拒訊息。
/xj 排除 NTFS junction 檔案
/xd 排除特定目錄內的資料
/eta 顯示預計完成時間。
/log:d:\log\copylog.log (將 log 記錄到檔案)
/MT 以 n 個執行緒執行多執行緒複製,n 必須至少為 1,但不可以大於 128

相關參考:

2015年5月14日 星期四

Synology DS412+ NAS

最新可能要購入 NAS。稍微先做些功課。設定方式與相關介紹可以參考下面的這兩篇。時購入後,應該也有手冊可以參考。

後來購入的型號為 DS1515+這型。

相關資料:

2015年4月23日 星期四

BIND DNS Server @ Windows Server

要在 Windows 平台(e.g win7 ....)上建立自己的 Cash-only DNS Server的方式。
做法很簡單,先下載 Windows 版的 BIND 後,直接安裝,再修改 named.conf 檔案。加入以下文字後就可以了。詳細的做法可參考以下幾篇資料。

最主要是這個 named.conf 設定檔案內的設定

options {
    directory "C:\ISC BIND 9\etc";
    forwarders {8.8.8.8; 8.8.4.4;};
    version "";
    allow-transfer { none; };
};

key "rndc-key" {
    algorithm hmac-md5;
    secret "改成亂數產生後的字串 ";
};

logging{
  channel my_log{
    file "named.log" versions 3 size 2m;
    severity info;
    print-time yes;
    print-severity yes;
    print-category yes;
  };
  category default{
    my_log;
  };
};

相關資料:

2015年4月16日 星期四

檔案權限不足的問題@Windows Server

在 Windows Server 上有時會出現檔案權限不足的問題。而且最怪的是明明就是身為 administrator group。為什麼還是會這樣。原因,可參考這篇 Blog。

相關資料:

2015年4月1日 星期三

FastStone Image Viewer 批次縮圖處理

臨時要做批次縮圖動作。可是縮圖必須縮圖到己固定大小的範圍內且要等比例的縮。因為數量不多,所以我就先做一份已指定好大小的空白的範本(檔案)。再一個個的將縮圖手動的合成到這份空白檔案後再依需要的名稱另外存檔。

後來想想這樣子做,如果以後還要做類似的工作的話,實在很不方便。說不多,算一算也有 57個檔案。也花了不少時間。後來找找有沒有比較方便的處理方式。後來找到一個做法,透過 FastStone Image Viewer 的批次功能處理就可以直接做的。真好。

紀錄一下做法,往後要做的話,直接按圖內的步驟說明處理即可。


2015年3月25日 星期三

Apache log rotate

有一台主機的 Apache的流量較大。修改一下設定檔,讓它可以自動依指定容量自動切割。

系統環境:
Window Server
Apache 2.4

做法如下:
修改 httpd.conf 文件。

將 CustomLog  "logs/access.log" common 改成以下 Script

#每天產出一個記錄檔
TransferLog "|D:/Apache2/bin/rotatelogs.exe D:/Apache2/logs/access_%Y%m%d.log 86400"

#指定容量產出一個記錄檔
TransferLog "|D:/Apache2/bin/rotatelogs.exe D:/Apache2/logs/access_%Y%m%d.log 500M"

也可以縮短成這樣
TransferLog "|bin/rotatelogs.exe logs/access_%Y%m%d.log 300M"

相關資料:

2015年3月18日 星期三

BitLocker存取被拒

這是一個很奇怪的狀況。有一台電腦(Win7 enterprise edition),在使用 BitLocker To Go 掛載已加密的隨身碟或是要對USB隨身碟加密時都會出現存取被拒的狀況(如圖)。很奇怪的是系統所使用的帳號已歸類到 administrators 群組。我知道在 win7的設計架構上,這類的帳號的權限是並不是屬於真正的最高管理者。但奇怪的是我在其它電腦上的使用卻是沒有這種狀況。而兩台間所設定的權限是一模一樣。

在有問題的電腦上,嘗試著關閉 UAC後就可以正常的使用;當然使用 administrator登入後使用也是可以正常使用。兩台唯一的差別,可能是當初安裝的win7版本。一個是SP1前的影像,出狀況的這台是後來的 SP1版本。但真的與這有關嗎?很奇怪。

搞了半天。原來透過遠端桌面使用時才會出現這種狀況。直接在本機使用是 OK 的。




2015年3月16日 星期一

中文輸入法快速鍵失效

Win7 例行性安全性更新後。不什麼原因中文輸入法快速鍵失效。找了一下資料。可以由修改登錄檔的方式來修正。

較不喜歡修改登錄檔的方式。 我的做法如下:

將 C:\Windows\System32\ctfmon.exe 的捷徑加入到 "啟動" (C:\Users\YourAccount\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup)就可以了。這樣系統在啟動時也是會自動將 cftmon 啟動的。

相關資料:

2015年3月10日 星期二

Notepad++ 實用技巧

這是一個蠻實用的技巧, 在實務上資料通常會彙整成一份 excel 清單。而有的時候卻需要將這份資料的同一欄內的資料轉成陣列內的資料。這個時候就可以利用下方的方式。完整操作可參考

原文可參考相關資料。懶的看過程就直接看總結的部份或是直接看附圖就可以了。

Summary
What: Show End Of Line characters (LF, CR, etc.)
How: “View -> Show Symbol -> Show End of Line”

What: Add quotes to words and a comma at the end
How: “Search -> Replace”
Find what: (.*)
Replace with: "\1",
Search Mode -> Regular expression

What: Remove End Of Line characters (CR, LF)
How: “Search -> Replace”
Carriage Return (CR)
Find what: \r
Replace with: (blank)
Search Mode -> Extended

Line Feed (LF)
Find what: \n
Replace with: (blank)
Search Mode -> Extended

 相關資料:
步驟0















步驟1



















步驟2



















步驟3

















成果















[MySQL SQL auto increment id 重置]

  • SQL example : INSERT INTO `table` (`id`, `str`) VALUES (12460, 'abc'), (12461, 'abc'), (12462, 'abc');
  • 直接修改 SQL 值的方式再重新回寫到 DB內。範例:(^\()(\d{5}), 取代為 \(NULL,。這個範例是 id 值的數字範圍是在 10000 ~ 20000之間。若數字在 1 ~ 20000 之間時則要改為 (^\()(\d{5}), |(^\()(\d{4}), |(^\()(\d{3}), |(^\()(\d{2}), |(^\()(\d{1}),


[其它整理 ]

2015年2月12日 星期四

Dashboard 溫度感測 2

Raspberry Pi 或 Arduino 加上溫度感測元件,是可以做出之前想要做的自動感測與自動發佈 Dashboard 溫度感測  效果。

不過也許藉由這樣的拼湊(如,asus vivo mini un 62 + UTP-1 USB溫度-記錄感測器 )也許可以更為簡單的實作。只是說做出來與廠商所估算的報價。那個更符合我們自己的成本效益而已。

相關資料:

2015年2月1日 星期日

Infocus airpro

很有趣的設備。

如果能有無線功能且能支援透過網路查詢的話,也許就可以與之前所做的圖書館溫度Dashboard 結合起來了。



2015年1月30日 星期五

注音輸入反查倉頡拆解

注音輸入反查倉頡拆解的方式。將反查入字根指定就可以了。(Windows 7 適用)


2015年1月21日 星期三

網頁快取

今天試用了 Google PageSpeed Insights 服務。按著裡面的建議稍微調整了網頁。

加快網站的存取速度要考量的因素很多,在主機端這能協助的地方在於加入快取功能並降低連線的存取;最快的連線就是要想法子降低連線的次數。一些固定的圖檔或 Script 最好不要有重複連線的動作。加入快取後應該可以改善很多。

不想要在 HTML 頁面新增相關的 meta 時。也可以考慮在伺服器端動手腳。例如在 Apache 新增 Module mod_expires 也是可以逹到效果。

相關資料

2015年1月16日 星期五

Windows 8 遠端關機

有一台設備是 Windows 8 系統。因為程式調整的緣故,需要遠端關機 。但一直找不到該選項。查了一下。原來透過 ALT + F4 就可以了。

2015年1月15日 星期四

Window Server 2012 R2 SNMP 啟動與設定

原本簡單的事。卻讓我弄了好久。

因為長久的好習慣。在安裝時都只是選擇必要的安裝而已。而在 Server 2012 R2版本安裝 SNMP。安裝好後要做安全性的設定,卻一直找不到它的 security tab 。後來才發現需要在額外安裝 SNMP Tools。相關的原因,可以看以下相關資料。

相關資料:



2015年1月13日 星期二

Cacti Plugins

ApacheStats Plugin

  • 要監控的主機。修改 apache httpd.conf ,將 LoadModule status_module modules/mod_status.so 啟用,並加入以下腳本。
  • ExtendedStatus On
    <Location /server-status>
    SetHandler server-status
    Order Deny,Allow
    Deny from all
    Allow from 192.168.66.2
    Allow from 192.168.66.18
    </Location>
  • ApacheStats Template Install
  • 其它參考:利用Cacti监控网卡流量、Apache以及Mysql性能监控 
  • 心得:這個 plugin 搞了好久。一直沒有圖表的數據出來。後來發現是自己的 php.ini 設定的緣故。之前基於一些安全性的理由。我這個主動關閉一些不需要的設定。cacti ApacheStats Plugin 需要將 allow_url_fopen開放。



 

 

 

 

Monitor Plugins

Cacti 0.8.8b 安裝及設定Monitor & thold Plugin

Cacti manage Plugins

cacti 0.8.8b 安裝Manage 套件 (使用此 plugins 需配合 Settings Plugin);此套件在 PHP 5.5.X 版本會有問題

在安裝時出現以下訊息:
 Fatal error: Call to undefined function define_syslog_variables() in Y:\Apache\htdocs\cacti\plugins\manage\setup.php on line 752


查了一下原因,define_syslog_variables() 在 5.5.x 版不支援;註解掉此行後就可以順利在 cacti plugin management 看到此功能。但看來也沒有順利將需要更新的 SQL匯入到 DB。如果手動匯入需要的SQL檔案後不知是否能正常運作。

Percona Monitoring Plugins 
此 plugin 也可以監控 MySQL,相關做法可參考此篇  BLOG
 

2015年1月7日 星期三

cacti on windows server (相關資料整理)

安裝環境調整與設定:

實做的環境為 Server 2008 R2 64bit & Windows 7 64bit

php.ini調整

啟動以下 dll
extension=php_mysql.dll
extension=php_snmp.dll
extension=php_sockets.dll
cgi.force_redirect = 0

RRDTools安裝

net-snmp安裝

  • net-snmp win binaries download
  • 將它安裝於 C:\net-snmp 目錄內
  • 看看有沒有運作正常:於命令列內輸入 snmpwalk.exe -v 1 -c public localhost ;有看到訊息出現時則表示正常。

Spine 安裝

  • Spine download
  •  下載要的版本後,解壓縮到 C:\cacti\* 目錄內
  • 將 cactid.conf.dist 重新命名為 cactid.conf。修改 cactid.conf,將 MySQL相關資訊更新。

Active Perl安裝

  • 有些查到的資料說,有些 Script 是用 perl 寫的。但做測試時先跳過此部份。

Cacti php code調整

  • 修改設定檔 /cacti/include/config.php ,將 mysql 資訊填入。
  • 將 /cacti/cacti.sql 匯入到 MySQL內
  • 到瀏覽器內輸入 http://your PC IP/cacti/,再按介面提示進行安裝即可。第一次的登入帳密為 admin/admin 
  • 字型設定:於 settings 介面內,設定 RRDTools Default Font 的位址。例如於該欄位內使用 tahoma.ttf 字型。 C:/Windows/Fonts/tahoma.ttf
  • 於作業系統內設定排程,每隔五分鐘自動執行 htdocs/cacti/poller.php。
  • 於 cacti web 介面內新增 Device
    • Host Template 選windows 2000/XP Host (因為是監控 windows  主機)

Cacti Server Backup Issue

  • Cacti PHP Code backup - 若資料過於龐大且可以不保留歷史記錄時,可以將 /rra/* & /log/* 內的資料刪除。
  • MySQL DB backup

Cacti Upgrade

  • 參考此頁內的作法,再透過 web 介面內的提示處理即可;更新時,別忘將 php.ini 內的 disable_function 與 open_basedir 暫時開放。  
    • 0.8.8c 更新至 0.8.8f 更新的經驗:
      • 將 0.8.8c 更新至 0.8.8f 版本後。使用 cacti UI 介面,都沒有接收到後續資料。查了很久後,有可能是 Apache 執行權限不足的緣故。因為當時將整個 cacti 目錄直接刪除,再重新新增 cacti 目錄後忘了調整下面子目錄所需的權限。cacti 程式目錄需要的權限可參考 cacti online document
      • 需要 modify 權限的目錄:cacti\rra\* , cacti\log\* 
      • 針對第七點與第八點的地方( scripts 與 resource 目錄);指令的意義如右: cp –u ( -u, --update copy only when the SOURCE file is newer than the destination file or when the destination files is missing)
    • 0.8.8f 更新至 0.8.8g 更新的經驗:105.03.18
      • 由於這是透過SSH 上傳,不是直接在主機內動作。所以這的更新動作如下
      1.  備份資料庫與目前在運行的cacti 程式碼
      2. 下載新版本並解壓縮,請注意要下載到對的版本。因為這次的更新,很妙的是官方網站內的下載頁面所直接提供的下載連結是舊的版本。導致這次更新時出現 Error Invalid Cacti version 0.8.8f,cannot upgrade to 0.8.8.8的狀況。
      3.  修改解壓縮檔案內的 include/config.php ,將需要的MySQL資料填入
      4.  解壓縮檔案內的刪除 rra/* 目錄
      5.  除了Script、resource的部份。全部直接上傳且覆蓋現在所使用的檔案。
      6.  上傳 Script、resource 目錄的資料,有較新的檔案或無此檔案時才做覆蓋的動作。
      7. 由於採用上傳更新的做法,所以主機上的檔案權限的部份會照舊。
      8.  暫時調整PHP.ini 設定,php.ini 內的 disable_function 與 open_basedir 暫時開放。 restart Apache
      9. 此時再連到 cacti web介面。直接按網頁內的說明進行即可。
      10. 暫時調整PHP.ini 設定調整回來。restart Apache.
      11. 在 cacti 介面內重建 poller cache
        system utilities -->Rebuild poller cache (其實這點我是覺得很奇怪,因為手冊也沒有提到這個。但由於更新到 0.8.8f 與 0.8.8g 時的經驗,若沒有執行此程序時,就不會再出現更新後圖表)移除 install 目錄。手冊雖然沒提及,但我還是刪掉它。
        搞到後來不確定到底是我這的PHP設定的太嚴謹還是需要做這個  Rebuild poller cache 的動作,總之目前將原本所限制的
        disable_function 與 open_basedir 關掉後就可以正常運作。很妙的是也沒有 log 記錄可供參考。由於這台主機是專用,所以有空再來釐清是那的問題。
      12. 完成 !! 

被監控的設備相關設定

  1. SNMP 啟動 : Win7 可參考此頁說明Server 2008 可參考此頁說明
  2. Cacti 介面設定:細部操作可參考此頁說明

Misc

  • 忘了 cacti 登入密碼:可以直接到 MySQL內更新 user_auth ; update user_auth SET password = MD5('new password');
  • 架好後也順利監控各個主機了。但很奇怪,有些圖表。如 Disk Used Space 的圖表在有些時間點會突然消失、有些主機卻是連資料都沒有(圖三)。
    • 查了一下原因,可能是這所提到的問題。調整了 php.ini 的max_execution_time。後續再來觀查看看。

    成果 


     

     

     

     

     

     

     

     

     

     

    奇怪的狀況

     

     

     

     

     

     

     

     

     

    疑難雜症處理


    1. system utilities -->Rebuild poller cache
    2. snmpwalk -v 2c -c public test server ip
    3. check cacti/rra/* files
    4. check apache log files

     

    相關資料: