發表文章

目前顯示的是 11月, 2015的文章

mysqlhotcopy 自動備份 script

#!/bin/bash DB_NAME=資料名字 DB_LOGIN=登入的帳號 DB_PASSWORD=登入的密碼 BACK_FOLDER=備份的目錄 DATE=`date +%Y%m%d` BACK_HOME="$BACK_FOLDER"/"$DATE" mkdir -p $BACK_HOME mysqlhotcopy -u $DB_LOGIN -p $DB_PASSWORD $DB_NAME $BACK_HOME #保留十四天內的資料 find $BACK_HOME -mtime +14 -exec rm -rf {} \; 要注意的地方: db的目錄要有權限可進入,不然會出現 DBD::mysql::db do failed: Can't find file:xxxxxx 語法 mysqlhotcopy  -u <帳號> -p <密碼> -addtodest  TEST_DB  <備份的目錄> 如沒有指定備份的目錄的話,就放預設的地方(linux: /var/lib/mysql/) -adtodest 是增量備份

PHP教學-同時抓取 cpu 記憶體 (linux)

圖片
這是另一種範例程式 <?php function get_used_status() { $fp = popen('top -b -n 1 | grep -E "^(Cpu|Mem)"',"r");//获取某一时刻系统cpu和内存使用情况 $rs = ""; while(!feof($fp)) { $rs .= fread($fp,1024); } pclose($fp); $sys_info = explode("\n",$rs); //print_r($sys_info); $cpu_info = explode("  ",$sys_info[0]); $mem_info = explode(" ",$sys_info[1]); //print_r($cpu_info); //print_r($mem_info); $cpu_usage = substr($cpu_info[1],0,4); //var_dump($cpu_usage); $mem_total = trim($mem_info[3],'k'); $mem_used = trim($mem_info[6],'k'); $mem_usage = round(100*intval($mem_used)/intval($mem_total),1).'%'; //var_dump($mem_usage); $fp = popen("df -lh","r"); $rs = fread($fp,1024); pclose($fp); $hd_info = explode("\n",$rs); //print_r($hd_info); $hd = explode(" ",$hd_info[1]); //print_r($hd); $hd_usage = $hd[21]; return array('cpu'=>$cpu_usage,'mem'=>$mem_usage,'hd'=...

PHP教學-監測主機

<?php // 監測的主機, 可以是 ip 或 hostname $hosts = array(                "192.168.1.10",                " 192.168.1.2 12"                ); $admin_email = "XXXX @gmail.com";   // 管理員的電郵 $load_avg    = 2;   // 當 load average 達到這個數值, 通知管理員 // function for check server status function server_check($addr) {     if (($content  = file_get_contents("http://" . $addr . "/server-status.php")) !== False) {         if ($content > $GLOBALS["load_avg"]) {             mail($GLOBALS["admin_email"], "Server $addr Busy", "Server $addr Busy\nloading average: $content");         }     } else {       ...

PHP教學-抓取記憶體用量( linux )

圖片
<?php function echo_memory_usage() {     $mem_usage = memory_get_usage(true);     if ($mem_usage < 1024)         echo $mem_usage." bytes";     elseif ($mem_usage < 1048576)         echo round($mem_usage/1024,2)." kilobytes";     else         echo round($mem_usage/1048576,2)." megabytes";     echo "<br/>"; } echo echo_memory_usage(); function get_server_memory_usage(){     $free = shell_exec('free');     $free = (string)trim($free);     $free_arr = explode("\n", $free);     $mem = explode(" ", $free_arr[1]);     $mem = array_filter($mem);     $mem = array_merge($mem);     $memory_usage = $mem[2]/$mem[1]*100;     return $memory_usage; } echo get_server_memory_usage();

PHP教學-抓取系統硬體資訊( linux )

圖片
雖然現在 php 有很多工具可以抓到相關資訊,但對於想要將該功能設計到自己的 web 系統中,或許相關範例也值得參考,不過該程式僅針對 linux 系統來抓取資料。 <?php // Server Hardware Information v1.0.0 ?> <html> <head> <title><?php echo $SERVER_NAME; ?> - Server Information</title> <STYLE type=text/css> BODY { FONT-SIZE: 8pt; COLOR: black; FONT-FAMILY: Verdana,arial, helvetica, serif; margin : 0 0 0 0;} .style1 {     color: #999999;     font-weight: bold; } </STYLE> </head> <body> <blockquote>   <pre><p></p> <span class="style1">Uptime:</span> <?php system("uptime"); ?> <span class="style1">System Information:</span> <?php system("uname -a"); ?> <span class="style1">Memory Usage (MB):</span> <?php system("free -m"); ?> <span class="style1">Disk Usage:</span> <?php system("df -h"); ?> <span class="style1">CPU ...

PHP教學-自動偵測 cpu 使用率( linux )

圖片
本次介紹 linux 版偵測系統 cpu 使用率,該範例程式僅能在 linux 系統上執行,windows 環境無法執行。 <?php /* Gets individual core information */ function GetCoreInformation() {     $data = file('/proc/stat');     // proc資料的路徑     $cores = array();     foreach( $data as $line ) {         if( preg_match('/^cpu[0-9]/', $line) ) //利用正規表達示過濾 cpu 數量         {             $info = explode(' ', $line );             $cores[] = array(                 'user' => $info[1],                 'nice' => $info[2],                 'sys' => $info[3],                 'idle' => $info[...

CentOS 用mysqlhotcopy 備份MySQL

一提起mysql的備份,大家最多想到的就是mysqldump,不過導成文字檔案雖然便於存放,但是速度很慢的。最快的備份方法自然是直接把資料 目錄copy一份了。但是一般來說,都要關閉MySQL的服務才能做,不然在你copy的時候剛好還有人讀寫表那麻煩就大了。下面簡單介紹一下我試用 mysql自帶的熱備份工具mysqlhotcopy的一些心得。~ 我是用root用戶完成備份操作的。(是不是應該使用mysql用戶來做操作更安全一些?待嘗試) 首先要在root的home目錄下建立一個.my.cnf檔,以便讓mysqlhotcopy從中讀取用戶名/密碼。 [mysqlhotcopy] user=root password=YourPasswordGoesHere 然後安全起見,chmod一下。 chmod 600 ~/.my.cnf mysqlhotcopy可以把執行的操作記錄入資料庫中,所以我建立了下面這個DB/Table: CREATE DATABASE `dbinfo`; USE dbinfo; CREATE TABLE `checkpoint` ( `time_stamp` timestamp(14) NOT NULL, `src` varchar(32) NOT NULL default '', `dest` varchar(60) NOT NULL default '', `msg` varchar(255) NOT NULL default '', PRIMARY KEY (`time_stamp`) ) TYPE=MyISAM; 然後建立一個備份目錄。如果不指定備份目錄,mysqlhotcopy會在原來的位置備份(Redhat下面是/var/lib/mysql/),只不過目錄名後面加上了 _old 這個尾碼。 好了一切準備妥當,測試一下: mysqlhotcopy --checkpoint dbinfo.checkpoint --addtodest db_douzi_org /var/db_backup 簡單說明一下: --checkpoint dbinfo.checkpoint 這個是指定存放操作記錄的資料庫/表 --addtodest 增量備份,新的備份自動...

在 CentOS 6.5 上安裝 xdebug

1.安裝需要的套件     yum -y install php-devel php-pear gcc 2.安裝 Xdebug 最簡單的方式     pecl install Xdebug 可惜的是 xdebug 2.3 之後不支援 php 5.3 了 ... XD 所以請繼續往下看 3.下載 xdebug 2.2.7 source code 並解壓縮 cd /tmp wget http://xdebug.org/files/xdebug-2.2.7.tgz tar zxvf xdebug-2.2.7.tgz 4.開始編譯 cd xdebug-2.2.7 phpize ./configure make 5.將編譯好的 xdebug.so 搬到正確的位置     cp modules/xdebug.so /usr/lib64/php/modules 6.設定 php 載入 Xdebug trace 是追蹤用的,有需要才開,只是偵測效能可以不用開啟 profiler_enable_trigger 要開啟的話,要把  profiler_enable 設為 0 vi /etc/php.d/xdebug.ini     zend_extension=/usr/lib64/php/modules/xdebug.so [XDEBUG] #xdebug.auto_trace=1 #xdebug.collect_params=1 #xdebug.collect_return=1 #xdebug.profiler_enable_trigger=1 xdebug.profiler_enable=1 xdebug.trace_output_dir="/var/www/xdebug" xdebug.profiler_output_dir="/var/www/xdebug" 7.建立 xdebug 用的目錄     mkdir /var/www/xdebug chown apache:apache /var/www/xdebug chmod 755 /var/www/xdebug 8.重新啟動 apache   ...

安裝 webgrind - 網頁版 xdebug 紀錄檔分析器

此處介紹在 CentOS 6.5 下的安裝方式,windows 的安裝方式大同小異,請自行嘗試 步驟 編輯    1.下載 webgrind     wget https://webgrind.googlecode.com/files/webgrind-release-1.0.zip 2.解壓縮後放到 web 目錄下 unzip webgrind-release-1.0.zip mv webgrind /var/www/tms_apply/ chown -R apache.apache /var/www/tms_apply/webgrind 3.設定 webgrind 的記錄檔所在目錄 vi /var/www/tms_apply/webgrind/config.php     static $storageDir = '/var/www/xdebug'; static $profilerDir = '/var/www/xdebug';

XDEBUG - 於 windows 安裝

log 分析器可以用 wincachegrind http://sourceforge.net/projects/wincachegrind/ 步驟 編輯    1.生出 phpinfo 頁面 2.用瀏覽器開啟 http://video.nchu.edu.tw/ 複製 phpinfo 頁面的資訊到輸入框中 3.按下 [Analyse my phoinfo() output] 按鈕 4.會跑一陣子,跑完會看到如下的安裝步驟 1. Download php_xdebug-2.2.5-5.3-vc9.dll 2. Move the downloaded file to C:\FMS\php\ext 3. Edit C:\FMS\php\php.ini and add the line     zend_extension = C:\FMS\php\ext\php_xdebug-2.2.5-5.3-vc9.dll 4. Restart the webserver 照著做完就安裝好了 設定部分請在修改 php.ini 時加上如下的內容     [XDEBUG] #xdebug.auto_trace=1 #xdebug.collect_params=1 #xdebug.collect_return=1 #xdebug.profiler_enable_trigger=1 xdebug.profiler_enable=1 xdebug.trace_output_dir="C:/FMS/xdebug" xdebug.profiler_output_dir="C:/FMS/xdebug" 記得建立 trace_output_dir 與 profiler_output_dir 的目錄 trace 是追蹤用的,有需要才開,只是偵測效能可以不用開啟 profiler_enable_trigger 要開啟的話,要把  profiler_enable 設為 0

CentOS 安裝 nmon

1.到 http://nmon.sourceforge.net/pmwiki.php?n=Site.Download 查詢下載地址 2.載 http://nchc.dl.sourceforge.net/project/nmon/nmon_x86_64_centos6     wget http://nchc.dl.sourceforge.net/project/nmon/nmon_x86_64_centos6 修改一下讓它方便使用     cp nmon_x86_64_centos6 /usr/local/bin/ cd /usr/local/bin mv nmon_x86_64_centos6 nmon chmod a+x nmon

CentOS 安裝 phpMyadmin

1.最快的方法是用 yum,如果 yum 沒有,或是想自己安裝,請跳到步驟 2 yum -y install phpMyAdmin 預設只允許 Localhost 登入,如果只是開發用,請記得修改 /etc/httpd/conf.d/phpMyAdmin.conf 讓它不要擋東擋西的 改完後重開 apache     service httpd restart 2.到官方網站查詢下載檔案位置,請注意使用的 php 版本與 mysql 版本,抓 all-languages 的封裝包 以 phpMyAdmin 3.5.8.2 為例,下載位置如下 https://files.phpmyadmin.net/phpMyAdmin/3.5.8.2/phpMyAdmin-3.5.8.2-all-languages.zip 3.取得檔案並解壓縮 wget https://files.phpmyadmin.net/phpMyAdmin/3.5.8.2/phpMyAdmin-3.5.8.2-all-languages.zip unzip phpMyAdmin-3.5.8.2-all-languages.zip 4.搬移檔案到 web 目錄下,順便改路徑為 phpMyAdmin     mv phpMyAdmin-3.5.8.2-all-languages /var/www/cloudTMS/mgr.fms53.com/phpMyAdmin 5.看需求修改設定     vi /etc/httpd/conf.d/phpMyAdmin.conf 重開 apache 1    service httpd restart 6.在 phpMyAdmin 目錄下新增 .htaccess 來限制 ip 存取與改變 403 頁面     ErrorDocument 403 /wwww/index.php Order deny,allow Deny from All Allow from xxx.xxx.xxx.xxx(允許想連線的 ip ) 7.設定 phpMyAdmin 的 cookie 存活時間 編輯 config.default.php  ...

Linux 下幾種網芳/Samba mount 方式

怕忘記所以還是做個筆記!! Linux 下幾種網芳/Samba 目錄的 mount 方式,比較新的 Smaba 只能用 cifs 的 mount 方式。 [smbmount] smbmount -o username="Username",password="Password" //IP/share /mnt/smb smbumount /mnt/smb [mount] mount -t smbfs -o username="Username",password="Password" //IP/share /mnt/smb umount /mnt/smb [cifs] mount -t cifs -o username="Username",password="Password" //IP/share /mnt/smb umount /mnt/smb mount.cifs -o username="Username",password="Password" //IP/share /mnt/smb umount.cifs /mnt/smb

windows 清除垃圾檔案批次檔

當我們使用 windows 系統久了常常會產生許多垃圾檔案,除了可以使用一些工具軟體 ,清除一些系統不需要的垃圾檔案,另外也能 cmd 寫成執行檔,有需要的人可以自行修改取用,另存為 xxx.cmd 即可。 1.刪除什麼檔會記錄檔在 C:\DelCH.log 中。 2.記錄檔中,每行最前無 "刪除的檔案" 字樣的表示未被刪除,可能檔案為使用中。 3.執行時加個參數 norp 則不會跳出記錄檔視窗,適用於排程時用。 @ECHO  OFF ECHO --------------- % date % % time %  START  --------------- > C : DelCH . log for %% a in  ( "%windir%Temp"  "%userprofile%Local SettingsTemp"  "%userprofile%Local SettingsTemporary Internet FilesContent.IE5"  "%userprofile%Local SettingsHistoryHistory.IE5"  "%userprofile%Recent" ) do  del  %% a  / f  / s  / q  >> C : DelCH . log rd  / s  / q  % windir % Temp  &&  md  % windir % Temp  >> C : DelCH . log if  "%1" == "norp"  goto  end NOTEPAD . EXE C : DelCH . log : end 批次檔稍微講解一下: 指令 > 檔名:代表螢幕輸出導向到指定文件(已存在檔案將覆蓋) 利用For迴圈把"需求"列出,並用del指令刪除 指令 >> 檔名:代表螢幕輸出...

windows 設定進階性防火牆紀錄 log

圖片
windows 預設的防火牆並不會啟用連線紀錄 log,必須要將紀錄啟用後才能在檢視中查看 log  因為Windows 7和Windows 8操作介面一樣就不累述,以下以Windows 8做說明 1. 進到控制台 2.系統及安全性  3. Windows 防火牆  4. 進階設定  5.先選這個   6.功能的動作>內容Or由畫面中的紅框處點選  7.切換到「私人設定檔」選自訂  8. 把記錄丟棄的封包原本「否」改成「是」後按確定 9. 下一次別人若再連線失敗,可到「監視」點選紀錄檔來看Log即可

PHP教學-抓取主機 CPU 核心數

圖片
利用 php 可以偵測 windows 系統中 cpu 的核心數,範例程式如下: <?php function num_cpus() {   $numCpus = 1;   if (is_file('/proc/cpuinfo'))   {     $cpuinfo = file_get_contents('/proc/cpuinfo');     preg_match_all('/^processor/m', $cpuinfo, $matches);     $numCpus = count($matches[0]);   }   else if ('WIN' == strtoupper(substr(PHP_OS, 0, 3)))   {     $process = @popen('wmic cpu get NumberOfCores', 'rb');     if (false !== $process)     {       fgets($process);       $numCpus = intval(fgets($process));       pclose($process);     }   }   else   {     $process = @popen('sysctl -a', 'rb');     if (false !== $process)     {       $output = stream_get_contents($process);       preg_match('/hw.n...

PHP教學-抓取 windows 工作管理員執行中的程序

圖片
原本想研究在 windows 環境下利用 php 來抓取 cpu 使用率,意外發現到可以利用函式來讀取工作管理員資訊,範例程式如下: <?php header('Content-Type: text/plain'); echo system('tasklist /V'); ?>

PHP教學-利用函式取得目前系統中記憶體使用資訊

圖片
我們可以 使用 memory_get_usage() 函式來抓取系統目前所使用的記憶體有多少,提供下列範例程式: <?php echo memory_use_now() . "<br>"; $a = 1; echo memory_use_now() . "<br>"; $b = array(); for($i=0; $i<400000; $i++) $b[] = 1; echo memory_use_now() . "<br>"; $c = array(); for($i=0; $i<400000; $i++) $c[] = "a"; echo memory_use_now() . "<br>"; function memory_use_now() {     $level = array('Bytes', 'KB', 'MB', 'GB');     $n = memory_get_usage();     for ($i=0, $max=count($level); $i<$max; $i++)     {         if ($n < 1024)         {             $n = round($n, 2);             return "{$n} {$level[$i]}";         }         $n /= 1024;     } } ?>

PHP教學-偵測系統硬碟空間資訊

圖片
我們可以利用 PHP 所提供的函式來抓取主機系統的 cpu 、記憶體、硬碟空間等相關資訊,做成 web 系統時更可以讓系統管理人員隨時掌握住主機的各項硬體資訊。 範例程式如下: <?php //echo "目前可用 C 硬碟空間".disk_free_space("C:")."</br>"; // On Windows: //echo "C 硬碟總容量".disk_total_space("C:")."</br>"; //$ds = disk_total_space("D:"); //This is  a more readable way of viewing the returned float // $Bytes contains the total number of bytes on "/" $Bytes = disk_total_space("C:"); function dataSize($Bytes) { $Type=array("", "KB", "MB", "GB", "TB"); $counter=0; while($Bytes>=1024) { $Bytes/=1024; $counter++; } return("".$Bytes." ".$Type[$counter]."bytes"); } echo "C 硬碟總容量".dataSize($Bytes). '<br />';     $bytes = disk_free_space(".");     $si_prefix = array( 'B', 'KB', 'MB', 'GB', 'TB', 'EB', 'ZB', 'YB...

windows server 硬碟警示自動發信

圖片
雖然Windows本身有警示資訊,但並未有自動發信的功能,此次因客戶的Server發現有硬碟空間塞爆的狀況,為了避免再次等到系統運作發生問題在查修,所以自己寫了一隻小batch搭配兩隻程式來做警示發信功能!!! 以下為使用軟體的相關資訊 : 1.      PsInfo : http://technet.microsoft.com/en-us/sysinternals/bb897550.aspx  中文說明 : http://technet.microsoft.com/zh-tw/sysinternals/bb897550.aspx (查看系統資訊) 2.      Blat : http://www.blat.net/ (透過Dos發信軟體)  Blat 語法 : http://www.blat.net/syntax/syntax.html 以下為相關步驟 : 1. 使用記事本開啟,編輯一隻batch檔,並將以下貼入後存成Disk_Monitor.bat。 rem 為了讓系統紀錄不要不斷重複寫在這個檔案裡,所以觸發前先行刪除之前檔案 del C:\disk_monitor\disklog.txt rem 將PsInfo 記錄出來的檔案存成文字檔。(-d 參數為只顯示硬碟資訊) C:\disk_monitor\psinfo.exe -d >> C:\disk_monitor\disklog.txt rem 此段語法為要發信的參數 C:\disk_monitor\blat -charset UTF-8 -server mail.206.twgogo.org -f service@206.twgogo.org -to noc@206.twgogo.org -subject Web_Server_HD_Monitor -bodyF "C:\disk_monitor\disklog.txt" 語法範例說明 : -charset UTF-8 : 郵件編碼指定為UTF-8 (中文內容才不會變成亂碼) -server :指定 SMTP 伺服器位置,如port位置不是預設請要加上port的位置 -...

Apache JMeter 進階版壓力測試

圖片
Apache JMeter 2.11 是 Apache 開發的壓力測試套件,程式是以JAVA寫成,可以在 Unix-Like 上執行,也可以在 MS-Windows 上執行 (本篇是在 MS-Windows 上測試的) JAVA請自行到SUN網站下載安裝 Oracle JAVA http://www.oracle.com/technetwork/java/javase/downloads/index.html Apache JMeter下載網址 https://jmeter.apache.org/ https://jmeter.apache.org/download_jmeter.cgi http://apache.cdpa.nsysu.edu.tw//jmeter/binaries/apache-jmeter-2.11.zip 解壓縮檔案後,執行 bin 目錄下的 jmeter.bat (不保證舊版或新版JMeter畫面和此版相同)

telnet 指令用法介紹

圖片
這時再次輸入telnet就會進到以下的畫面,提示符號改為Microsoft Telnet>,值得注意的是逸出字元"Ctrl+]",使用時機下面會說明 歡迎使用 Microsoft Telnet 用戶端 逸出字元為 'CTRL+]' Microsoft Telnet> help 命令可能會被縮寫。支援的命令為: c    - close                    關閉目前的連線 d    - display                  顯示操作參數 o    - open hostname [port]     連線到主機名稱 (預設連接埠 23)。 q    - quit                     結束 telnet set  - set                      設定選項 (輸入 'set ?' 可以參閱清單) sen  - send                  ...

selenium server port 4444 被占用解決方式

曾經遇過似乎是selenium 沒有正常shutdown, 導致 port 4444已經被佔住 大概會看到類似下列的錯誤訊息 Selenium is already running on port 4444.Or some other service is running 處理的方法是用browser輸入下面URL http://localhost:4444/selenium-server/driver/?cmd=shutDownSeleniumServer 成功的話會在browser上看到" OKOK "的response 接下來就可以繼續下指令執行 selenium server

使用 Jenkins 執行 selenium 網頁自動化測試

圖片
安裝Selenium Server Selenium Server是用來提供非IDE介面執行自動化測試的入口, 官網提供的版本是由Java所撰寫而成,所以執行環境需要預先安裝好Java, 除此之外Selenium Server還提供了不同瀏覽器版本的Driver以供進行測試 (ex. IE, Chrome) 我們可以從官網下載Selenium Server,並存放至C:\Program Files (x86)\SeleniumServer ※測試Selenium Server運作 我們可以透過Command Line來進行Selenium Server的操作, 語法格式如下     java -jar SeleniumServer位置 -htmlSuite 瀏覽器種類 測試Suite位置 輸出結果位置 開始執行我們的自動化測試,輸入以下指令 檢視原始檔複製到剪貼簿列印關於     java -jar "C:\Program Files (x86)\SeleniumServer\selenium-server-standalone-2.25.0.jar" -htmlSuite "*firefox" http://ci-sample.kirkstudio.tw "C:\Users\kirkchen\Documents\githubproject\ci-sample\ci-sample.website.automationtest\TestSuite.html" "C:\Users\kirkchen\Documents\githubproject\ci-sample\SeleniumReport.htm"  執行之後可以看到跳出瀏覽器視窗開始測試 ※安裝Seleniumhq PlugIn 1. 進入Jenkins首頁後,點選左邊的管理Jenkins,再選擇管理外掛程式 2. 點選可用的,勾選Seleniumhq PlugIn,選擇安裝並重啟 3. 回到首頁,點選管理Jenkins,選擇設定系統 4. 輸入Selenium Server的位置並儲存 ※設定專案執行自動化測試 1. 回到Jen...