顯示具有 server 標籤的文章。 顯示所有文章
顯示具有 server 標籤的文章。 顯示所有文章

2015年12月24日

dd disk to disk 看進度的方法

dd if=/dev/hda of=/dev/sda bs=4k

再開另外一個terminal ,執行 sudo kill -USR1 $(pgrep ^dd) 
在dd的那個terminal 就會顯示copy 多少資料,speed多少..

33706002+0 records in 
33706002+0 records out 
17257473024 bytes (17 GB) copied, 34.791 s, 496 MB/s

2014年8月25日

停止 ubuntu gui介面

有時gui 介面使用過多的記憶體,在cmd 下:

sudo service lightdm stop

即可以停掉gui介面

2011年2月8日

Symantec Endpoint (SEP) 資料庫無啟動

1.sepm 無法登入
2.檢查service 發現 "Symantec 內嵌資料庫" 無法啟動,導致防毒的服務發生異常
3.檢查C:\Program Files\Symantec\Symantec Endpoint Protection Manager\db\ 下的檔案及log
4.發現是 "Invalid count or free space offset detected on a table page" ,Transaction log: sem5.log 不對稱,導致資料庫無法啟動
5.更名 sem5.log 到 sem5.old.log
6.執行 dbsrv9 -f "C:\Program Files\Symantec\Symantec Endpoint Protection Manager\db\sem5.db
7.啟動 "Symantec 內嵌資料庫" 服務,即會重新產生 sem5.log之 Transaction log
 
完成修復

2011年1月25日

每日檢查信箱大小的Script

#!/bin/bash
find /var/mail/ -size +500M -exec ls -lah {} \; > /tmp/chkmail
mail -s "mailbox check" admin@xxxx < /tmp/chkmail

2010年12月31日

terminal server (遠端桌面)的登入紀錄

因terminal service 或遠端桌面 都無法紀錄比較詳細的資訊,只好用批次檔的方式紀錄成log檔

新增一bat檔,登入後執行

echo  ********************************************************************* >>c:\tslog.log
echo   時間:%date% %time% >>c:\tslog.log
echo   遠端電腦: %CLIENTNAME% >>c:\tslog.log
echo   登入網域: %USERDOMAIN% >>c:\tslog.log
echo   登入帳號: %USERNAME% >>c:\tslog.log
echo   遠端連線狀況 >>c:\tslog.log
netstat -n -p tcp | find ":3389" >>c:\tslog.log
echo  ********************************************************************* >>c:\tslog.log

2010年10月2日

省錢的異地備援方案

雖然在二個資料中心之間佈署網路專線來作異地備援是最安全又方便的解決方法,畢竟網路專線的頻寬成本太高,事實上只有少數資金雄厚的公司才可以作到實際的異地備援。

我的作法是用人工的方式複製備份資料,從本地端主機備份到本地端的NAS,再將資料轉存一份到外接式硬碟上(現在外接式2Tb的硬碟幾千元就買得到),二顆外接式硬碟定期更換從內湖機房換回總公司機房,這樣萬一內湖淹水或機房大樓垮了,總公司還有一份備份資料,這樣幫公司省了不少錢,又可以作到異地備援。

2010年9月21日

請IDC幫忙Reset的經驗

在遠端發現IDC機房的主機當機了,但無法即時到機房處理,通常是請IDCOP協助幫忙Reset機器,經驗是要告訴他"Power off Power ON",這樣機器起來的成功率會比較高。

 

因為有時嚴重死當是連reset按鍵都會失效的

2010年8月5日

在Windows系統下用Command 查序號Serial及型號Model

當機房在遠端時,想要報修主機,但需要主機的序號Serial,其實不用去看機器上的貼紙,用這個Command就可以查到...

查序號

wmic bios get serialnumber

查型號

wmic csproduct get name



2010年7月22日

Passive (PASV) FTP server在Firewall的設定方法


Passive (PASV) FTP server在Firewall內,不走標準的FTP port (21,20),通常會有問題,解決方法如下。

以IIS 7.5為例….

1.    設定IIS預設選項>>FTP防火牆支援

2010年5月17日

IBM X3650 M2 的網卡異常

轉換到新工作後,公司目前採購的主機幾乎都是IBM的,跟之前的HP或Dell不太一樣,還要慢慢瞭解IBM主機…

