導航:首頁 > 操作系統 > linuxnodelay

linuxnodelay

發布時間:2023-01-09 21:02:37

linux中samba配置文件怎麼配置

Samba配置文件常用參數詳解

Samba的主配置文件叫smb.conf,默認在/etc/samba/目錄下。
smb.conf含有多個段,每個段由段名開始,直到下個段名。每個段名放在方括弧中間。每段的參數的格式是:名稱=指。配置文件中一行一個段名和參數,段名和參數名不分大小寫。
除了[global]段外,所有的段都可以看作是一個共享資源。段名是該共享資源的名字,段里的參數是該共享資源的屬性。
Samba安裝好後,使用testparm命令可以測試smb.conf配置是否正確。使用testparm –v命令可以詳細的列出smb.conf支持的配置參數。

全局參數:
==================Global Settings ===================
[global]

config file = /usr/local/samba/lib/smb.conf.%m
說明:config file可以讓你使用另一個配置文件來覆蓋預設的配置文件。如果文件 不存在,則該項無效。這個參數很有用,可以使得samba配置更靈活,可以讓一台samba伺服器模擬多台不同配置的伺服器。比如,你想讓PC1(主機名)這台電腦在訪問Samba Server時使用它自己的配置文件,那麼先在/etc/samba/host/下為PC1配置一個名為smb.conf.pc1的文件,然後在smb.conf中加入:config file = /etc/samba/host/smb.conf.%m。這樣當PC1請求連接Samba Server時,smb.conf.%m就被替換成smb.conf.pc1。這樣,對於PC1來說,它所使用的Samba服務就是由smb.conf.pc1定義的,而其他機器訪問Samba Server則還是應用smb.conf。

workgroup = WORKGROUP
說明:設定 Samba Server 所要加入的工作組或者域。

server string = Samba Server Version %v
說明:設定 Samba Server 的注釋,可以是任何字元串,也可以不填。宏%v表示顯示Samba的版本號。

netbios name = smbserver
說明:設置Samba Server的NetBIOS名稱。如果不填,則默認會使用該伺服器的DNS名稱的第一部分。netbios name和workgroup名字不要設置成一樣了。

interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
說明:設置Samba Server監聽哪些網卡,可以寫網卡名,也可以寫該網卡的IP地址。

hosts allow = 127. 192.168.1. 192.168.10.1
說明:表示允許連接到Samba Server的客戶端,多個參數以空格隔開。可以用一個IP表示,也可以用一個網段表示。hosts deny 與hosts allow 剛好相反。
例如:hosts allow=172.17.2.EXCEPT172.17.2.50
表示容許來自172.17.2.*.*的主機連接,但排除172.17.2.50
hosts allow=172.17.2.0/255.255.0.0
表示容許來自172.17.2.0/255.255.0.0子網中的所有主機連接
hosts allow=M1,M2
表示容許來自M1和M2兩台計算機連接
hosts allow=@xq
表示容許來自XQ網域的所有計算機連接

max connections = 0
說明:max connections用來指定連接Samba Server的最大連接數目。如果超出連接數目,則新的連接請求將被拒絕。0表示不限制。

deadtime = 0
說明:deadtime用來設置斷掉一個沒有打開任何文件的連接的時間。單位是分鍾,0代表Samba Server不自動切斷任何連接。

time server = yes/no
說明:time server用來設置讓nmdb成為windows客戶端的時間伺服器。

log file = /var/log/samba/log.%m
說明:設置Samba Server日誌文件的存儲位置以及日誌文件名稱。在文件名後加個宏%m(主機名),表示對每台訪問Samba Server的機器都單獨記錄一個日誌文件。如果pc1、pc2訪問過Samba Server,就會在/var/log/samba目錄下留下log.pc1和log.pc2兩個日誌文件。

max log size = 50
說明:設置Samba Server日誌文件的最大容量,單位為kB,0代表不限制。

security = user
說明:設置用戶訪問Samba Server的驗證方式,一共有四種驗證方式。
1. share:用戶訪問Samba Server不需要提供用戶名和口令, 安全性能較低。
2. user:Samba Server共享目錄只能被授權的用戶訪問,由Samba Server負責檢查賬號和密碼的正確性。賬號和密碼要在本Samba Server中建立。
3. server:依靠其他Windows NT/2000或Samba Server來驗證用戶的賬號和密碼,是一種代理驗證。此種安全模式下,系統管理員可以把所有的Windows用戶和口令集中到一個NT系統上,使用Windows NT進行Samba認證, 遠程伺服器可以自動認證全部用戶和口令,如果認證失敗,Samba將使用用戶級安全模式作為替代的方式。
4. domain:域安全級別,使用主域控制器(PDC)來完成認證。

passdb backend = tdbsam
說明:passdb backend就是用戶後台的意思。目前有三種後台:smbpasswd、tdbsam和ldapsam。sam應該是security account manager(安全賬戶管理)的簡寫。
1.smbpasswd:該方式是使用smb自己的工具smbpasswd來給系統用戶(真實
用戶或者虛擬用戶)設置一個Samba密碼,客戶端就用這個密碼來訪問Samba的資源。smbpasswd文件默認在/etc/samba目錄下,不過有時候要手工建立該文件。
2.tdbsam:該方式則是使用一個資料庫文件來建立用戶資料庫。資料庫文件叫passdb.tdb,默認在/etc/samba目錄下。passdb.tdb用戶資料庫可以使用smbpasswd –a來建立Samba用戶,不過要建立的Samba用戶必須先是系統用戶。我們也可以使用pdbedit命令來建立Samba賬戶。pdbedit命令的參數很多,我們列出幾個主要的。
pdbedit –a username:新建Samba賬戶。
pdbedit –x username:刪除Samba賬戶。
pdbedit –L:列出Samba用戶列表,讀取passdb.tdb資料庫文件。
pdbedit –Lv:列出Samba用戶列表的詳細信息。
pdbedit –c 「[D]」 –u username:暫停該Samba用戶的賬號。
pdbedit –c 「[]」 –u username:恢復該Samba用戶的賬號。
3.ldapsam:該方式則是基於LDAP的賬戶管理方式來驗證用戶。首先要建立LDAP服務,然後設置「passdb backend = ldapsam:ldap://LDAP Server」

encrypt passwords = yes/no
說明:是否將認證密碼加密。因為現在windows操作系統都是使用加密密碼,所以一般要開啟此項。不過配置文件默認已開啟。

smb passwd file = /etc/samba/smbpasswd
說明:用來定義samba用戶的密碼文件。smbpasswd文件如果沒有那就要手工新建。

