服务管理:


手动启动或关闭服务,与开机自动自动启动服务无关
 service httpd start
 service httpd stop
 service httpd restart 

/etc/init.d/httpd restart
/etc/rc.d/init.d/httpd restart


  /etc/init.d/和/etc/rc.d/init.d 目录下存放的都是服务启动脚本
   --这两个目录是硬链接


[root@li ~]# vim /etc/init.d/httpd

#/bin/bash     --定义由bash去解析的脚本

# chkconfig: - 85 15
# description: Apache is a World Wide Web server.  It is used to serve \
#              HTML files and CGI.


手动修改服务开机自动启动或者不启动
命令
 chkconfig - updates and queries runlevel information for system services


[root@li ~]# chkconfig --list --查看服务开机在各个级别是否开机自动启动
NetworkManager  0:off   1:off   2:off   3:off   4:off   5:off   6:off
acpid           0:off   1:off   2:on    3:on    4:on    5:on    6:off
anacron         0:off   1:off   2:on    3:on    4:on    5:on    6:off
apmd            0:off   1:off   2:on    3:on    4:on    5:on    6:off


[root@li ~]# chkconfig --list |grep httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off


修改httpd服务开机后不自动启动
[root@li ~]# chkconfig httpd off
[root@li ~]# chkconfig --list |grep httpd
httpd           0:off   1:off   2:off   3:off   4:off   5:off   6:off


修改httpd服务开机后自动启动
[root@li ~]# chkconfig httpd on
[root@li ~]# chkconfig --list |grep httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off


可以针对特定的级别来设定开机后自动启动或者关闭
[root@li ~]# chkconfig httpd off --level 23
[root@li ~]# chkconfig --list |grep httpd
httpd           0:off   1:off   2:off   3:off   4:on    5:on    6:off


删除一个服务(--只是chkconfig命令看不到了)
[root@li ~]# chkconfig --del httpd
[root@li ~]# chkconfig --list |grep httpd

添加一个服务(相对于chkconfig --del)
[root@li ~]# chkconfig --add httpd
[root@li ~]# chkconfig --list |grep httpd
httpd           0:off   1:off   2:off   3:off   4:off   5:off   6:of 有两点要求:1, 服务脚本要存在于/etc/init.d或者是/etc/rc.d/init.d,还要有执行权限
    2, 就是要有 # chkconfig:
    # description:  这两行


--小实验:删除脚本里的chkconfig和description这两行,发现--del和--add的操作不被支持了

 

----------------------------------------

实例:一个服务脚本的自制过程
[root@li test]# vim /etc/init.d/test

#!/bin/bash

# chkconfig: 2345 30 70
# description: this is a test init programs

start () {
        echo "服务启动                   [OK]"
}

stop () {
        echo "服务关闭                   [OK]"
}

case "$1" in
        start )
                start ;;
        stop )
                stop ;;
        restart )
                stop
                start
                ;;
        * )
                echo "你只能用start|stop|restart"
esac

[root@li test]# chmod 755 /etc/init.d/test

[root@li test]# chkconfig --add test
[root@li test]# chkconfig --list |grep test
test            0:off   1:off   2:on    3:on    4:on    5:on    6:off


============================================================

 

------------------------------------------------------------

 

对于一个服务脚本,一般都有下面两行注释
# chkconfig: - 85 15 
 -   代表2345级别,如果要自定级别的话在这里可以用数字表示,例如:23 
 85  代表开机时启动的顺序号为85
 15  代表关机时关闭服务的顺序号为15
# description: Apache is a World Wide Web server.  It is used to serve \
#              HTML files and CGI.

                                

[root@li ~]# ll /etc/rc0.d/ --看一下 0级别的启动脚本
K01dnsmasq             K35vncserver           K87multipathd
K01setroubleshoot      K35winbind             K87portmap

 

[root@li ~]# ll /etc/rc5.d/ --对比一个5级别的启动脚本
K01dnsmasq             K89rdisc               S25pcscd
K02avahi-dnsconfd      K91capi                S26acpid
K02NetworkManager      S00microcode_ctl       S26apmd


k  代表kill  就是指开机不自动启动
s  代表start 就是指开机自动启动


=============================================================

图形配置服务开机自动启动或者关闭
命令

ntsysv - simple interface for configuring runlevels


默认是配置当前的level   

ntsysv  --level 35 用--level定义级别

 

 每个服务前去掉*就表示开机不自动启动
 
 按F1的话可以看到服务的描述,对应服务脚本里的description --在pts的终端上要按shift+f1

 就目前所学大概留下的服务network,portmap,sshd,syslog,vmware,gpm 


[root@li /]# chkconfig --list |grep 5:on | awk '{print $1}'
--使用此命令可以查看5级别会开机自动启动的服务名,$1是表示使用awk命令打印空格为分隔符的第一列