前幾天發生了一個狀況,主機有二片網路卡,都是內建的Broadcom NetXtreme II,其中一片網路卡會發生FTP 或遠端桌面有時會短暫無回應,但Ping都正常沒有miss,我抓取封包發現有時主機會idle,我懷疑是Layer 1或2 出了問題,嘗試換線換port都無效,更換新版的Driver後就恢復正常。
也許是這張網卡的功能太多了,有增加了許多功能IPMI,Checksum offload..等,基本的功能反而出錯了…

我處理的方式是更新新版的網路卡Driver (Broadcom NetXtreme II Driver v5.0.12 到 v5.2.14.0)
http://www-947.ibm.com/systems/support/supportsite.wss/docdisplay?lndocid=MIGR-5083635&brandind=5000008

2008年5月15日

產生自動copy log的vb script

需求:自動move 5天前的log,避免主機硬碟滿
動作:move檔案,並紀錄move檔案的log

day3=date-5
year_value=right(datepart("yyyy",day3,1,1),2)
if datepart("m",day3,1,1)<10 then
month_value="0"&datepart("m",day3,1,1)
else
month_value=datepart("m",day3,1,1)
end if
select case month_value
case 1
mend=31
case 2
mend=28
case 3
mend=31
case 4
mend=30
case 5
mend=31
case 6
mend=30
case 7
mend=31
case 8
mend=31
case 9
mend=30
case 10
mend=31
case 11
mend=30
case 12
mend=31
end select

if datepart("d",day3,1,1)<10 then
day_value="0"&datepart("d",day3,1,1)
else
day_value=datepart("d",day3,1,1)
end if

'create batch file
Dim fso, log
Set fso = CreateObject("Scripting.FileSystemObject")
Set log = fso.openTextFile("d:\running\ct-ads2.bat",2,true)
log.WriteLine("echo *********************************** >>d:\log\hinet.log")
log.WriteLine("echo ct-act >>d:\log\hinet.log")
log.WriteLine("move \\192.168.24.34\ct-ads2-log\act\w3svc1\??"&year_value & month_value & day_value &".rar d:\log\ct-ads2-log\act >>d:\log\hinet.log")
log.WriteLine("move \\192.168.24.34\ct-ads2-log\act\w3svc1\??"&year_value & month_value & day_value &".rar d:\log\ct-ads2-log\act >>d:\log\hinet.log")
log.WriteLine("echo *********************************** >>d:\log\hinet.log")
log.Close


2007年8月23日

加速你的網站的13個rule

從Yahoo的經驗得知,有13的rule可以加速網站的速度, 如下(後面的註解是我的見解)
  1. Make Fewer HTTP Requests 一個image或css 就算一個Request ,yahoo首頁只有45個
  2. Use a Content Delivery Network 使用akamai(CDN),一般的國際大站(yahoo,microsoft,cnn,apple...等)都有使用此服務
  3. Add an Expires Header 一些不常更新的檔案(如banner,css...等)增加expires header,以可以cache到local
  4. Gzip Components 使用網頁壓縮的技術,必須用Http 1.1,並且配合web server設定
  5. Put CSS at the Top
  6. Move Scripts to the Bottom
  7. Avoid CSS Expressions
  8. Make JavaScript and CSS External
  9. Reduce DNS Lookups 減少domain ,盡量用同一個domain。
  10. Minify JavaScript
  11. Avoid Redirects
  12. Remove Duplicate Scripts
  13. Configure ETags
Yahoo並提供一個好用的工具Yslow
可以檢查html code及是否符合以上的13 rules,
yahoo及google得最高分是A(100分)。

瀏覽網頁的Cache原理

1.緩衝的基本原理

緩衝服務器是在瀏覽器和網頁服務器之間的一組(台)機器,主要作用有兩個:一是減少網絡流量,二是減少網絡延遲。減少網絡流量主要是減少緩衝服務和原始的網頁服務器之間的流量。減少網絡延遲是減少了應答客戶端瀏覽器的延遲。為了實現這些功能,在HTTP/1.1和HTTP/1.0協議裡面有相關的命令來控制緩衝的行為。