username map = /etc/samba/smbusers
說明:用來定義用戶名映射,比如可以將root換成administrator、admin等。不過要事先在smbusers文件中定義好。比如:root = administrator admin,這樣就可以用administrator或admin這兩個用戶來代替root登陸Samba Server,更貼近windows用戶的習慣。

guest account = nobody
說明:用來設置guest用戶名。

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
說明:用來設置伺服器和客戶端之間會話的Socket選項,可以優化傳輸速度。

domain master = yes/no
說明:設置Samba伺服器是否要成為網域主瀏覽器,網域主瀏覽器可以管理跨子網域的瀏覽服務。

local master = yes/no
說明:local master用來指定Samba Server是否試圖成為本地網域主瀏覽器。如果設為no,則永遠不會成為本地網域主瀏覽器。但是即使設置為yes,也不等於該Samba Server就能成為主瀏覽器,還需要參加選舉。

preferred master = yes/no
說明:設置Samba Server一開機就強迫進行主瀏覽器選舉,可以提高Samba Server成為本地網域主瀏覽器的機會。如果該參數指定為yes時,最好把domain master也指定為yes。使用該參數時要注意:如果在本Samba Server所在的子網有其他的機器(不論是windows NT還是其他Samba Server)也指定為首要主瀏覽器時,那麼這些機器將會因為爭奪主瀏覽器而在網路上大發廣播,影響網路性能。
如果同一個區域內有多台Samba Server,將上面三個參數設定在一台即可。

os level = 200
說明:設置samba伺服器的os level。該參數決定Samba Server是否有機會成為本地網域的主瀏覽器。os level從0到255,winNT的os level是32,win95/98的os level是1。Windows 2000的os level是64。如果設置為0,則意味著Samba Server將失去瀏覽選擇。如果想讓Samba Server成為PDC,那麼將它的os level值設大些。

domain logons = yes/no
說明:設置Samba Server是否要做為本地域控制器。主域控制器和備份域控制器都需要開啟此項。

logon . = %u.bat
說明:當使用者用windows客戶端登陸,那麼Samba將提供一個登陸檔。如果設置成%u.bat,那麼就要為每個用戶提供一個登陸檔。如果人比較多,那就比較麻煩。可以設置成一個具體的文件名,比如start.bat,那麼用戶登陸後都會去執行start.bat,而不用為每個用戶設定一個登陸檔了。這個文件要放置在[netlogon]的path設置的目錄路徑下。

wins support = yes/no
說明:設置samba伺服器是否提供wins服務。

wins server = wins伺服器IP地址
說明:設置Samba Server是否使用別的wins伺服器提供wins服務。

wins proxy = yes/no
說明:設置Samba Server是否開啟wins代理服務。

dns proxy = yes/no
說明:設置Samba Server是否開啟dns代理服務。

load printers = yes/no
說明:設置是否在啟動Samba時就共享列印機。

printcap name = cups
說明:設置共享列印機的配置文件。

printing = cups
說明:設置Samba共享列印機的類型。現在支持的列印系統有:bsd, sysv, plp, lprng, aix, hpux, qnx

共享參數:
================== Share Definitions ==================
[共享名]

comment = 任意字元串
說明:comment是對該共享的描述,可以是任意字元串。

path = 共享目錄路徑
說明:path用來指定共享目錄的路徑。可以用%u、%m這樣的宏來代替路徑里的unix用戶和客戶機的Netbios名,用宏表示主要用於[homes]共享域。例如:如果我們不打算用home段做為客戶的共享,而是在/home/share/下為每個Linux用戶以他的用戶名建個目錄,作為他的共享目錄,這樣path就可以寫成:path = /home/share/%u; 。用戶在連接到這共享時具體的路徑會被他的用戶名代替,要注意這個用戶名路徑一定要存在,否則,客戶機在訪問時會找不到網路路徑。同樣,如果我們不是以用戶來劃分目錄,而是以客戶機來劃分目錄,為網路上每台可以訪問samba的機器都各自建個以它的netbios名的路徑,作為不同機器的共享資源,就可以這樣寫:path = /home/share/%m 。

browseable = yes/no
說明:browseable用來指定該共享是否可以瀏覽。

writable = yes/no
說明:writable用來指定該共享路徑是否可寫。

available = yes/no
說明:available用來指定該共享資源是否可用。

admin users = 該共享的管理者
說明:admin users用來指定該共享的管理員(對該共享具有完全控制許可權)。在samba 3.0中,如果用戶驗證方式設置成「security=share」時,此項無效。
例如:admin users =bobyuan,jane(多個用戶中間用逗號隔開)。

valid users = 允許訪問該共享的用戶
說明:valid users用來指定允許訪問該共享資源的用戶。
例如:valid users = bobyuan,@bob,@tech(多個用戶或者組中間用逗號隔開,如果要加入一個組就用「@+組名」表示。)

invalid users = 禁止訪問該共享的用戶
說明:invalid users用來指定不允許訪問該共享資源的用戶。
例如:invalid users = root,@bob(多個用戶或者組中間用逗號隔開。)

write list = 允許寫入該共享的用戶
說明:write list用來指定可以在該共享下寫入文件的用戶。
例如:write list = bobyuan,@bob

public = yes/no
說明:public用來指定該共享是否允許guest賬戶訪問。

guest ok = yes/no
說明:意義同「public」。

幾個特殊共享:
[homes]
comment = Home Directories
browseable = no
writable = yes
valid users = %S
; valid users = MYDOMAIN\%S

