1 頁 (共 2 頁)

[問題] 主機運作時間外掛

發表於 : 2005-10-02 15:43
天霜
問題外掛:主機運作時間外掛 (只可在 Linux 上使用)
參考連結:http://phpbb-tw.net/phpbb/viewtopic.php?t=38714
使用版本:phpBB 2.0.17 Linux
網站位置:http://starryhometown.net/
狀況描述:

代碼: 選擇全部

# 
#-----[ 尋找 ]------------------------------------------ 
#
	'ADMIN_LINK' => $admin_link)
);

# 
#-----[ 取代為 ]------------------------------------------ 
#
	'ADMIN_LINK' => $admin_link,

	// Server Uptime MOD (For Linux Only)
	'SERVER_UPTIME' => sprintf($lang['Server_uptime'], $uptime),
	'SERVER_LOAD' => sprintf($lang['Server_load'], $load)
);
$load)後面還少一個 ) 喔...

不過我裝完後還是沒跑出數字 Orz

補充:
目前已先拆掉

發表於 : 2005-10-02 21:30
Mac
外掛已更新,關於沒有數字,是不是因為主機沒有 "uptime" 這個程式?
沒有的話蠻奇怪的,因為這個算是預設會安裝的程式才對

~Mac

發表於 : 2005-10-02 21:43
在思緒重疊之前
要怎麼看伺服器有沒有裝 uptime 程式呢!?
因為我安裝也沒數字=_=||

發表於 : 2005-10-02 21:47
Mac
如果你的主機在購買時有給予 SSH 登入的功能,你可以用 SSH 登入主機,打入 uptime 這個指令。如果可以但是數字仍然無法顯示,請把 uptime 回報的文字貼給我看看。

不然,你也可以詢問你的主機商是否主機有安裝 uptime。

~Mac

發表於 : 2005-10-02 22:18
在思緒重疊之前
還是有點不懂耶@@" SSH 登入!?
要從哪邊看=_=? CP嗎@@?

發表於 : 2005-10-02 22:52
Mac
下載 putty
http://www.chiark.greenend.org.uk/~sgta ... nload.html

打開後填入主機資訊看你能不能登入\r

可以的話在登入後鍵入 "uptime"

離開的話鍵入 "exit"

~Mac

發表於 : 2005-11-13 00:35
依夢兒
這支外掛(已升級至 1.0.3 版)在我的論壇上運作原本一切正常,但是從剛剛開始,數字就全部變成空白了。
不過我的主機上的確有安裝 uptime 耶,這是怎麼一回事呢?

Linux (Cent OS) kernel: 2.6.9-22.EL
Apache: 1.3.34

發表於 : 2005-11-13 08:00
Mac
因為我還沒有遇過所有有可能的顯示方式,所以可能是 parser 在某些狀態下還是無法正確取得字串。如果還有這個問題,而且如果你也知道如何利用 SSH 登入主機的話,你可以把 uptime 結果貼出來給我做為參考。

~Mac

發表於 : 2005-11-13 18:14
依夢兒
Mac 寫:你可以把 uptime 結果貼出來給我做為參考。
18:13:38 up 19:56, 2 users, load average: 0.72, 0.64, 0.63

發表於 : 2005-11-13 20:48
Mac
依夢兒 寫:
Mac 寫:你可以把 uptime 結果貼出來給我做為參考。
18:13:38 up 19:56, 2 users, load average: 0.72, 0.64, 0.63
我用了你的字串測試了一下

代碼: 選擇全部

$uptime = "18:13:38 up 19:56,  2 users,  load average: 0.72, 0.64, 0.63";
有顯示出來喔,可能在你剛發現時已經跟現在看到的顯示方法不一樣了
Server Uptime: 0 days 19 hours 56 minutes | Average Load: 0.72, 0.64, 0.63
這次 1.0.3 版已經盡可能的蒐集到可能的時間顯示方法,如果還有不詳盡的地方,還請多多告知呢。

~Mac

發表於 : 2005-11-18 16:36
maxdc
掛上之後~~
因此行使用的方式為單一陣列變數~

代碼: 選擇全部

