服务管理:
手动启动或关闭服务,与开机自动自动启动服务无关
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