[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes

[netlogon]
comment = Network Logon Service
path = /var/lib/samba/netlogon
guest ok = yes
writable = no
share modes = no

[Profiles]
path = /var/lib/samba/profiles
browseable = no
guest ok = yes

② linux怎麼清理tomcat日誌

伺服器上的tomcat的catalina.out文件越來越大,查看起來很不方便,以前每次都是想起來的時候手工清理一下(cat
/dev/null > catalina.out),後來發現了logratate這個工具,Ubuntu
下的mysql,nginx好像也是用的這個工具還定期整理log的。配置文件為/etc/logrotate.conf,和很多其它ubuntu下的工
具一下,也可以把配置文件寫在/etc/logrotate.d/下面。如對我們的tomcat的log文件進行整理,sudo vi
/etc/logrotate.d/tomcat,

/opt/tomcat/logs/catalina.out {
rotate 14
daily
truncate
compress
notifempty
missingok
}

其中:
rotate 7 表示保留7天的備份文件
daily 表示每天整理一次
truncate 表示先復制log文件的內容,然後再清空
compress 表示壓縮備分文件
missingok 表示如果找不到log文件也沒OK
notifempty 表示如果log文件是空的,就不進行rotate
可以通過/usr/sbin/logrotate -f /etc/logrotate.conf來執行。Ubuntu
有/etc/cron.daily/logrotate文件,內容為:

#!/bin/sh

test -x /usr/sbin/logrotate || exit 0
/usr/sbin/logrotate /etc/logrotate.conf

表示每天會定時執行一次這個命令

通過ntp同步伺服器的時間
根據 Ubuntu 的文檔 有兩種方式可以用來使伺服器的時間和ntp server同步。一種是通過ntpdate命令,如

ntpdate ntp.Ubuntu .com

然後在/etc/cron.daily/下新建一個文件來每天執行一次這個命令
另一種是通過ntpd來更新。sudo apt-get install
ntp。配置文件/etc/ntp.conf,可以通過修改配置文件為改變ntp server,
我們用的是210.72.145.44這個server

對於Linux 的系統安全來說,日誌文件是極其重要的工具。系統管理員可以使用logrotate
程序用來管理系統中的最新的事件,對於Linux 的系統安全來說,日誌文件是極其重要的工具。系統管理員可以使用logrotate
程序用來管理系統中的最新的事件。logrotate 還可以用來備份日誌文件,本篇將通過以下幾部分來介紹

日誌文件的管理:

1、logrotate 配置

2、預設配置 logrotate

3、使用include 選項讀取其他配置文件

4、使用include 選項覆蓋預設配置

5、為指定的文件配置轉儲參數

一、logrotate 配置

logrotate
程序是一個日誌文件管理工具。用來把舊的日誌文件刪除,並創建新的日誌文件,我們把它叫做「轉儲」。我們可以根據日誌文件的大小,也可以根據其天數來轉儲,這個過程一般通過
cron 程序來執行。

logrotate 程序還可以用於壓縮日誌文件,以及發送日誌到指定的E-mail 。

logrotate 的配置文件是 /etc/logrotate.conf。主要參數如下表:

參數 功能

compress 通過gzip 壓縮轉儲以後的日誌

nocompress 不需要壓縮時,用這個參數

truncate 用於還在打開中的日誌文件,把當前日誌備份並截斷

notruncate 備份日誌文件但是不截斷

create mode owner group 轉儲文件,使用指定的文件模式創建新的日誌文件

nocreate 不建立新的日誌文件

delaycompress 和 compress 一起使用時,轉儲的日誌文件到下一次轉儲時才壓縮

nodelaycompress 覆蓋 delaycompress 選項,轉儲同時壓縮。

errors address 專儲時的錯誤信息發送到指定的Email 地址

ifempty 即使是空文件也轉儲,這個是 logrotate 的預設選項。

notifempty 如果是空文件的話,不轉儲

mail address 把轉儲的日誌文件發送到指定的E-mail 地址

nomail 轉儲時不發送日誌文件

olddir directory 轉儲後的日誌文件放入指定的目錄,必須和當前日誌文件在同一個文件系統

noolddir 轉儲後的日誌文件和當前日誌文件放在同一個目錄下

prerotate/endscript 在轉儲以前需要執行的命令可以放入這個對,這兩個關鍵字必須單獨成行

postrotate/endscript 在轉儲以後需要執行的命令可以放入這個對,這兩個關鍵字必須單獨成行

daily 指定轉儲周期為每天

weekly 指定轉儲周期為每周

monthly 指定轉儲周期為每月

rotate count 指定日誌文件刪除之前轉儲的次數,0 指沒有備份,5 指保留5 個備份

tabootext [+] list 讓logrotate 不轉儲指定擴展名的文件,預設的擴展名是:.rpm-orig,
.rpmsave, v, 和 ~

size size 當日誌文件到達指定的大小時才轉儲,Size 可以指定 bytes (預設)以及KB
(sizek)或者MB (sizem).

③ linux下怎麼獲取tcp發送緩沖區還有多少空閑

int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen);

參數
sockfd:一個標識套介面的描述字。
level:選項定義的層次。支持的層次僅有SOL_SOCKET和IPPROTO_TCP。
optname:需獲取的套介面選項。
optval:指針,指向存放所獲得選項值的緩沖區。
optlen:指針,指向optval緩沖區的長度值。

返回值:
若無錯誤發生,getsockopt()返回0。否則的話,返回SOCKET_ERROR錯誤,應用程序可通過WSAGetLastError()獲取相應錯誤代碼。
錯誤代碼:
WSANOTINITIALISED:在使用此API之前應首先成功地調用WSAStartup()。
WSAENETDOWN:WINDOWS套介面實現檢測到網路子系統失效。
WSAEFAULT:optlen參數非法。
WSAEINPROGRESS:一個阻塞的WINDOWS套介面調用正在運行中。
WSAENOPROTOOPT:未知或不支持選項。其中,SOCK_STREAM類型的套介面不支持SO_BROADCAST選項,SOCK_DGRAM類型的套介面不支持SO_ACCEPTCONN、SO_DONTLINGER 、SO_KEEPALIVE、SO_LINGER和SO_OOBINLINE選項。
WSAENOTSOCK:描述字不是一個套介面。

注釋:
編輯
getsockopt()函數用於獲取任意類型、任意狀態套介面的選項當前值,並把結果存入optval。在不同協議層上存在選項,但往往是在最高的「套介面」層次上,設置選項影響套介面的操作,諸如操作的阻塞與否、包的選徑方式、帶外數據的傳送等。
被選中選項的值放在optval緩沖區中。optlen所指向的整形數在初始時包含緩沖區的長度,在調用返回時被置為實際值的長度。對SO_LINGER選項而言,相當於linger結構的大小,對其他選項來說,是一個整形數的大小。
如果未進行setsockopt()調用,則getsockopt()返回系統預設值。
getsockopt()支持下列選項。其中「類型」欄指出了optval所指向的值。僅有TCP_NODELAY選項使用了IPPROTO_TCP層;其餘選項均使用SOL_SOCKET層。
選項 類型 意義
SO_ACCEPTCONN BOOL 套介面正在用listen()監聽。
SO_BROADCAST BOOL 套介面設置為傳送廣播信息。
SO_DEBUG BOOL 允許調試。
SO_DONTLINER BOOL 若為真,則SO_LINGER選項被禁止。
SO_DONTROUTE BOOL 禁止選徑。
SO_ERROR int 獲取錯誤狀態並清除。
SO_KEEPALIVE BOOL 發送「保持活動」信息。
SO_LINGER struct linger FAR* 返回當前各linger選項。
SO_OOBINLINE BOOL 在普通數據流中接收帶外數據。
SO_RCVBUF int 接收緩沖區大小。
SO_REUSEADDR BOOL 套介面能和一個已在使用中的地址捆綁。
SO_SNDBUF int 發送緩沖區大小。
SO_TYPE int 套介面類型(如SOCK_STREAM)。
TCP_NODELAY BOOL 禁止發送合並的Nagle演算法
getsockopt()不支持的BSD選項有:
選項名 類型 意義
SO_RCVLOWAT int 接收低級水印。
SO_RCVTIMEO int 接收超時。
SO_SNDLOWAT int 發送低級水印。
SO_SNDTIMEO int 發送超時。
IP_OPTIONS 獲取IP頭中選項。
TCP_MAXSEG int 獲取TCP最大段的長度。
用一個未被支持的選項去調用getsockopt()將會返回一個WSAENOPROTOOPT錯誤代碼(可用WSAGetLastError()獲取)。

