搜尋此網誌

2014年9月1日 星期一

Linux Server的/var/spool/clientmqueue(或/var/spool/postfix/maildrop)堆積大量小檔案的解決辦法

linux server中,有時候在/var/spool/postfix/maildrop目錄下會發現堆積了無數個小文件,使當前硬碟使用到9X%。


1.原因:由於linux在執行cron時,會將cron執行腳本中的output和warning信息,都會以郵件的形式發送Cron所有者, 而由於客戶環境中的sendmail和postfix沒有正常運行,導致郵件發送不成功,全部小文件堆積在了maildrop目錄下面,而且沒有自動清理轉換的機制,此目錄堆積了大量的文件。

(注意:如果sendmail或者postfix正常運行,則會在/var/mail目錄下產生大量的郵件,也會堆積)


2. 治標:
  find  /var/spool/clientmqueue/  | xargs rm -rf
  find  /var/spool/postfix/maildrop/  | xargs rm -rf

3. 治本:在crontab的第一行加入
MAILTO=""
便可,這樣執行當前用戶的Crontab時,不會發送郵件。

或者是在每一行cron job 的最後加上一段 > /dev/null 2>&1

* * * * * /root/Try_Port.sh > /dev/null 2>&1

查看Linux資料夾空間占用量

使用du查看某個資料夾所佔的空間容量
du -csh /root/*
例如這是察看/root底下所有目錄跟資料夾的所占容量。



若是想要看詳細自動排列大小 
du --exclude="proc" | sort -g  

排在越後面的佔用磁碟空間越多

2014年6月1日 星期日

整理一下這九個月裡所建的監控系統程式

以下系統皆採用Linux+Apache+PHP+MySQL+JavaScript+Shell Script程式組成
1. DB-Monitor(Database Server上的資源監控系統)
  1-1 [程式碼: 前人的舊PHP程式碼,改寫、改MVC架構、物件化,新增改進許多功能。]
  1-2 DB獨有事件部分: 含資料庫連線數、同步落後、無法連線、MySQL的Error訊息....等
      1-2-1 在監控機這端每分鐘主動連線至各Server的資料庫,取回Data並判斷事件,然後監控頁面發出各種的警告音效。


 1-3 通用的資源監控: CPU使用率、Memory使用率、Disk I/O以及Disk使用率...等
    1-3-1 在各Server用Shell Script語法取得Data,判斷後並依自訂的警示值來送回警告事件,然後監控頁面發出各種的警告音效。





2. Web-Monitor(Web Server資源監控系統)
 2-1 [程式碼:從無到有,全部自建]
 2-2 Web獨有事件 : 偵測Server的Web連線數
 2-3 通用的資源監控: CPU使用率、Memory使用率...等
        在各Server用Shell Script語法取得Data,判斷後並依自訂的警示值來送回警告事件。


3. A10-Monitor(A10裝置上的資源監控系統)
 3-1 [程式碼:從無到有,全部自建]
 3-2 通用的資源監控: CPU使用率、Memory使用率...等(介面類似上方)
 3-3 注: 初版採用Shell Script 語法去連線抓回資料作分析,完成後發現偶爾會卡使用者無法斷線,已廢棄停用,之後有時間會改以SNMP方式去連線。


4. 帳號權限控管系統: 以上3個系統都採用自己寫的帳號註冊、登入、管理功能。
  4-1 [程式碼:從無到有,全部自建]
  4-2 使用者須註冊登入才能使用以上系統。

   4-3 使用者註冊後被分到哪個單位群組下,那個使用者就僅有那個群組下的權限,只能閱覽有權限觀看的頁面,若用網址的方式嘗試去閱覽別的群組的頁面,則會被強制登出。

   4-4 當使用者在各功能頁面上新增刪除修改Server資料時,所有動作會另外寫Log記錄在帳號控管系統的資料庫中,並將被刪除的資料備份到另外別的資料表中,未來若有人出包則可以閱覽紀錄,確認是何時何人做的動作。在管理者頁面中可以勾選選項,將被刪除的重要資料做還原(從備份的資料表中提取Data)。

  4-5 使用者登入時,程式會記錄IP、時間、帳號到帳號控管系統的資料庫中。

5. PhpMyAdmin跳轉系統:  監控機上紀錄著幾百台DB Server的IP以及DB的Port號,管理者在操作查詢DB時有點不方便。於是在自己這台監控機中安裝PhpMyAdmin,寫一小段PHP程式碼並建立機制,當我在監控機頁面時點下某台Server資訊下的超連結網址,程式就會自動置換此台PhpMyAdmin的連線IP以及Port號,並跳轉到PhpMyAdmin的登入畫面,輸入帳密後就可以存取那台Server的資料庫。

6. 自動取得保固日期(限IBM)系統: 公司Server幾百台時時更新替換,沒時間用文字或手動的方式去查保固日期,於是寫了這個小系統,依附在上面的DB-Monitor、Web-Monitor之下。
    6-1 當上面的DB-Monitor或Web-Monitor在各台Server上運行監控程式時,順便下指令查詢Server的型號、序號,送回到監控機的資料庫中記錄,程式定時自動去IBM官網用型號序號查詢保固日期,紀錄回資料庫中。

2013年9月5日 星期四

PHP開啟錯誤提示、安裝Smarty(環境:CentOS 6.4 32位元)

##CentOS 6.4,PHP開啟錯誤提示:

1.開啟php.ini
# vi /etc/php.ini

2.搜尋下行,把Off值改成On
display_errors = Off

3.搜索下行
error_reporting = E_ALL & ~E_DEPRECATED
修改为
error_reporting = E_ALL | E_STRICT

4.修改httpd.conf,
# vi /etc/httpd/conf/httpd.conf

添加以下兩行:
php_flag display_errors on
php_value error_reporting 2039

5. 重新啟動Apache
# service httpd restart

///////////////////////////////////////////////
安裝Smarty在CentOS6.4上:

### 以下共3行終端機指令
su
tar zxvf Smarty-3.1.14.tar.gz
cp -r Smarty-3.1.14/libs/* /usr/lib/php/smarty
###

新建Smarty所需的相關目錄:
### 以下共8行終端機指令
cd /var/www/html
mkdir smarty
mkdir smarty/templates
mkdir smarty/templates_c
mkdir smarty/cache
mkdir smarty/configs
chmod 777 smarty/templates_c
chmod 777 smarty/cache
###

新建一个PHP檔:
# vi /var/www/html/index.php
---新增以下內容
<?php
require('/usr/lib/php/smarty/Smarty.class.php');
$smarty = new Smarty();

$smarty->template_dir = '/var/www/html/smarty/templates';
$smarty->compile_dir = '/var/www/html/smarty/templates_c';
$smarty->cache_dir = '/var/www/html/smarty/cache';
$smarty->config_dir = '/var/www/html/smarty/configs';

$smarty->assign('name', 'Ned');
$smarty->display('index.tpl');
?>
---

新建模板檔:
vi /var/www/html/smarty/templates/index.tpl
---新增以下內容
<html>
  <head>
    <title>Smarty</title>
  </head>
  <body>
      Hello, {$name}!
  </body>
</html>
---

打開瀏覽器看看 ->  http://localhost/

2013年9月2日 星期一

CentOS 6.4 上快速安裝LAMP環境+phpmyadmin

切換成root管理員
# su

設置LAMP環境(安裝php MySQL httpd):
# yum  -y  install  httpd  php  php-mysql  mysql  mysql-server

(非必須) 安裝記事本(圖形介面可以比較直覺編輯文檔,非圖形介面請勿安裝)
# yum -y install gedit

開機自動啟動MySQL
# chkconfig mysqld on

現在啟動MySQL
# /etc/init.d/mysqld start

開機自動啟動Web Server
# chkconfig httpd on

現在啟動Web Server
# /etc/init.d/httpd start

修改MySQL的root密碼
# mysqladmin -u root password '123456'

以下是安裝phpmyadmin:
# rpm -ivh http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/6/i386/epel-release-6-8.noarch.rpm

# yum install phpmyadmin

重啟Web Server:
# service httpd restart


Web Server ->  http://localhost/

MySQL on phpMyAdmin -> http://localhost/phpmyadmin/

2013年6月25日 星期二

替代役時期: Unity3D Web小遊戲-PacMan (2013/6/24完成第一版)

   前陣子在2013/6/10開始自學Unity3D,邊學邊實作一個PacMan小遊戲,遊戲概念大多來自"大學畢業專題程式",有部分素材、script來自網路上的資源,遊戲採用二維陣列的概念來產生隨機地圖,新增可採第一人稱視角玩遊戲,大幅修正網路上提供的Ghost移動AI,目前於2013/6/24完成第一版。
  這支小遊戲的產生原因是我在五月底得知台中某家博弈遊戲公司在招收軟體工程師,需要的條件有C/C++以及Unity3D,於是我就花了一點時間學習Unity3D並實作一個作品,方便之後投履歷面試;還有一個原因就是我覺得Unity3D看起來很有趣、蠻好玩的,學習的過程中也玩得很愉快

小遊戲網址:http://ppt.cc/C8bj  


隨機地圖的概念圖(二維陣列20X20,1表示牆,0表示路)
隨機創四種方向的障礙牆(紅色),再隨機挑選幾個關鍵點堵住(綠色)



第一人稱視角



第三人稱視角

第三人稱視角(角色死亡)



替代役時期: PHP書籍管理程式 (2013/5/6 完成第一版)

列出所有書籍的頁面

搜尋書籍的頁面

新增書籍的頁面


作品簡易說明:
這是一個用PHP語言搭配MySQL資料庫建置起來的書籍管理程式(網站),這支程式的產生起因是我在五月初要面試某家台中公司的PHP研發工程師時,第一次面試完後要考個程式題,題目是書籍管理程式,限制時間一周內完成,還需建置在網路上可供主管評審操作,之前沒有做過一個完整的PHP網站,趁此機會也學習怎麼採用MVC架構去撰寫程式。

線上執行的程式建置在Amazon EC2(建置HiCloud)雲運算虛擬主機中,使用最小的微運算型Linux虛擬主機(Micro),程式透過使用Zend-Framework套件來建構MVC架構,本程式主要有首頁(index)、新增書籍頁(add)、搜尋書籍頁(Search)、編輯書籍頁(edit)、刪除書籍頁(delete),各頁面使用了少許jQuery的效果。

作業系統: ubuntu12.04(32bit)

使用的工具、語言或架構Amazon EC2apache2PHP語言MySQL 5.5phpmyadminZend-FrameworkjQuery、MVC架構。