--一般在一台服务新安装完系统后,就应该根据业务需要,把不用的服务的开机自动启动给关掉,优化开机速度

 

================================================================


linux下的打包,压缩,和解压


压缩使文件更小,有利于网络传输,在传输大量小文件时,最好是打包压缩,速度较快

--包括网页浏览等各个方面,也包含了压缩功能;服务器压缩,浏览器解压缩来实现加快网页传输


压缩工具
tar (打包)     compress    gzip     bzip2

 

.rar   .zip   .iso 


compress  --老的压缩工具,现在已经很少使用


[root@li ~]# yum list|grep compress
This system is not registered with RHN.
RHN support will be disabled.
ncompress.i386                          4.2.4-47                  Server  

[root@li ~]# yum install ncompress --装这个包使用compress命令

man compress
compress,  uncompress,  zcat  -  compress and
       expand data (version 4.1)

 

 compress grub.conf  --直接压缩文件,源文件没了
 compress -d grub.conf.Z --解压
 uncompress grub.conf.Z
 compress -c grub.conf > grub.conf.Z --这样压缩并保留源文件

# file grub.conf.Z
grub.conf.Z: compress'd data 16 bits   --压缩文件类型,不能使用cat去查看内容,可以使用zcat grub.conf.Z来查看内容


--关于windows和linux的后缀名的问题
 windows里后缀名很重要,  如:一个word文档应该为.doc,如果你把后缀名改为.pdf。那么双击会用打开pdf的软件去打开它
 linux里后缀名可以随意,最好什么类型的文件就改成什么类型。它对运行不影响,但最好是使用file命令去确认它的类型

 

--gzip  使用广泛,用来替代compress,它能解压.Z    .gz   .zip  等格式的压缩包
 gzip grub.conf  --压缩
 zcat grub.conf.gz  --查看压缩包的内容
 gzip -d grub.conf.gz --解压
 gzip -c grub.conf > grub.conf.gz --压缩并保留源文件
 gzip -d grub.conf.Z


--使用unzip命令去解压.zip的包
       unzip  -  list,  test  and extract compressed
       files in a ZIP archive


unzip /share/soft/lamp/LAMP_source/PHPWind_GBK_6.3.2.zip -d /test
--小写d参数代表指定解压到哪里

 


bzip2

--bzip2  它用来替代gzip,拥有更好的压缩比率
 bzip2 grub.conf  --压缩
 bzcat grub.conf.bz2  --查看压缩包的内容
 bzip2 -d grub.conf.bz2  --解压
 bzip2 -c grub.conf > grub.conf.bz2 --压缩并保留源文件


[root@li test]# ll
-rw-------   1 root root   810 Apr 24 09:53 grub.conf
-rw-r--r--   1 root root   560 Apr 24 10:04 grub.conf.bz2
-rw-r--r--   1 root root   493 Apr 24 09:59 grub.conf.gz
-rw-r--r--   1 root root   614 Apr 24 09:55 grub.conf.Z

--上面看到压缩比率,gzip最小,但是应该是bzip2有更好的压缩比率,在大文件就可以体现出来


tar   打包

  对于目录的压缩,上面几个工具默认都是忽略

 gzip -r mplayer/ --这是把目录(包括子目录)下的所有文件都单独压缩
 gzip -rd mplayer/ --递归解压


一般来说,压缩目录,都是先打包,再压缩

 -c      打包
 -v 显示过程
 -f      接文件
 -j 调用bzip2进行压缩或者解压
 -z 调用gzip进行压缩或者解压
 -C 解压时指定解压的路径
 -t 查看包内容
 -x 解压


  tar cvf  mplayer.tar mplayer/

[root@li test]# time gzip -c mplayer.tar > mplayer.tar.gz

real    0m13.047s
user    0m12.770s
sys     0m0.217s


[root@li test]# time bzip2 -c mplayer.tar > mplayer.tar.bz2

real    0m56.495s
user    0m56.253s
sys     0m0.225s


[root@li test]# time tar cvfz mplayer.tar.gz mplayer/
real    0m14.533s
user    0m13.318s
sys     0m0.864s


[root@li test]# time tar cvfj mplayer.tar.bz2 mplayer/
real    0m58.509s
user    0m57.090s
sys     0m0.697s


--上面的实验可以看到bzip2压缩比gzip压缩需要更多的压缩时间,但压缩后,bzip2压缩的文件比较小(被压缩的文件越大越明显)


[root@li test]# tar -tf mplayer.tar.gz  |grep ass_fontconfig.h
--使用t参数,查看压缩包内压缩了哪些文件

 
  W能解压       无论.tar.gz还是.tar.bz2还是.tar
  都直接使用tar xvf   或  tar xf 来解压