④ linux tcp 通過setsockopt設置接收緩存區有什麼用

Socket的send函數在執行時報EAGAIN的錯誤

當客戶通過Socket提供的send函數發送大的數據包時,就可能返回一個EGGAIN的錯誤。該錯誤產生的原因是由於send 函數中的size變數大小超過了tcp_sendspace的值。tcp_sendspace定義了應用在調用send之前能夠在kernel中緩存的數據量。當應用程序在socket中設置了O_NDELAY或者O_NONBLOCK屬性後,如果發送緩存被占滿,send就會返回EAGAIN的錯誤。

為了消除該錯誤,有三種方法可以選擇:
1.調大tcp_sendspace,使之大於send中的size參數
---no -p -o tcp_sendspace=65536

2.在調用send前,在setsockopt函數中為SNDBUF設置更大的值

3.使用write替代send,因為write沒有設置O_NDELAY或者O_NONBLOCK

1. tcp 收發緩沖區默認值

[root@qljt core]# cat /proc/sys/net/ipv4/tcp_rmem
4096 87380 4161536

87380 :tcp接收緩沖區的默認值

[root@qljt core]# cat /proc/sys/net/ipv4/tcp_wmem
4096 16384 4161536

16384 : tcp 發送緩沖區的默認值

2. tcp 或udp收發緩沖區最大值

[root@qljt core]# cat /proc/sys/net/core/rmem_max
131071

131071:tcp 或 udp 接收緩沖區最大可設置值的一半。

也就是說調用 setsockopt(s, SOL_SOCKET, SO_RCVBUF, &rcv_size, &optlen); 時rcv_size 如果超過 131071,那麼

getsockopt(s, SOL_SOCKET, SO_RCVBUF, &rcv_size, &optlen); 去到的值就等於 131071 * 2 = 262142

[root@qljt core]# cat /proc/sys/net/core/wmem_max
131071

131071:tcp 或 udp 發送緩沖區最大可設置值得一半。

跟上面同一個道理

3. udp收發緩沖區默認值

[root@qljt core]# cat /proc/sys/net/core/rmem_default
111616:udp接收緩沖區的默認值

[root@qljt core]# cat /proc/sys/net/core/wmem_default
111616

111616:udp發送緩沖區的默認值

. tcp 或udp收發緩沖區最小值

tcp 或udp接收緩沖區的最小值為 256 bytes,由內核的宏決定;

tcp 或udp發送緩沖區的最小值為 2048 bytes,由內核的宏決定

setsockopt設置socket狀態
1.closesocket(一般不會立即關閉而經歷TIME_WAIT的過程)後想繼續重用該socket:
BOOL bReuseaddr=TRUE;
setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));

2. 如果要已經處於連接狀態的soket在調用closesocket後強制關閉,不經歷TIME_WAIT的過程:
BOOL bDontLinger = FALSE;
setsockopt(s,SOL_SOCKET,SO_DONTLINGER,(const char*)&bDontLinger,sizeof(BOOL));

3.在send(),recv()過程中有時由於網路狀況等原因,發收不能預期進行,而設置收發時限:
int nNetTimeout=1000;//1秒
//發送時限
setsockopt(socket,SOL_S0CKET,SO_SNDTIMEO,(char *)&nNetTimeout,sizeof(int));
//接收時限
setsockopt(socket,SOL_S0CKET,SO_RCVTIMEO,(char *)&nNetTimeout,sizeof(int));

4.在send()的時候,返回的是實際發送出去的位元組(同步)或發送到socket緩沖區的位元組(非同步);系統默認的狀態發送和接收一次為8688位元組(約為8.5K);在實際的過程中發送數據
和接收數據量比較大,可以設置socket緩沖區,而避免了send(),recv()不斷的循環收發:
// 接收緩沖區
int nRecvBuf=32*1024;//設置為32K
setsockopt(s,SOL_SOCKET,SO_RCVBUF,(const char*)&nRecvBuf,sizeof(int));
//發送緩沖區
int nSendBuf=32*1024;//設置為32K
setsockopt(s,SOL_SOCKET,SO_SNDBUF,(const char*)&nSendBuf,sizeof(int));

5. 如果在發送數據的時,希望不經歷由系統緩沖區到socket緩沖區的拷貝而影響程序的性能:
int nZero=0;
setsockopt(socket,SOL_S0CKET,SO_SNDBUF,(char *)&nZero,sizeof(nZero));

6.同上在recv()完成上述功能(默認情況是將socket緩沖區的內容拷貝到系統緩沖區):
int nZero=0;
setsockopt(socket,SOL_S0CKET,SO_RCVBUF,(char *)&nZero,sizeof(int));

7.一般在發送UDP數據報的時候,希望該socket發送的數據具有廣播特性:
BOOL bBroadcast=TRUE;
setsockopt(s,SOL_SOCKET,SO_BROADCAST,(const char*)&bBroadcast,sizeof(BOOL));

8.在client連接伺服器過程中,如果處於非阻塞模式下的socket在connect()的過程中可以設置connect()延時,直到accpet()被呼叫(本函數設置只有在非阻塞的過程中有顯著的
作用,在阻塞的函數調用中作用不大)
BOOL bConditionalAccept=TRUE;
setsockopt(s,SOL_SOCKET,SO_CONDITIONAL_ACCEPT,(const char*)&bConditionalAccept,sizeof(BOOL));