緩衝服務器可以靠近原始服務器端也可以靠近瀏覽器端,靠近服務器端的代理服務器一般叫做反向代理。微睦網絡的代理服務器集群就屬於這種模式。
緩衝服務器利用兩個基本的概念來管理緩存的內容,一是新鮮度,二是有效性檢查。一個被緩存的內容(比如一張圖片)在有效期內,緩衝服務器可以直接把這個內容返回給瀏覽器(客戶端)。如果一個被緩存的內容過期了,那麼緩衝服務器就會認為這個內容是"陳舊"的,就會去原始服務器驗證這個內容是否已經更新。如果已經更新了,那麼就會把更新過的內容下載到緩衝服務器,然後重新開始計算該內容的新鮮時間。

一個內容的過期時間可以由服務器端通過http頭信息來明確指定,比如通過一個名為Expires的http頭來指定,如下面的例子:

http://www.google.com/intl/zh-CN_ALL/images/logo.gif
Expires 1641 weeks 2 days from now (Sun, 17 Jan 2038 19:14:07 GMT)

這是google中國的logo圖片,它的過期時間是2038年1月17日。
那如果這個圖片在中途被修改過了怎麼辦?沒關係,假如一個瀏覽器(比如firefox)對這個圖片進行一下刷新,瀏覽器就會發送一個帶條件的請求,而緩衝就會去真實服務器檢查這個圖片是否已經更新,如果圖片更新了,那麼緩衝服務器就會把新的內容下載過來替代舊的內容。

緩衝服務器驗證內容有效,是通過一些條件來判斷的,比如最後修改時間,或者是一個叫做 ETag 的 http 頭信息。具體的細節就不用去瞭解了。

2. 如何讓你的網頁內容具有更好緩衝友好性

為什麼要對緩衝友好?因為如果有更多的內容被緩衝服務器所緩衝,那麼你的網站本身的負載就降下來了,因為很多請求都由緩衝服務器代你應答了,假如瀏覽器請求下載你的網頁裡的小圖片,如果每個這樣的請求都要你的網頁服務器來處理,必然降低你的網頁服務器的處理能力。

那麼在哪裡設置,如何設置呢?這取決於你使用的網頁服務器,現在流行的就是windows下的IIS和Unix/Linux下的Apache,下面分別講解。

Apache

