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
另外,重启也行。