9.如果在發送數據的過程中(send()沒有完成,還有數據沒發送)而調用了closesocket(),以前我們一般採取的措施是"從容關閉"shutdown(s,SD_BOTH),但是數據是肯定丟失了,如何設置讓程序滿足具體應用的要求(即讓沒發完的數據發送出去後在關閉socket)?
struct linger {
u_short l_onoff;
u_short l_linger;
};
linger m_sLinger;
m_sLinger.l_onoff=1;//(在closesocket()調用,但是還有數據沒發送完畢的時候容許逗留)
// 如果m_sLinger.l_onoff=0;則功能和2.)作用相同;
m_sLinger.l_linger=5;//(容許逗留的時間為5秒)
setsockopt(s,SOL_SOCKET,SO_LINGER,(const char*)&m_sLinger,sizeof(linger));

設置套介面的選項。
#include <winsock.h>
int PASCAL FAR setsockopt( SOCKET s, int level, int optname,
const char FAR* optval, int optlen);
s:標識一個套介面的描述字。
level:選項定義的層次;目前僅支持SOL_SOCKET和IPPROTO_TCP層次。
optname:需設置的選項。
optval:指針,指向存放選項值的緩沖區。
optlen:optval緩沖區的長度。
注釋:
setsockopt()函數用於任意類型、任意狀態套介面的設置選項值。盡管在不同協議層上存在選項,但本函數僅定義了最高的「套介面」層次上的選項。選項影響套介面的操作,諸如加急數據是否在普通數據流中接收,廣播數據是否可以從套介面發送等等。
有兩種套介面的選項:一種是布爾型選項,允許或禁止一種特性;另一種是整形或結構選項。允許一個布爾型選項,則將optval指向非零整形數;禁止一個選項optval指向一個等於零的整形數。對於布爾型選項,optlen應等於sizeof(int);對其他選項,optval指向包含所需選項的整形數或結構,而optlen則為整形數或結構的長度。SO_LINGER選項用於控制下述情況的行動:套介面上有排隊的待發送數據,且 closesocket()調用已執行。參見closesocket()函數中關於SO_LINGER選項對closesocket()語義的影響。應用程序通過創建一個linger結構來設置相應的操作特性:
struct linger {
int l_onoff;
int l_linger;
};
為了允許SO_LINGER,應用程序應將l_onoff設為非零,將l_linger設為零或需要的超時值(以秒為單位),然後調用setsockopt()。為了允許SO_DONTLINGER(亦即禁止SO_LINGER),l_onoff應設為零,然後調用setsockopt()。
預設條件下,一個套介面不能與一個已在使用中的本地地址捆綁(參見bind())。但有時會需要「重用」地址。因為每一個連接都由本地地址和遠端地址的組合唯一確定,所以只要遠端地址不同,兩個套介面與一個地址捆綁並無大礙。為了通知WINDOWS套介面實現不要因為一個地址已被一個套介面使用就不讓它與另一個套介面捆綁,應用程序可在bind()調用前先設置SO_REUSEADDR選項。請注意僅在bind()調用時該選項才被解釋;故此無需(但也無害)將一個不會共用地址的套介面設置該選項,或者在bind()對這個或其他套介面無影響情況下設置或清除這一選項。
一個應用程序可以通過打開SO_KEEPALIVE選項,使得WINDOWS套介面實現在TCP連接情況下允許使用「保持活動」包。一個WINDOWS套介面實現並不是必需支持「保持活動」,但是如果支持的話,具體的語義將與實現有關,應遵守RFC1122「Internet主機要求-通訊層」中第 4.2.3.6節的規范。如果有關連接由於「保持活動」而失效,則進行中的任何對該套介面的調用都將以WSAENETRESET錯誤返回,後續的任何調用將以WSAENOTCONN錯誤返回。
TCP_NODELAY選項禁止Nagle演算法。Nagle演算法通過將未確認的數據存入緩沖區直到蓄足一個包一起發送的方法,來減少主機發送的零碎小數據包的數目。但對於某些應用來說,這種演算法將降低系統性能。所以TCP_NODELAY可用來將此演算法關閉。應用程序編寫者只有在確切了解它的效果並確實需要的情況下,才設置TCP_NODELAY選項,因為設置後對網路性能有明顯的負面影響。TCP_NODELAY是唯一使用IPPROTO_TCP層的選項,其他所有選項都使用SOL_SOCKET層。
如果設置了SO_DEBUG選項,WINDOWS套介面供應商被鼓勵(但不是必需)提供輸出相應的調試信息。但產生調試信息的機制以及調試信息的形式已超出本規范的討論范圍。
setsockopt()支持下列選項。其中「類型」表明optval所指數據的類型。
選項 類型 意義
SO_BROADCAST BOOL 允許套介面傳送廣播信息。
SO_DEBUG BOOL 記錄調試信息。
SO_DONTLINER BOOL 不要因為數據未發送就阻塞關閉操作。設置本選項相當於將SO_LINGER的l_onoff元素置為零。
SO_DONTROUTE BOOL 禁止選徑;直接傳送。
SO_KEEPALIVE BOOL 發送「保持活動」包。
SO_LINGER struct linger FAR* 如關閉時有未發送數據,則逗留。
SO_OOBINLINE BOOL 在常規數據流中接收帶外數據。
SO_RCVBUF int 為接收確定緩沖區大小。
SO_REUSEADDR BOOL 允許套介面和一個已在使用中的地址捆綁(參見bind())。
SO_SNDBUF int 指定發送緩沖區大小。
TCP_NODELAY BOOL 禁止發送合並的Nagle演算法。
setsockopt()不支持的BSD選項有:
選項名 類型 意義
SO_ACCEPTCONN BOOL 套介面在監聽。
SO_ERROR int 獲取錯誤狀態並清除。
SO_RCVLOWAT int 接收低級水印。
SO_RCVTIMEO int 接收超時。
SO_SNDLOWAT int 發送低級水印。
SO_SNDTIMEO int 發送超時。
SO_TYPE int 套介面類型。
IP_OPTIONS 在IP頭中設置選項。
返回值:
若無錯誤發生,setsockopt()返回0。否則的話,返回SOCKET_ERROR錯誤,應用程序可通過WSAGetLastError()獲取相應錯誤代碼。
錯誤代碼:
WSANOTINITIALISED:在使用此API之前應首先成功地調用WSAStartup()。
WSAENETDOWN:WINDOWS套介面實現檢測到網路子系統失效。
WSAEFAULT:optval不是進程地址空間中的一個有效部分。
WSAEINPROGRESS:一個阻塞的WINDOWS套介面調用正在運行中。
WSAEINVAL:level值非法,或optval中的信息非法。
WSAENETRESET:當SO_KEEPALIVE設置後連接超時。
WSAENOPROTOOPT:未知或不支持選項。其中,SOCK_STREAM類型的套介面不支持SO_BROADCAST選項,SOCK_DGRAM 類型的套介面不支持SO_DONTLINGER 、SO_KEEPALIVE、SO_LINGER和SO_OOBINLINE選項。
WSAENOTCONN:當設置SO_KEEPALIVE後連接被復位。
WSAENOTSOCK:描述字不是一個套介面。

