服務管理:
手動啟動或關閉服務,與開機自動自動啟動服務無關
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
刪除一個服務(--只是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 --查看壓縮包的內容
--使用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
本文出自 「linuxart」 博客,請務必保留此出處http://linuxart.blog.51cto.com/686203/843925
[火星人 ] linux08-服務與解壓縮已經有463次圍觀