'SERVER_UPTIME' => sprintf($lang['Server_uptime'], $times[1], $times[2], $times[3]),
故;如當你一啟始server時,時間裡單單為"小時"或"分"之格式時是無法完整顯示的

我的方法是將 includes/page_tail.php 的

代碼: 選擇全部

// Server Uptime MOD (For Linux Only)
$uptime = @exec('uptime');
preg_match("/\s(\d+)\s.+,.+(\d+)\:(\d+),/", $uptime, $times);
preg_match("/averages?: ([0-9\.]+),[\s]+([0-9\.]+),[\s]+([0-9\.]+)/", $uptime, $avgs);
$load = $avgs[1].", ".$avgs[2].", ".$avgs[3]."";
改為\r

代碼: 選擇全部

// Server Uptime MOD (For Linux Only)
$uptime = @exec('uptime');
if( preg_match("/day/", $uptime, $str) == 1){
	preg_match("/\sup\s(\d+)\sday\s,/", $uptime, $time_d);
	preg_match("/\s*(\d+)\:/", $uptime, $time_h);
	preg_match("/:(\d+),/", $uptime, $time_m);
}
elseif( preg_match("/min/", $uptime, $str) == 1){
	preg_match("/\s(\d+)\s/", $uptime, $time_m);
	$time_d[1] = 0;
	$time_h[1] = 0;
}
else{
	preg_match("/up\s*(\d+)\:/", $uptime, $time_h);
	preg_match("/:(\d+),/", $uptime, $time_m);
	$time_d[1] = 0;
}
preg_match("/averages?: ([0-9\.]+),[\s]+([0-9\.]+),[\s]+([0-9\.]+)/", $uptime, $avgs);
$load = $avgs[1].", ".$avgs[2].", ".$avgs[3]."";
// Server Uptime MOD (For Linux Only)
再將

代碼: 選擇全部

'SERVER_UPTIME' => sprintf($lang['Server_uptime'], $times[1], $times[2], $times[3]),
改為

代碼: 選擇全部

'SERVER_UPTIME' => sprintf($lang['Server_uptime'], $time_d[1], $time_h[1], $time_m[1]),
顯示如:
主機運作時間: 0 日 0 小時 43 分鐘 | 平均負載值: 0.24, 0.08, 0.02

;-)

發表於 : 2005-11-18 20:16
Mac
Hi maxdc

你指出的外掛應該是舊版的,1.0.3 已經修正了很多 parsing 的問題,不過我還沒看過一開機時 uptime 顯示的字串,所以對於一個小時以內的字串 parsing 或許還會有問題,如果大家可以提供字串範例,那我應該可以再繼續的改進這個外掛。

~Mac

發表於 : 2005-11-18 21:00
maxdc
呃呃!!!太久沒來~~
不知道已經出到1.0.3~~
到現在我還用著舊版~~
讓大家見笑了!! :lol:
不過我還沒看過一開機時 uptime 顯示的字串,所以對於一個小時以內的字串 parsing 或許還會有問題
是喔!! :-o
可是我寫的那個str截取方式!~
一開機是看得見的!!!
或許還有一些我還沒有想到遇到的顯示格式 :lol:

發表於 : 2005-11-18 21:40
Mac
maxdc 寫:呃呃!!!太久沒來~~
不知道已經出到1.0.3~~
到現在我還用著舊版~~
讓大家見笑了!! :lol:
不過我還沒看過一開機時 uptime 顯示的字串,所以對於一個小時以內的字串 parsing 或許還會有問題
是喔!! :-o
可是我寫的那個str截取方式!~
一開機是看得見的!!!
或許還有一些我還沒有想到遇到的顯示格式 :lol:
下次再開機時可以把字串貼給我看看喔 :mrgreen:

~Mac

發表於 : 2005-11-18 21:54
maxdc
沒錯!是正常的
可是我剛剛卻想到~
我的寫法沒有考慮到當1天又01分時的狀態!!!
呵呵~好發現!!

代碼: 選擇全部

 21:48:22  up 1 min,  1 user,  load average: 1.08, 0.32, 0.11

代碼: 選擇全部

主機運作時間: 0 日 0 小時 1 分鐘 | 平均負載值: 1.22, 0.38, 0.13