[root@li test]# tar xf /share/soft/keepalived-1.1.20.tar.gz -C /usr/src/

--大写C参数指定解压路径

 


rar  --.rar类型在linux默认不支持,需要安装第三方软件


 /share/soft/rar/rarlinux-3.8.0.tar.gz

[root@li soft]# tar xvf /share/soft/rar/rarlinux-3.8.0.tar.gz -C /usr/src/


[root@li soft]# cd /usr/src/rar/


[root@li rar]# make  --直接make,没有configure文件,但已经有makefile了,所以直接make
mkdir -p /usr/local/bin
mkdir -p /usr/local/lib
cp rar unrar /usr/local/bin
cp rarfiles.lst /etc
cp default.sfx /usr/local/lib


 rar a etc.tar.rar etc.tar --压缩
 rar e etc.tar.rar   --解压


tar的特殊应用:

tar tvf etc.tar |grep fstab --查看压缩包的内容 用-t参数
tar xvf etc.tar etc/fstab --指定解压单一文件
tar cvf etc.3.tar  etc/ --exclude=etc/fstab    排除某些文件不打包
tar cvf etc.5.tar  etc/ --exclude=etc/fstab --exclude=etc/inittab 排除多个文件
tar cvf etc.6.tar  etc/ --exclude=etc/*.conf  支持通配符,排除有相似度的一批文件

 

tar cvf - etc/  |tar xvf -   -C /root/Desktop/ --使用管道来执行一些特殊操作


shell>  gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf -

shell> ln -s full-path-to-mysql-VERSION-OS mysql

 


练习:先建立一个/backup目录
实现每天开机用root登录系统,就自动在把前一天/var/log下的日志(除了/var/log/btmp,/var/log/wtmp和/var/log/lastlog)打包,并使用bzip2压缩到/backup目录下,并记录日志
 要求格式都为(年-月-日.xxx);如2011-07-06.xxx


[root@li test]# tar cvfj /backup/`date -d yesterday +%Y-%m-%d`.log.tar.bz2  /var/log  --exclude=/var/log/btmp --exclude=/var/log/wtmp --exclude=/var/log/lastlog

[root@li test]# tar cvfj /backup/`date -d yesterday +%Y-%m-%d`.log.tar.bz2  /var/log  --exclude=/var/log/btmp,/var/log/wtmp,/var/log/lastlog


--再把上面的命令放到环境变量文件里

 

==============================================================

netstat -nt
netstat -ntl
netstat -ntlup

-n  以数字显示
-t  显示tcp连接
-l   显示监听
-u   显示udp连接
-p    显示连接的program 程序

[root@li ~]# netstat -ntlup |grep 80
tcp        0      0 :::80                       :::*        LISTEN      2868/httpd 

# netstat  -nt |grep 5900  --查看连接我的vnc的信息
# netstat  -nt |grep 5900 |wc -l   --查看连接我的vnc有多少个连接


# vim /etc/services   --nestat -ntl查看的是你现在电脑上开放和监听哪些端口,如果端口不熟悉,可以对照services这个文件去查看

 

 yum install nmap

    nmap - Network exploration tool and security
       / port scanner

 

[root@li test]# nmap -e eth1 2.2.2.97   --小写e参数指定你自己扫描的网卡号

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2011-07-06 16:39 CST
Interesting ports on 2.2.2.97:
Not shown: 1678 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
111/tcp open  rpcbind
MAC Address: D8:5D:4C:6D:FA:15 (Unknown)

Nmap finished: 1 IP address (1 host up) scanned in 14.212 seconds

 

 

tcpdump   

 tcpdump - dump traffic on a network

 参数的分类:
 协议 tcp udp arp icmp
 数据内容 端口,Ip  : 
  src port 80 --源
  dst port 22 --目标

 tcpdump tcp dst port 80 -n
 tcpdump -i eth1 tcp dst port 80 -n   --小写i参数指定哪个网卡
 


 关系参数 :  !  and   or

 tcpdump tcp dst port 80 -n and src 10.1.1.21
 tcpdump tcp dst port 80 -n and ! src 10.1.1.21
 tcpdump tcp dst port 80 -n and  host  10.1.1.21


 -vv <---把数据包的详细内容都记录下来
 -w <---把数据保存到某个文件


捕捉所有访问本机ftp服务器的连接,并且数据包是来自10.1.1.35
tcpdump tcp dst port 21 and src 10.1.1.35 -n


捕捉所有来自10.1.1.1的arp协议的数据包,并且捕捉的显示要求输出以太网数据侦的信息 -e 
tcpdump arp and src 10.1.1.1 -n -e


捕捉所有本机web服务回应10.1.1.96的数据包
tcpdump tcp src port 80 and dst 10.1.1.96

 

wireshark
 [root@li old]# yum install wireshark* -y