你曾经是否想要把一个大文件分割成多个小文件?比如一个5gb日志文件,我们需要把它分成多个小文件,这样我们才有可能使用普通的文本编辑器读取它。有时我们需要传输20gb的大文件到另一台服务器,这就需要我们把它分割成多个文件,这样便于传输数据。下面我们来通过五个实例来讲解它。
继续阅读Linux split命令实例
CentOS 源码编译安装Pure-FTPd(配置系统用户登录)
上次我们介绍了yum安装PureFTPd的方法,这次我们介绍通过编译源码来安装PureFTPd。对于需要定制功能的朋友非常的有必要。
继续阅读CentOS 源码编译安装Pure-FTPd(配置系统用户登录)
CentOS 5安装ISPConfig 3主机控制面板详细教程
ISPConfig 3是Linux的一个开源主机控制面板。ISPConfig 3能够通过一个控制面板管理多台服务器。
继续阅读CentOS 5安装ISPConfig 3主机控制面板详细教程
解决screen状态为Attached连上不的问题
当你挂起screen,下次想连上screen的时候,有时候会出现screen session的状态为Attached而怎么连也连不上的情况。下面给出解决方法。
继续阅读解决screen状态为Attached连上不的问题
给ZPanel添加文件管理器
上次介绍安装ZPanel的教程,安装好后,默认没有文件管理器,只能在后台添加FTP帐号,然后再通过FTP软件登录管理文件,非常的不方便,既然用了控制面板,何不把把文件管理器也添加进去呢。下面我们来看hostloc论坛中的ericls童鞋提供的方法,大家感谢他(她)吧。
继续阅读给ZPanel添加文件管理器
yum命令全集详解
- yum check-update 检查可更新的所有软件包
- yum update 下载更新系统已安装的所有软件包
- yum upgrade 大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级
- yum install <packages> 安装新软件包
- yum update <packages> 更新指定的软件包
- yum remove <packages> 卸载指定的软件包
- yum groupinstall <groupnames> 安装指定软件组中的软件包
- yum groupupdate <groupnames> 更新指定软件组中的软件包
- yum groupremove <groupnames> 卸载指定软件组中的软件包
- yum grouplist 查看系统中已经安装的和可用的软件组
- yum list 列出资源库中所有可以安装或更新以及已经安装的rpm包
- yum list <regex> 列出资源库中与正则表达式匹配的可以安装或更新以及已经安装的rpm包
- yum list available 列出资源库中所有可以安装的rpm包
- yum list available <regex> 列出资源库中与正则表达式匹配的所有可以安装的rpm包
- yum list updates 列出资源库中所有可以更新的rpm包
- yum list updates <regex> 列出资源库中与正则表达式匹配的所有可以更新的rpm包
- yum list installed 列出资源库中所有已经安装的rpm包
- yum list installed <regex> 列出资源库中与正则表达式匹配的所有已经安装的rpm包
- yum list extras 列出已经安装的但是不包含在资源库中的rpm包
- yum list extras <regex> 列出与正则表达式匹配的已经安装的但是不包含在资源库中的rpm包
- yum list recent 列出最近被添加到资源库中的软件包
- yum search <regex> 检测所有可用的软件的名称、描述、概述和已列出的维护者,查找与正则表达式匹配的值
- yum provides <regex> 检测软件包中包含的文件以及软件提供的功能,查找与正则表达式匹配的值
- yum clean headers 清除缓存中的rpm头文件
- yum clean packages 清除缓存中rpm包文件
- yum clean all 清除缓存中的rpm头文件和包文件
- yum deplist <packages> 显示软件包的依赖信息
当第一次使用yum 或yum 资源库有更新时,yum 会自动下载所有所需的he ade rs放置于 /var/cache /yum 目录下,所需时间可能较长。
还可以使用 yum info 命令列出包信息,yum info 可用的参数与 yum list 的相同。
yum 命令还可以使用 -y 参数用于用 ye s 回答命令运行时所提出的问题,比如 yum -y install vsftpd,这样在安装软件的时候就不用输入yes/y了
yum 命令工具使用举例
1、升级系统
- [root@localhost ~]#yum update
2、安装指定的软件包,我最喜欢用下面的命令
- [root@localhost ~]# yum -y install vsftpd
3、升级指定的软件包
- [root@localhost ~]# yum -y update mysql
4、卸载指定的软件包
- [root@localhost ~]# yum -y remore vsftpd mysql
5、查看系统中已经安装的和可用的软件组,对于可用的软件组,你可以选择安装
- [root@localhost ~]# yum grouplist
6、安装上一个命令中显示的可用的软件组中的一个软件组,神之编辑器-Emacs,大约安装了12个软件包
- [root@localhost ~]# yum -y groupinstall Emacs
7、更新指定软件组中的软件包
- [root@localhost ~]# yum -y groupupdate Emacs
8、卸载指定软件组中的软件包,对于Emacs,安装的时候安装了12个软件包,但是卸载的时候只卸载了4个软件包!
- [root@localhost ~]# yum -y groupremove Emacs
9、清除缓存中的rpm 头文件和包文件
- [root@localhost ~]# yum clean all
10、搜索相关的软件包
- [root@localhost ~]# yum -y search Emacs
11、显示指定软件包的信息
- [root@localhost ~]# yum info Emacs
和rpm -qi emacs显示的信息差不多,但不完全相同
12、查询指定软件包的依赖信息,emacs依赖的模块不少啊
- [root@localhost ~]# yum deplist emacs
13、列出所有以 yum 开头的软件包
- [root@localhost ~]# yum list yum*
14、列出已经安装的但是不包含在资源库中的rpm 包
- # yum list extras
最常用的还是第3,4命令
转自:http://www.myfreelinux.com/?p=50
linux rpm命令详细介绍
虽然现在N多人都使用yum去替代rpm了,但是rpm在一些特俗场合下还是有其作用的,比如查询跟验证已安装的rpm包,rpm全称Redhat Package Manager,是一种用于包的打包及安装工具,它包含在某些Linux分发版中,它生成具有.RPM扩展名的文件,与Dpkg类似。
继续阅读linux rpm命令详细介绍
如何让Putty正常显示中文
一般情况下,显示用Putty登录系统查看中文,会出现乱码的情况,那么如何设置才能让Putty正常地显示出中文呢,其它只需要设置一下Putty的编码为UTF-8就OK。
继续阅读如何让Putty正常显示中文
BIND DNS服务器的安装与主从DNS配置
BIND是一种开源的DNS(Domain Name System)协议的实现,包含对域名的查询和响应所需的所有软件。它是互联网上最广泛使用的一种DNS服务器,对于类UNIX系统来说,已经成为事实上的标准。下面我们主要学习利用BIND来实现主从dns,高速缓存DNS下次学习。
BIND安装
软件下载地址:http://www.isc.org/software/bind,目前最新版本是BIND 9.8.1-P1。
安装依赖:
- yum -y install gcc openssl-devel
开始安装bind.
- wget ftp://ftp.isc.org/isc/bind9/9.8.1-P1/bind-9.8.1-P1.tar.gz
- tar xzf bind-9.8.1-P1.tar.gz
- cd bind-9.8.1-P1
- ./configure –prefix=/usr/local/bind
- make && make install
执行完成后,bind已经安装到了/usr/local/bind目录。
配置主dns服务器
配置bind主要是两种文件,一是主配置文件named.conf,二是区域文件zone(包括正解析,反解析)。
在下面的配置中,我们的主dns服务器是ns1.qbtop.com 23.19.81.191,从dns服务器是ns2.qbtop.com 23.19.81.194(这两个dns都已经在godaddy注册好了)。
下面操作仅在主dns服务器23.19.81.191执行。
主配置文件named.conf
首先执行rndc-confgen -a生成/etc/rndc.key密钥文件。
- /usr/local/bind/sbin/rndc-confgen -a
- vi /usr/local/bind/etc/named.conf
写入如下内容:
- include "/usr/local/bind/etc/rndc.key";
- controls { inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { "rndckey"; }; };
- logging {
- channel default_syslog { syslog local2; severity notice; };
- channel audit_log { file "/var/log/bind.log"; severity notice; print-time yes; };
- category default { default_syslog; };
- category general { default_syslog; };
- category security { audit_log; default_syslog; };
- category config { default_syslog; };
- category resolver { audit_log; };
- category xfer-in { audit_log; };
- category xfer-out { audit_log; };
- category notify { audit_log; };
- category client { audit_log; };
- category network { audit_log; };
- category update { audit_log; };
- category queries { audit_log; };
- category lame-servers { audit_log; };
- };
- options {
- directory "/usr/local/bind/etc";
- pid-file "/usr/local/bind/var/run/bind.pid";
- transfer-format many-answers;
- interface-interval 0;
- allow-query { any; };
- };
- zone "qbtop.com" {
- type master;
- file "qbtop.com.zone";
- allow-transfer { 23.19.81.194; };
- };
- zone "81.19.23.in-addr.arpa" {
- type master;
- file "81.19.23.in-addr.arpa";
- allow-transfer { 23.19.81.194; };
- };
named.conf文件说明:
上面的named.conf文件包括三部分:key,controls,logging,options,zone。
logging:设置日志服务器和日志信息的发送地。
options:控制服务器的全局配置选项和为其它语句设置默认值
zone:定义一个域,比如正解析域和反解析域。
logging是定义日志的,不需要深究,主要是options和zone。
在options中:
directory “/usr/local/bind/etc”:定义bind的工作目录为/usr/local/bind/etc,配置文件中所有使用的相对路径,指的都是在这里配置的目录下。
pid-file “/usr/local/bind/var/run/bind.pid”:把bind程序运行的pid写入文件bind.pid。
transfer-format many-answers:使用更加有效的域传输格式many-answers。
allow-query { any; }:允许所有用户查询dns。
在zone中:
这里定义了两个zone,一个是正解析zone qbtop.com,一个是反解析zone 81.19.23.in-addr.arpa。
他们的参数基本相同:
type master:定义dns服务器为主dns。
file “qbtop.com.zone”:定义此zone的文件名。
allow-transfer { 23.19.81.194; }:允许向从dns 23.19.81.194传输dns数据。
唯一不同的是zone名称的定义,正解析zone名称的定义是受权的域名,可以是顶级域名,也可以是二级域名,或多级。反解析zone名称定义规定前部分ip倒着写。如ip 192.168.1.2,名称定义为1.168.192.in-addr.arpa。
正解析qbtop.com.zone
- vi /usr/local/bind/etc/qbtop.com.zone
写入如下内容:
- $TTL 3600
- @ IN SOA ns1.qbtop.com. hostmaster.qbtop.com. (
- 2012022301 ; Serial
- 3600 ; Refresh
- 900 ; Retry
- 3600000 ; Expire
- 3600 ) ; Minimum
- @ IN NS ns1.qbtop.com.
- @ IN NS ns2.qbtop.com.
- ns1 IN A 23.19.81.191
- ns2 IN A 23.19.81.194
- aaa IN A 23.19.81.191
- bbb IN A 23.19.81.191
文件说明:
$TTL 3600:指示为每个没有特殊TTL设置的RR给出了一个默认的TTL。
@ IN SOA ns1.qbtop.com. hostmaster.qbtop.com. (
2012022301 ; Serial
3600 ; Refresh
900 ; Retry
3600000 ; Expire
3600 ) ; Minimum
定义SOA记录,包括Zone的名字,一个技术联系人和各种不同的超时值。
@ IN NS ns1.qbtop.com.
@ IN NS ns2.qbtop.com.
设置两个ns记录ns1.qbtop.com和ns2.qbtop.com。
ns1 IN A 23.19.81.191
ns2 IN A 23.19.81.194
aaa IN A 23.19.81.191
bbb IN A 23.19.81.191
设置主机为ns1,ns2,aaa和bbb的A记录。
反解析文件81.19.23.in-addr.arpa
反解析zone可以不设置。
- vi /usr/local/bind/etc/81.19.23.in-addr.arpa
写入如下内容:
- $TTL 3600
- @ IN SOA ns1.qbtop.com. hostmaster.qbtop.com. (
- 2012022301 ; Serial
- 3600 ; Refresh
- 900 ; Retry
- 3600000 ; Expire
- 3600 ) ; Minimum
- @ IN NS ns1.qbtop.com.
- @ IN NS ns2.qbtop.com.
- 191 IN PTR ns1.qbtop.com.
- 194 IN PTR ns2.qbtop.com.
说明:
上部分是定义SOA记录,下部分是设置IP反解析。
如设置IP 23.19.81.191反解析成ns1.qbtop.com,23.19.81.194反解析成ns2.qbtop.com。
配置从DNS服务器
下面我们来配置从DNS服务器。配置从DNS服务器只需要配置主配置文件named.conf,zone文件不需配置,因为这是从主DNS服务器获取的。
首先建立目录slaves用来存放从主dns获取的zone文件。
- mkdir /usr/local/bind/etc/slaves
写入如下内容:
- logging {
- channel default_syslog { syslog local2; severity notice; };
- channel audit_log { file "/var/log/bind.log"; severity notice; print-time yes; };
- category default { default_syslog; };
- category general { default_syslog; };
- category security { audit_log; default_syslog; };
- category config { default_syslog; };
- category resolver { audit_log; };
- category xfer-in { audit_log; };
- category xfer-out { audit_log; };
- category notify { audit_log; };
- category client { audit_log; };
- category network { audit_log; };
- category update { audit_log; };
- category queries { audit_log; };
- category lame-servers { audit_log; };
- };
- options {
- directory "/usr/local/bind/etc";
- pid-file "/usr/local/bind/var/run/bind.pid";
- transfer-format many-answers;
- interface-interval 0;
- allow-query { any; };
- };
- zone "qbtop.com" {
- type slave;
- file "slaves/qbtop.com.zone";
- masters { 23.19.81.191; };
- };
- zone "81.19.23.in-addr.arpa" {
- type slave;
- file "slaves/81.19.23.in-addr.arpa";
- masters { 23.19.81.191; };
- };
文件说明:
从dns跟主dns主要的区别是zone的定义,type slave定义此dns服务器为从dns,masters { 23.19.81.191; }定义主dns的IP。
启动BIND
1、在启动BIND之前,我们需要执行/usr/local/bind/sbin/named-checkconf检查named.conf配置文件,和执行/usr/local/bind/sbin/named-checkzone zone名称 zone文件名,如/usr/local/bind/sbin/named-checkzone qbtop.com /usr/local/bind/etc/qbtop.com.zone。
然后调试模式启动bind,/usr/local/bind/sbin/named -g,g参数的意思是前台执行bind,这会输出启动的信息,发现没有严重的错误后,再把g参数删除重新以/usr/local/bind/sbin/named方式后台启动bind。
2、设置开机启动,在/etc/rc.d/rc.local中加入/usr/local/bind/sbin/named。
手动添加记录
1、直接添加删除或修改zone文件里的记录
2、执行rndc reload zone名称重载,如rndc reload qbtop.com
注意
1、主从同步的两台机器要在同一个时区,时间相差不要太大。
2、主的dns服务器在修改了正向解析文件跟反向分解析文件时,要修改相应的 serial(通常是加数值,这个值必须主的要大于从的,要不同步不了)
配置文件参考:http://www.bind.com/?path=dns
BIND9中文手册:http://devops.webres.wang/manual/BIND9-CHS.pdf
Linux判断CC攻击命令详解
查看所有80端口的连接数
- netstat -nat|grep -i "80"|wc -l
对连接的IP按连接数量进行排序
- netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n
查看TCP连接状态
- netstat -nat |awk ‘{print $6}’|sort|uniq -c|sort -rn
- netstat -n | awk ‘/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}’
- netstat -n | awk ‘/^tcp/ {++state[$NF]}; END {for(key in state) print key,"t",state[key]}’
- netstat -n | awk ‘/^tcp/ {++arr[$NF]};END {for(k in arr) print k,"t",arr[k]}’
- netstat -n |awk ‘/^tcp/ {print $NF}’|sort|uniq -c|sort -rn
- netstat -ant | awk ‘{print $NF}’ | grep -v ‘[a-z]’ | sort | uniq -c
查看80端口连接数最多的20个IP
- netstat -anlp|grep 80|grep tcp|awk ‘{print $5}’|awk -F: ‘{print $1}’|sort|uniq -c|sort -nr|head -n20
- netstat -ant |awk ‘/:80/{split($5,ip,":");++A[ip[1]]}END{for(i in A) print A,i}’ |sort -rn|head -n20
用tcpdump嗅探80端口的访问看看谁最高
- tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." ‘{print $1"."$2"."$3"."$4}’ | sort | uniq -c | sort -nr |head -20
查找较多time_wait连接
- netstat -n|grep TIME_WAIT|awk ‘{print $5}’|sort|uniq -c|sort -rn|head -n20
查找较多的SYN连接
- netstat -an | grep SYN | awk ‘{print $5}’ | awk -F: ‘{print $1}’ | sort | uniq -c | sort -nr | more