⑤ TCP之Nagle、Cork、Delay ACK(延遲確認)

[TOC]

TCP協議中的Nagle演算法

TCP中的Nagle演算法

Linux下TCP延遲確認(Delayed Ack)機制導致的時延問題分析

TCP-IP詳解:Delay ACK

Nagle演算法為了避免網路中存在太多的小數據包,盡可能發送大的數據包。定義為在任意時刻,最多隻有一個未被確認的小段。小段為小於MSS尺寸的數據塊,未被確認是指數據發出去後未收到對端的ack。

Nagle演算法是在網速較慢的時代的產物,目前的網路環境已經不太需要該機制,該演算法在linux系統中默認關閉。

1)如果包長度達到MSS,則允許發送;

2)如果該包含有FIN,則允許發送;

3)設置了TCP_NODELAY選項,則允許發送;

4)未設置TCP_CORK選項時,若所有發出去的包均被確認,或所有發出去的小數據包(包長度小於MSS)均被確認,則允許發送。

對於規則4),就是說要求一個TCP連接上最多隻能有一個未被確認的小數據包,在該分組的確認到達之前,不能發送其他的小數據包。如果某個小分組的確認被延遲了(案例中的40ms),那麼後續小分組的發送就會相應的延遲。也就是說延遲確認影響的並不是被延遲確認的那個數據包,而是後續的應答包。

tcp默認使用nagle演算法,最大限度的進行緩存。

優點 :避免網路中充斥著許多小數據塊,降低網路負載,減少網路擁塞,提高網路吞吐

缺點 :客戶端的延遲會增加,實時性降低,不適合延時要求盡量小的場景;且對於大文件傳輸這種場景,會降低傳輸速度。

用TCP_NODELAY選項可以禁止Negale 演算法。此時,應用程序向內核遞交的每個數據包都會立即發送出去。需要注意的是,雖然禁止了Negale 演算法,但網路的傳輸仍然受到TCP確認延遲機制的影響。

TCP在接收到對端的報文後,並不會立即發送ack,而是等待一段時間發送ack,以便將ack和要發送的數據一塊發送。當然ack不能無限延長,否則對端會認為包超時而造成報文重傳。linux採用動態調節演算法來確定延時的時間。

TCP在何時發送ACK的時候有如下規定:

優點 :減少了數據段的個數,提高了發送效率

缺點 :過多的delay會拉長RTT(往返時延)

可以通過TCP_QUICKACK這個選項來啟動快速ACK:

所謂的CORK就是塞子的意思,形象地理解就是用CORK將連接塞住,使得數據先不發出去,等到拔去塞子後再發出去。Cork演算法與Nagle演算法類似,也有人把Cork演算法稱呼為super-Nagle。Nagle演算法提出的背景是網路因為大量小包小包而導致利用率低下產生網路擁塞,網路發生擁塞的時候性能還會進一步下降,因此Nagle演算法通過ACK確認包來觸發新數據包的發送(ACK確認包意味著對端已經接收到了一個數據包,即有一個數據包已經離開中間網路,此時可以在向中間網路注入一個數據包塊,這稱呼為self-clocking)。Cork演算法則更為激進,一旦打開Cork演算法,TCP不關注是否有收到ACK報文,只要當前緩存中累積的數據量不足以組成一個full-sized數據包就不會將數據包發出,直到一個RTO超時後才會把不滿足一個full-sized的數據包發出去(實際上是通過一個persist timer來設置的這個RTO定時時間,persist timer超時的時候就會強制發送)。

linux中可以通過TCP_CORK選項來設置socket打開Cork演算法。TCP_NODELAY選項和TCP_CORK選項在linux早期版本是互斥的,但目前最新的linux版本已經可以同時打開這兩個選項了,但是TCP_CORK選項的優先順序要比TCP_NODELAY選項的優先順序要高。

Nagle演算法和CORK演算法非常類似,但是它們的著眼點不一樣,Nagle演算法主要避免網路因為太多的小包(協議頭的比例非常之大)而擁塞,而CORK演算法則是為了提高網路的利用率,使得總體上協議頭佔用的比例盡可能的小.如此看來這二者在避免發送小包上是一致的,在用戶控制的層面上,Nagle演算法完全不受用戶socket的控制,你只能簡單的設置TCP_NODELAY而禁用它,CORK演算法同樣也是通過設置或者清除TCP_CORK使能或者禁用之,然而Nagle演算法關心的是網路擁塞問題,只要所有的ACK回來則發包,而CORK演算法卻只關心內容,在前後數據包發送間隔很短的前提下(很重要,否則內核會幫你將分散的包發出),即使你是分散發送多個小數據包,你也可以通過使能CORK演算法將這些內容拼接在一個包內,如果此時用Nagle演算法的話,則可能做不到這一點.

優點 :提高網路的利用率
缺點 :對實時性有影響

使用TCP_CORK參數進行配置

⑥ 為什麼在WINDOWS下分的分區在LINUX下不能用

