A. 如何清空linux中dns緩存
Linux下DNS緩存實現通常有兩種方式:
一種是用DNS緩存程序NSCD(name service cache daemon)負責管理DNS緩存。
一種實現DNS緩存則是用Bind來架設Caching Name Server來實現。
如果是清除NSCD上的Cache,可重新啟動NSCD服務來達成清除DNS Cache的效果。用這個命令:
# service nscd restart
或是
#/etc/init.d/nscd restart
如果是清除BIND伺服器上的CACHE,用這個命令:
# rndc flush
如果你的DNS伺服器是用dnsmasq實現的,用下面這個命令:
$ sudo /etc/init.d/dnsmasq restart
註:DNSmasq是一個輕巧的,容易使用的DNS服務工具,它可以應用在內部網和Internet連接的時候的IP地址NAT轉換,也可以用做小型網路的DNS服務。
B. linux系統定期執行清除緩存的命令
1 先寫一個腳本存為一個文件,比如 clearmem.sh
#!/bin/bash
sync
echo 3 > /proc/sys/vm/drop_caches
2 然後給這個腳本加一個可執行許可權
chmod +x chearmem.sh
3 先試試運行一下看看內存釋放沒有,free -m
sh clearmem.sh
free -m
4 最後創建一個計劃任務
crontab -e
加如下內容,比如每天1點清理一次
00 1 * * * sh /xxx/路徑/clearmem.sh
C. linux下清理內存以及swap
第一步:先執行sync命令
#sync
sync命令用於強制被改變的內容立刻寫入磁碟,更新超塊信息,以防止釋放,sync命令則可用來強制將內存緩沖區中的數據立即寫入磁碟中。
第二步:清理linux內存緩存
#echo 3 > /proc/sys/vm/drop_caches
一般系統是不會自動釋放內存的
關鍵的配置文件/proc/sys/vm/drop_caches。這個文件中記錄了緩存釋放的參數,默認值為0,也就是不釋放緩存。他的值可以為0~3之間的任意數字,代表著不同的含義:
0 – 不釋放
1 – 釋放頁緩存
2 – 釋放dentries和inodes
3 – 釋放所有緩存
此指令輸入立即生效,意在釋放所有緩存。
第三步:關閉swap,再開啟swap
(如果只是清理swap,第二部可以不用進行操作,因為操作了第二步關閉swap時會使用更長的時間)
#swapoff -a 這一步因為是後台 在一點一點的釋放,如果配置的swap超大,這里就等待得超久一些
#swapon -a 再開啟
linux什麼時候開始使用虛擬內存(swap)
A.[root@wenwen ~]# cat /proc/sys/vm/swappiness
60
上面這個60代表物理內存在使用60%的時候才會使用swap
swappiness=0的時候表示最大限度使用物理內存,然後才是 swap空間,
swappiness=100的時候表示積極的使用swap分區,並且把內存上的數據及時的搬運到swap空間裡面。
通常情況下:
swap分區設置建議是內存的兩倍 (內存小於等於4G時),如果內存大於4G,swap只要比內存大就行。另外盡量的將swappiness調低,這樣系統的性能會更好。
B.修改swappiness參數
臨時性修改:
[root@wenwen ~]# sysctl vm.swappiness=10
vm.swappiness = 10
[root@wenwen ~]# cat /proc/sys/vm/swappiness
10
永久性修改:
[root@wenwen ~]# vim /etc/sysctl.conf
加入參數:
vm.swappiness = 35
然後在直接:
[root@wenwen ~]# sysctl -p
查看是否生效:
cat /proc/sys/vm/swappiness
35
D. 如何在linux命令中刪除緩存
#清理Linux系統緩存
1
[root@oracle ~]# echo 1 > /proc/sys/vm/drop_caches
註:1>. /proc是一個虛擬文件系統,可以通過對它的讀寫操作作為與kernel實體間進行通信的一種手段。也就是說可以通過修改/proc中的文件,來對當前kernel的行為做出調整。也就是說我們可以通過調整/proc/sys/vm/drop_caches來釋放內存。
0 – 不釋放
1 – 釋放頁緩存
2 – 釋放文件節點緩存和目錄項緩存
3 – 釋放所有緩存
[root@oracle ~]# sysctl -p
#查看剩餘內存
[root@oracle ~]# free -m
total used free shared buffers cached
Mem: 3383 1952 1431 0 1 1136
-/+ buffers/cache: 814 2568
Swap: 1983 195 1788
E. linux Suse 中BOOTPROTO=『dhcp』 dhcp為什麼刪不掉
Redhat使用dhcpd進程提供DHCP服務,啟動時dhcpd自動讀它的配置文件/etc/dhcpd.conf。dhcpd將客戶的租用信息保存在/var/lib/dhcp/dhcpd.leases文件中,該文件不斷被更新,從這裡面可以查到IP地址分配的情況。
dhcpd為了向一個子網提供服務,需要知道子網的網路地址和網路掩碼,並且還要知道地址分配的范圍,下面給出一個簡單的dhcpd.conf文件:
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.10 192.168.100.253;
}
此例中,dhcpd將給192.168.100.0網路分配192.168.100.10到192.168.100.253的IP地址。
租期時間可以從0秒到無限長,可以根據需要來定。預設的租期時間為一天,即86400秒。可以為主機定義兩個租期長度:
default-lease-time 默認租期時間;
max-lease-time 用戶可以獲得的最長租期時間。
下面的配置將預設的租期時間設置為10分鍾,最長租用時間為1小時:
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.10 192.168.100.253;
default-lease-time 600;
max-lease-time 3600;
}
DHCP還可以向客戶提供更多的參數,這些參數可以用option來指定,例如:
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.10 192.168.100.253;
default-lease-time 600;
max-lease-time 3600;
option subnet-mask 255.255.255.0;
option routers 192.168.100.254; 默認路由
option domain-name-servers 202.102.134.68; DNS伺服器
}
現在大家對DHCP配置應該有個了解了,其實過程就是這么簡單,中間就隔了一層窗戶紙。
實際演練
接下來給大家一個示例,把我的redhat9.0配置成一台DHCP伺服器。
vi /etc/dhcpd.conf
配置後,我的機器的該文件內容如下(注釋的部分都已經刪除掉了,至於原文,大家可以對照/usr/share/doc/
dhcp-3.0pl1/dhcpd.conf.sample文件):
[root@rh9 test]# more /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
subnet 192.168.0.0 netmask 255.255.255.0 {
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option domain-name-servers
202.96.199.133, 202.96.133.134;
range dynamic-bootp 192.168.0.1 192.168.0.255;
default-lease-time 21600;
max-lease-time 43200;
}
這兒我解釋一下配置部分,首先subnet定義了網路的地址,然後option routers定義了網關地址;subnet-mask定義子網掩碼;broadcast-address定義廣播地址;domain-name-servers定義DNS NAMESERVER的地址;dynamic-bootp是給客戶端分配的地址,定義的是192.168.0.1-- 192.168.0.255整個網段地址;最後2行是講分配出的地址的預設租期時間設置為10分鍾,最長租用時間為1小時。這樣,一個DHCP伺服器就配置好了。
我們可以測試一下結果:在另外一個redhat linux7.2上,把IP設置成DHCP主機的IP地址,通過netconfig命令配置。
檢查配置:
[root@rh72 root]# more /etc/sysconfig/ network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
[root@rh72 root]#
確定網卡已經是DHCP的了。
[root@rh72 root]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:A3:C6:71
inet addr:192.168.0.254 Bcast:192.168.0.255 Mask:255.255.255.0
查看地址,發現ETH0已經分配了一個254的地址,說明DHCP伺服器配置成功。
小結
至此,我們已經完成了一台Linux DHCP伺服器的安裝和配置工作。在實際的使用過程中,上述操作步驟應該可以滿足一般應用的需求,但是我們還需要經常研究具體的命令參數,讓DHCP伺服器能更好地為我們服務。
另外,站長團上有產品團購,便宜有保證
F. linux 垃圾文件清理
1,sudo apt-get autoclean
sudo apt-get clean
sudo apt-get autoremove
這三個命令主要清理升級緩存以及無用包的
2,清理opera/firefox的緩存文件:
ls ~/.opera/cache4|xargs rm -f
ls ~/.mozilla/firefox/*.default/Cache|xargs rm -f
3,清理Linux下孤立的包:
圖形界面下我們可以用:gtkorphan
sudo apt-get install gtkorphan -y
終端命令下我們可以用:deborphan
sudo apt-get install deborphan -y
4,刪除多餘的內核:
打開終端敲命令:dpkg --get-selections|grep linux
有image的就是內核文件;
刪除老的內核文件:
sudo apt-get remove 內核文件名 (例如:linux-image-2.6.27-2-generic)
內核刪除,釋放空間了,應該能釋放130-140M空間。
最後看看當前內核:uname -a
5,清空某個目錄下所有log日誌:
for i in `ls *.log*`
do
cat /dev/null >$i
done
G. 如何清除DHCP緩存
如果是2000或XP以上系統,在開始-運行中輸入 cmd,回車後彈出命令窗口,接著輸入以下命令:ipconfig /flushdns ,回車運行完後,DNS緩存就被清除了. 你可以使用ipconfig /displaydns查看DNS緩存
H. linux下清理dns 緩存
首先我們要了解,dns查詢的基本邏輯和緩存的存在位置
如圖所示,基本邏輯為:
客戶端 - 本機器dns解析器(如host,dnsmasq)- 本地dns伺服器(比如家庭路由器)- 網路dns伺服器
為了加速查詢,在解析器和伺服器上都有緩存在,一般而言我們要清理的是本機器上的dns緩存
顯然,我們必須首先了解本地機器用的是什麼解析器,可以通過看哪個進程占據了53埠來查詢,因為53埠是dns伺服器埠。
可以通過以下指令:
分別會下列結果
針對不同的解析器
可以用不同的命令清理
針對system-resolved:
同時為了驗證dns緩存真的被清理了,可以用命令來查看緩存
針對dnsmasq:
參考:
https://devconnected.com/how-to-flush-dns-cache-on-linux/
I. 如何在 Linux/Unix/Mac 下清除 DNS 查詢緩存
Linux和Unix提供了不同的方法來清除緩存。Linux可以運行 nscd 或者 BIND 或者 dnsmasq 作為名稱服務緩存守護進程。
Nscd 會緩存libc發起的名稱服務的請求。如果把檢索NSS數據看做很慢,那麼nscd能夠顯著加快連續訪問同一數據的速度,並能提高整個系統的性能。只需重啟nscd即可刷新緩存:
$ sudo /etc/init.d/nscd restart
或
# service nscd restart
或
# service nscd reload
Mac下用root用戶輸入下面的命令:
# dscacheutil -flushcache
或者
$ sudo dscacheutil -flushcache
如果你正在使用OSX 10.5 或者更早的版本,嘗試使用下面的命令:
lookupd -flushcache
J. 如何清除linux下DNS緩存
如果是清除NSCD上的Cache,可重新啟動NSCD服務來達成清除DNS Cache的效果。用這個命令:
# service nscd restart
或是
#/etc/init.d/nscd restart
如果是清除BIND伺服器上的CACHE,用這個命令:
# rndc flush
如果你的DNS伺服器是用dnsmasq實現的,用下面這個命令:
$ sudo /etc/init.d/dnsmasq restart
另外,重啟也行。