歡迎您光臨本站 註冊首頁

linux08-服務與解壓縮

←手機掃碼閱讀     火星人 @ 2014-03-08 , reply:0

服務管理:


手動啟動或關閉服務,與開機自動自動啟動服務無關
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

本文出自 「linuxart」 博客,請務必保留此出處http://linuxart.blog.51cto.com/686203/843925


[火星人 ] linux08-服務與解壓縮已經有463次圍觀

http://coctec.com/docs/linux/show-post-45747.html