在一部電腦上裝有Linux和Windows的用戶,可能需要在Linux中用到包括軟盤、光碟以及Windows分區中的文件,如當你在Windows操作系統中上網,卻下載了Linux的應用軟體的時候。下面我就向大家詳細介紹這方面的知識和具體的應用。
一、裝載(mount)
(一)准備知識
在Linux系統中想要使用軟碟機的話,要先把它們裝載到系統中,裝載指令mount的格式如下:
mount -t 文件系統類型 設備文件名 裝載目錄
1.文件系統類型
文件系統類型一般來說就是分區格式,依操作系統的不同而不同。下面將Linux系統支持的文件系統類型擇要分列如表一:
2.設備文件名
在Linux系統中,各個驅動器設備的命名和Windows中的規則(如A:、C:等)有很大的區別。所有的系統硬體設備都可以在/dev目錄下找到對應的設備文件名。例如/dev/mouse就用來表示系統中的滑鼠。磁碟驅動器的各個不同分區所對應的設備文件名列表如表二:
假設第一個IDE硬碟驅動器被分成數個分區,通常,第一個分區可以肯定其設備文件名為/dev/hda1,但其它分區的設備文件名就不是可以依次類推得到的(特別是當用戶使用了諸如PTM之類的磁碟分區工具的時候)。如果你想要知道硬碟各分區所對應的設備文件名,可以在控制台下執行cfdisk的指令,則各分區對應的設備文件名就可以一目瞭然了。
3.裝載目錄
通常我們都會在/mnt目錄下面為需要裝載的磁碟驅動器創建一個目錄,不過這並不意味著它們不可以被裝載於其它未被使用的目錄中。再者,所謂裝載目錄,並不是將被裝載的磁碟驅動器整個復制到本地,而僅僅是在本地提供一個裝載點用以聯系其它需要裝載的磁碟驅動器。
Linux系統對字元的大小寫是敏感的,但是在Windows中就不是這樣。而當你裝載一個Windows系統中的驅動器後,對其上的文件操作時,字元的大小寫就變得不敏感了,這意味著用戶不可以在裝載的Windows驅動器的同一目錄中建立這么兩個文件:ABC.TXT和abc.txt,因為在Windows系統中,它們代表同一個文件。
(二)裝載實例
1.裝載軟盤
首先在/mnt目錄下為軟磁碟創建一個目錄floppy(有時Linux系統在安裝的時候已經為你做了這一步):
mkdir /mnt/floppy
接著用裝載指令將軟盤中的內容裝載到這一目錄中:
mount -t msdos /dev/fd0 /mnt/floppy
此後你就可以在/mnt/floppy下完全訪問到軟磁碟中的內容了。當然你亦可以用vfat這一文件系統類型代替msdos以使你能正確訪問到軟盤上的長文件名字,或者是用ext2代替它以使你可以訪問到Linux文件格式的軟盤。
2.裝載FAT 32格式的C盤
在/mnt目錄下為之創建一個目錄winc(winc以及其他的裝載目錄是筆者的假設,你可以用自己喜歡的其他合法字元去命名這些目錄):
mkdir /mnt/winc
用裝載指令將C盤內容裝載入該目錄:
mount -t vfat /dev/hda1 /mnt/winc
3.裝載光碟
在/mnt目錄下為你的光碟驅動器創建一個目錄cdrom(有的Linux系統安裝時已為你完成了這件事):
mkdir /mnt/cdrom
如果你的光碟驅動器安裝在primary slave上,設備文件名就是/dev/hdb;如果安裝在secondary master上,設備文件名就是/dev/hdc。假設你的光碟驅動器掛在secondary master,就用下面的裝載指令:
mount -t iso9600 /dev/hdc /mnt/cdrom
由於Linux版本的不同,你所用的系統或者會使用這樣的指令來裝載光碟:
mount /dev/cdrom
或mount /mnt/cdrom
二、卸載(umount)
如果你已經用指令將軟盤裝載進相應目錄,就不要直接將它們從軟碟機中取出來,否則可能會導致信息丟失;已經裝載的光碟驅動器更是會令面板上的彈出鍵暫時失效以阻止你將光碟直接取出。
在你取出它們之前,首先要確定已經沒有用戶對它們進行訪問操作,包括沒有工作窗口處在該磁碟驅動器被裝載的目錄。卸載指令的格式如下:
umount 卸載目錄名
如用戶想要卸載軟盤,可以用如下指令:
umount /mnt/floppy
三、進階使用
(一)為裝載指令增加簡捷的形式
用戶可以在系統的配置文件/etc/fstab中指定一些常用的需要裝載的驅動器,以便用更簡捷的指令來裝載它們,下面給出一個添加Windows系統的C盤進配置文件的例子:用文件編輯工具vi(也可以用其它你熟悉的文件編輯工具)打開/etc/fstab,我們會看到系統已經為根目錄「/」、軟磁碟驅動器、光碟驅動器等指定了文件系統類型和設備文件名以及裝載目錄(可能會因為所用的Linux版本不同,被指定的驅動器會有出入,不過用戶可以參照下面的例子做出改動)。你既可以改變它們的預設值,也可以在其中添加新的驅動器。用箭頭將游標移到最後一行,將下面一行加入文件:
/dev/hda1 /mnt/winc vfat defaults 0 0
如果還想裝載硬碟內的其它分區,可以依次加入。完成後保存文件並退出。不要忘記相應的創建目錄/mnt/winc。此後你就可以用如下指令裝載Windows系統的C盤了:
mount /mnt/winc
(二)啟動時自動裝載磁碟驅動器
用戶可能會希望系統在啟動時可以將你慣用的磁碟驅動器(如硬碟中的Windows分區或者是光碟驅動器)自動裝載,以減輕每次啟動後都要手動裝載的麻煩。你可以用以下方法實現自動裝載的功能:
用文件編輯工具打開/etc/fstab,將剛才我們加入的那一行中的defaults改成auto,如:
/dev/hda1 /mnt/winc vfat auto 0 0
對於其它想在啟動時就裝載的磁碟驅動器,都可以將defaults改成auto。需要注意的是,對於硬碟上的Linux分區(包括ext2和swap)並不需要作出這樣的改動。
重新啟動系統以後,在/mnt/winc目錄下,你就可以看到系統在啟動時就裝載好的Windows系統的C盤了。
四、使用Mtools
在Linux中想要共享Windows系統資源,除了上面介紹的裝載(mount)命令之外,還有一組名為Mtools的軟體包可以實現這一功能。和大多數實用工具一樣,Mtools軟體包亦是Linux系統默認的安裝套件。你可以在http://mtools.ltnb.lu/下載到它的最新版本mtools-3.9.7.tar.gz。
(一)Mtools命令
對於熟悉DOS命令的用戶來說,Mtools命令會讓他們感覺到像回到了DOS的世界。在下面的表格中我們可以看出它們有多麼相似:
很顯然,Mtools命令是簡單地在DOS命令前加上了一個m前綴,功能還是和在DOS下一樣的。須要注意的是,更改目錄路徑在DOS命令中可以有cd和chdir兩種命令格式,但是在Mtools中只有mcd一種格式。類似的在Mtools中沒有對應的命令還有mkdir、rmdir、rename等等。
(二)mtools.conf文檔的配置
因為Mtools是一個模擬DOS命令的軟體包,所以它也保存著DOS系統下的磁碟驅動器概念。Mtools不但可以實現A盤 、B盤、 C盤的概念,對於一些特殊驅動器(如ZIP驅動器)更有專門的命令(mzip)以讓用戶方便地進行操作。在默認的環境下,A盤和B盤分別對應著兩個軟盤驅動器(如果有的話),N盤則對應著DOSMU啟動盤的鏡像文件。
我們可以通過修改/etc/mtools.conf文檔來改變默認的配置,當然在做出修改之前你仍要對Linux下的設備文件名有相當的認識才行(請參考上一期本版有關設備及其文件名的介紹)。假設你的機器有一個1.44MB軟碟機(A),硬碟掛在第一個IDE介面的主位置上,在第一個分區(C盤)中安裝有Windows操作系統,光碟機掛在第二個IDE介面的主位置上(D盤),以及SCSI盤等,則可以對mtools.conf文檔簡單配置如下:
mtools.conf
drive a: file=〃/dev/fd0〃 exclusive 1.44m
drive c: file=〃/dev/hda1〃
drive d: file=〃/dev/hdc〃
drive X: file=〃/dev/rdsk/c0t5d0s2〃 partition=4 scsi=1 nodelay
(三)Mtools命令的使用
Mtools的命令系統和DOS有很多相似之處,比如在命令後面可以加不同的參數以實現更為豐富的功能(Mtools命令的參數使用方法是在命令後面加「-<參數>」,你可以把它想像成用「-」代替了DOS命令使用的「/」),可以使用通配符「?」和「*」。更為方便的是,使用Mtools不需要事先裝載(mount)和事後卸載(umount)。
下面我們以目錄列表命令mdir為例作說明(想知道其它命令的使用格式和更多的可用參數可以用man 命令查看相關幫助系統)。mdir的功能是對DOS目錄和其中的文檔進行列表操作。命令格式如下:
mdir [-/] [-f] [-w] [-a] [-X] msdosfile [msdosfile]
各命令參數的功能分述如下:
/:輸出當前路徑下的所有目錄和文檔,相當於DOS命令dir中的「s」參數;
f:列表時不嘗試計算當前分區的自由空間,對於大硬碟來說,這樣做可以節省一些讀入和掃描分區表(FAT)的時間;
w:列表時在一行中顯示多個目錄文檔,這種輸出格式將不顯示文檔的大小和創建時間,相當於DOS命令dir中的「w」參數;
a:列出隱藏的目錄文檔;
X:簡要列表, 列出路徑名而不列出其它附加的信息。
一些具體的應用實例:
1.列表A盤下的所有目錄文檔(不包括隱藏的目錄文檔)
mdir -/ a:
2.列表C盤Windows目錄下含有「abc」的目錄文檔
mdir c:/windows/*abc*
或者mdir c:\windows\*Abc*
註:在Mtools命令中,/和\是可以混用的。又因為列表的是DOS系統下的文檔,對大小寫並不敏感,所以「abc」和「Abc」在這里是等價的。而通配符「*」的用法和DOS命令亦有所不同。
五、在Windows系統中共享Linux系統的文檔
無論對於剛接觸Linux的新手還是對之已經熟悉的高手,恐怕都免不了想在Windows系統中調閱Linux系統的文檔。這可以使用在Windows系統下觀看Linux分區的小軟體(如fsdext2等)。這里再向各位推薦兩種可以實現這種功能的小軟體。
(一)Linuxindos
Linuxindos是一個不到500KB的小程序,筆者找到的版本是Beta 0.9的DEMO版,用戶可以在http://best.163.com/~linux/soft/下載試用。程序不需安裝就可以在Windows系統下運行,使用也非常簡單。
在Windows系統下將linuxindos.zip解壓到硬碟目錄,用戶就會看到一個帶著企鵝圖標的可執行程序LiD95Demo.exe。啟動程序後,會出現一個介面非常簡單的窗口,當用戶挑選一個含有Linux系統文檔的磁碟驅動器以後,Linux分區中的所有文檔就會顯示出來,左邊窗口列出的是Linux分區中的目錄,而右窗口就列出了目錄內的文檔,感覺就像在Windows的資源管理器中一樣。
(二)Explore2fs
這是一個更為小巧的自由軟體,大小約308KB,用戶也可以在http://best.163.com/~linux/soft/下載使用。正如它的名字一樣,這是一個有著類似資源管理器窗口的程序,通過它你可以讀取Linux系統下的分區。和Linuxindos一樣,Explore2fs的主視窗亦分為左右兩個,左邊顯示的是Linux中的目錄,而右邊顯示的就是目錄中的文檔了,可以簡單地將右邊視窗中的文檔直接拖到Windows系統分區中。
在右邊視窗中選擇好文檔後,按下滑鼠右鍵可以選擇相應的操作,「Export file」是直接導出文檔,而「Export to Text」則是除去文檔的分隔符後導出和TEXT兼容的文本文檔。 (廣東 念青)

⑦ linux 按天壓縮並切割日誌

1、linux 自帶的 logrotate 命令
2、定義切割文件相關信息

/var/log/nginx/*.log {
daily #按天打包
rotate 180 #保存周期為180以內的,超過180天的則刪除
missingok
notifempty
dateext
compress
nodelaycompress
sharedscripts
postrotate
/etc/init.d/nginx reload
endscript
}
3、crontab 設置一個定時任務

59 23 * * * /usr/sbin/logrotate -f /var/logrotate/nginx >> /tmp/logrotate.log

閱讀全文

與linuxnodelay相關的資料

熱點內容
ascii碼是編譯的時候用嗎 瀏覽:779
壓縮機感應包可以通用嗎 瀏覽:410
方舟伺服器怎麼發布到搜索列表 瀏覽:270
xml防反編譯 瀏覽:239
數據傳輸加密系統技術方案 瀏覽:842
程序員沒有準備去面試 瀏覽:4
51單片機usb滑鼠 瀏覽:879
qq伺服器的ip地址查詢 瀏覽:112
java仿qq聊天 瀏覽:400
解壓的ipa重新打包 瀏覽:142
程序員那麼可愛vip版 瀏覽:239
程序員怎麼升職 瀏覽:243
圖形化命令按鈕vb 瀏覽:987
vcu盤加密怎麼設置 瀏覽:414
如何加密備份微信聊天記錄 瀏覽:528
安卓手機如何模擬鍵盤 瀏覽:931
查看dns地址命令 瀏覽:768
android錄屏工具 瀏覽:841
成都互動直播系統源碼 瀏覽:955
usb藍牙android 瀏覽:409