在Apache裡主要是通過選擇性的模塊來設置頭信息,頭信息是 Expires 和 Cache-Control 模塊是mod_expires 和 mod_headers
利用 httpd -l 命令確認你的apache已經包含了這些模塊;然後就可以在你的配置文件裡使用命令來控制你的內容的新鮮期了。可以對一個目錄設置,也可以對文件類型進行設置。
比如下面的命令將圖片文件的新鮮期設置成1年。更詳細的配置說明請參考apache的文檔。(http://lamp.linux.gov.cn/Apache/ApacheMenu/mod/mod_expires.html)

ExpiresActive on
ExpiresByType image/* "access plus 1 year"

利用這些命令,你可以給你的圖片文件和靜態的文件設置一個合理的新鮮時間。而不用擔心用戶不能看到你最近的更新,正如剛才所說,如果用戶點瀏覽上的刷新按鈕,最新的內容就能被訪問到。

IIS 服務器

在iis管理器中右鍵單擊某一網站或目錄,屬性,http 頭。設置相應的過期策略,對於不經常更新的頁面可設定比較高的值。如2小時,1天等。需要經常更新的數據設定比較小的值,10分鐘,20分鐘。這個時間越長,CDN效果越好,您的真實服務器負載也越小,但有些內容又必須及時刷新,站長可以慢慢調整這個時間,找到一個最佳平衡點.

3. 在CDN後面的真實服務器端如何得到訪問者ip地址

由於真實服務器和瀏覽器之間有CDN的緩衝服務器,真實服務器得到的訪問ip是緩衝服務器的ip地址。但是緩衝服務器通常會在HTTP 頭裡包含真實客戶端的ip地址,在Squid(一種流行的緩衝服務器)裡通常增加一個X-Forwarded-For頭信息來包含原始的客戶端ip.所以要在Apache服務器的日誌裡得到這個ip,可以增加一個%{X-Forwarded-For}i 到相應LogFormat裡面。
如果想在web程序裡得到這個值,可以通過所用語言的相關函數得到這個值,比如說在php裡面,可以利用getenv函數得到。

4.可緩存的動態頁面設計

什麼樣的頁面能夠比較好的被緩衝服務器緩存呢?如果返回內容的HTTP HEADER中有"Last-Modified"和"Expires"相關聲明,比如:

Last-Modified: Wed, 14 May 2003 13:06:17 GMT
Expires: Fri, 16 Jun 2003 13:06:17 GMT

前端緩存服務器在期間會將生成的頁面緩存在本地:硬盤或者內存中,直至上述頁面過期。
因此,一個可緩存的頁面:
頁面必須包含Last-Modified: 標記
一般純靜態頁面本身都會有Last-Modified信息,動態頁面需要通過函數強制加上,比如在PHP中:
// always modified now
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");

必須有Expires或Cache-Control: max-age標記設置頁面的過期時間:
對於靜態頁面,通過apache的mod_expires根據頁面的MIME類型設置緩存週期:比如圖片缺省是1個月,HTML頁面缺省是2天等。

<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType image/gif "access plus 1 month"
ExpiresByType text/css "now plus 2 day"
ExpiresDefault "now plus 1 day"
</IfModule>

對於動態頁面,則可以直接通過寫入HTTP返回的頭信息,比如對於新聞首頁index.php可以是20分鐘,而對於具體的一條新聞頁面可能是1天後過期。比如:在php中加入了1個月後過期:
// Expires one month later
header("Expires: " .gmdate ("D, d M Y H:i:s", time() + 3600 * 24 * 30). " GMT");

如果服務器端有基於HTTP的認證,必須有Cache-Control: public標記,允許前台
ASP應用的緩存改造 首先在公用的包含文件中(比如include.asp)加入以下公用函數:

<%
' Set Expires Header in minutes
Function SetExpiresHeader(ByVal minutes)
' set Page Last-Modified Header:
' Converts date (19991022 11:08:38) to http form (Fri, 22 Oct 1999 12:08:38 GMT)
Response.AddHeader "Last-Modified", DateToHTTPDate(Now())
' The Page Expires in Minutes
Response.Expires = minutes
' Set cache control to externel applications
Response.CacheControl = "public"
End Function
' Converts date (19991022 11:08:38) to http form (Fri, 22 Oct 1999 12:08:38 GMT)
Function DateToHTTPDate(ByVal OleDATE)
Const GMTdiff = #08:00:00#
OleDATE = OleDATE - GMTdiff
DateToHTTPDate = engWeekDayName(OleDATE) & _
", " &amp;amp; Right("0" & Day(OleDATE),2) & " " & engMonthName(OleDATE) & _
" " & Year(OleDATE) & " " & Right("0" & Hour(OleDATE),2) & _
":" & Right("0" & Minute(OleDATE),2) & ":" & Right("0" & Second(OleDATE),2) & " GMT"
End Function
Function engWeekDayName(dt)
Dim Out
Select Case WeekDay(dt,1)
Case 1:Out="Sun"
Case 2:Out="Mon"
Case 3:Out="Tue"
Case 4:Out="Wed"
Case 5:Out="Thu"
Case 6:Out="Fri"
Case 7:Out="Sat"
End Select
engWeekDayName = Out
End Function
Function engMonthName(dt)
Dim Out
Select Case Month(dt)
Case 1:Out="Jan"
Case 2:Out="Feb"
Case 3:Out="Mar"
Case 4:Out="Apr"
Case 5:Out="May"
Case 6:Out="Jun"
Case 7:Out="Jul"
Case 8:Out="Aug"
Case 9:Out="Sep"
Case 10:Out="Oct"
Case 11:Out="Nov"
Case 12:Out="Dec"
End Select
engMonthName = Out
End Function
%>

然後在具體的頁面中,比如index.asp和news.asp的「最上面」加入以下代碼:
HTTP Header
<!--#include file="../include.asp"-->
<%
'頁面將被設置20分鐘後過期
SetExpiresHeader(20)
%>

5. 如何檢驗緩衝服務器如何對待你的網頁內容

打開這個網址:(http://utils.vmmatrix.net/)
然後根據提示,輸入你想檢查的內容的URL(地址),就可以看到這個內容的Http頭信息,和緩衝如何處理這個URL.大多數情況有兩種,一是明確指定了新鮮時間,所以緩衝服務器在新鮮時間內認為這個內容是新鮮的。二是沒有明確指定新鮮時間,緩衝服務器就會根據這個內容的最後修改時間距離現在的時間作為一個時間段,然後把這個時間段的一個百分比來作為新鮮時間,這個百分比是在緩衝服務器哪裡設置的。
如果一個內容既沒有明確指定新鮮時間,也沒有最後修改時間,那麼緩衝服務器就會把這個內容當做是」陳舊「的內容,每次都會去原始服務器驗證。

2006年12月9日

使用linux 的wget 指令測試proxy是否有cache到頁面

1.proxy沒cache到頁面

--20:49:37-- http://210.65.0.1/report/2006vote/chinatimes/MayorVote.xml?r=19-45
=> `MayorVote.xml?r=19-45'
Connecting to 210.65.0.1:80... connected.
HTTP request sent, awaiting response...
1 HTTP/1.0 200 OK
2 Content-Length: 19613
3 Content-Type: text/xml
4 Last-Modified: Sat, 09 Dec 2006 12:44:04 GMT
5 Accept-Ranges: bytes
6 ETag: W/"bc758bb58f1bc71:3d9"
7 Server: Microsoft-IIS/6.0
8 X-Powered-By: ASP.NET
9 Date: Sat, 09 Dec 2006 12:49:34 GMT
10 X-Cache: MISS from ac200 (沒有cache 到頁面 )
11 Connection: keep-alive
100%[====================================>] 19,613 --.--K/s
20:49:39 (36.68 MB/s) - `MayorVote.xml?r=19-45.2' saved [19613/19613]
2.proxy有cache到頁面

--20:56:50-- http://210.65.0.1/report/2006vote/chinatimes/MayorVote.xml
=> `MayorVote.xml.1'
Connecting to 210.65.0.1:80... connected.
HTTP request sent, awaiting response...
1 HTTP/1.0 200 OK
2 Content-Length: 19613
3 Content-Type: text/xml
4 Last-Modified: Sat, 09 Dec 2006 12:44:04 GMT
5 Accept-Ranges: bytes
6 ETag: W/"bc758bb58f1bc71:3d9"
7 Server: Microsoft-IIS/6.0
8 X-Powered-By: ASP.NET
9 Date: Sat, 09 Dec 2006 12:56:42 GMT
10 Age: 13
11 X-Cache: HIT from ac200 (有cache,ac200是proxy server的hostname)
12 Connection: keep-alive
100%[====================================>] 19,613 --.--K/s
20:56:51 (34.13 MB/s) - `MayorVote.xml.1' saved [19613/19613]
cache控制參數(有可能是proxy server加進去的http header):
  Cache-Control: max-age=60  (cache 60秒,如果超過 60會回304,要求確認是否更新過)
   X-Cache: HIT from ac200  (在ac200 有cache到)
 

2006年11月23日

nslookup簡易使用方法

無法查看此摘要。請 按這裡查看文章。

Dns server的建立紀錄方法

Dns server的建立紀錄方法



一、 開啟DNS管理員。

二、 選擇所屬DNS伺服器,或是新增伺服器選擇某一DNS伺服器。

三、 加入正查新區域:選擇新區域,選擇主機,鍵入區域名稱後直接按tab鍵,即會自動產生區域檔案,再下一步完成動作。(ns紀錄要指定到公司控管的primary&secondary dns server)

四、 加入反查區域:選擇新區域,選擇主機,鍵入區域名稱後(如ip是210.200.39.19,區域名稱即是39.200.210.in-addr.arpa)直接按tab鍵即會自動產生區域檔案(39.200.210.in-addr.arpa.dns),再下一步完成動作。

五、 加入紀錄前先確認反查紀錄中有無所要加入紀錄的IP反查區域,(如加入的IP是210.200.39.19,就應該有一反查區域39.200.210.in-addr.arpa),確認後選取加入紀錄的區域,選取新紀錄,輸入正確資料後完成動作。







powered by performancing firefox

Windows Dns server的災後重建

Dns server的災後重建

備份:\winnt\system32\dns下所有資料備份。

還原:在有dns服務的機器上,停止dns service,還原\winnt\system32\dns 下所有資料,啟動DNS Service即完成。







powered by performancing firefox