linux基礎運維

一、系統常用的配置文件位置、和語法格式

1.常用的網絡配置文件

/etc/sysconfig/network     網絡設置(主機名也在這個文件配置 HOSTNAME=localhost.localdomain)

NETWORK=yes/no 表示網絡是否被配置;

HOSTNAME=hostname hostname 表示服務器的主機名;

GATEWAY=gw-ip gw-ip 表示網絡網關的IP 地址;

FORWARD_IPV4=yes/no 是否開啓IP 轉發功能;

/etc/hosts IP 地址和主機名之間的映射還,包括主機名的別名IP

/etc/services 服務名和端口號之間的映射

/etc/host.conf 文件指定如何解析主機名

/etc/nsswitch.conf 用於管理系統中多個配置文件查找的順序

/etc/resolv.conf 主機的域名搜索順序和DNS服務器的地址

/etc/xinetd.conf inetd 中每一行指定的服務擴展爲一個/etc/xinetd.d/下的配置文件

/etc/sysconfig/network-scripts/ifcfg-ehtN  網卡配置信息

參考:http://www.linuxdiyf.com/viewarticle.php?id=302012

2.環境變量和啓動程序配置

/etc/profile (用戶還有自己的環境變量~/.bash_profile)

3./etc/rc.local 開機啓動自動運行

4./etc/yum.repos.d/CentOS-Base.repo yum源的配置信息

5./etc/sysconfig/iptables 防火牆的配置文件

6./etc/ssh/sshd_config  ssh遠程連接配置文件

7./etc/passwd  /etc/group /etc/shadow  用戶名密碼有關配置文件

8./etc/cron* 定時任務有關的配置文件

9./var/log/*    系統日誌文件

二、常用的系統指令

1.uname -r 內核版本查看

2.hostname 主機名查看

3.date 系統時間 hwclock硬件時鐘

4.df -h 硬盤和分區

5.du -sh 查看目錄佔用空間

6.cat /root/install.log 查看安裝的軟件包

7.rpm -qa 查看rpm包安裝的軟件

8.yum list installed yum查詢的安裝軟件包

9.ifconfig IP查看(ip指令是個新命令)

10.fdisk -l:檢查磁盤分區

11.mount umount 掛載與取消掛載

12.RPM yum centos軟件包安裝

13.tar  打包壓縮:http://blog.csdn.net/sanshiqiduer/article/details/1913792

14.scp 遠程拷貝

15.ps aux | ps -ef  查看進程

16.reboot shutdown -h now init 0 關機重啓 慎用!!!

17.lspci -tv     # 列出所有PCI設備

18.route -n      # 查看路由表

19.w who whoami  查看活動用戶  id 指定用戶信息

20. last         # 查看用戶登錄日誌

21.crontab -l    # 查看當前用戶的計劃任務服務

22.chkconfig --list       # 列出所有系統服務

23.locale -a查看系統支持的語言 LANG="zh_CN.UTF-8"修改字符集

24. | 管道  > >> 和 < 重定向

25.find  which 查找文件

26.ssh 遠程登錄

27. useradd deluser groupadd  passwd gpasswd usermod

28. ulimit -a 系統參數

29.性能分析工具:vmstat sar iostat free uptime netstat top iotop iftop 

vmstat命令:  用來獲得有關進程、虛擬內存、頁面交換空間及 CPU活動的信息

1.用法

vmstat [-a] [-n] [-S unit] [delay [ count]]

vmstat [-s] [-n] [-S unit]

vmstat [-m] [-n] [delay [ count]]

vmstat [-d] [-n] [delay [ count]]

vmstat [-p disk partition] [-n] [delay [ count]]

vmstat [-f]

vmstat [-V]

-a:顯示活躍和非活躍內存

-f:顯示從系統啓動至今的fork數量 。

-m:顯示slabinfo

-n:只在開始時顯示一次各字段名稱。

-s:顯示內存相關統計信息及多種系統活動數量。

delay:刷新時間間隔。如果不指定,只顯示一條結果。

count:刷新次數。如果不指定刷新次數,但指定了刷新時間間隔,這時刷新次數爲無窮。

-d:顯示磁盤相關統計信息。

-p:顯示指定磁盤分區統計信息

-S:使用指定單位顯示。參數有 k 、K 、m 、M ,分別代表1000、1024、1000000、1048576字節(byte)。默認單位爲K(1024 bytes)

-V:顯示vmstat版本信息。

2.字段含義說明:

Procs(進程)

r

等待執行的任務數

展示了正在執行和等待cpu資源的任務個數。當這個值超過了cpu個數,就會出現cpu瓶頸。

b

等待IO的進程數量

 

Memory(內存)

swpd

正在使用虛擬的內存大小,單位k

free

空閒內存大小

buff

已用的buff大小,對塊設備的讀寫進行緩衝

cache

已用的cache大小,文件系統的cache

inact

非活躍內存大小,即被標明可回收的內存,區別於free和active

具體含義見:概念補充(當使用-a選項時顯示)

active

活躍的內存大小

具體含義見:概念補充(當使用-a選項時顯示)

Swap

si

每秒從交換區寫入內存的大小(單位:kb/s)

so

每秒從內存寫到交換區的大小

 

IO

bi

每秒讀取的塊數(讀磁盤)

現在的Linux版本塊的大小爲1024bytes

bo

每秒寫入的塊數(寫磁盤)

 

system

in

每秒中斷數,包括時鐘中斷

這兩個值越大,會看到由內核消耗的cpu時間會越多

cs

每秒上下文切換數


CPU(以百分比表示)

Us

用戶進程執行消耗cpu時間(user time) us的值比較高時,說明用戶進程消耗的cpu時間多,但是如果長期超過50%的使用,那麼我們就該考慮優化程序算法或其他措施了

Sy

系統進程消耗cpu時間(system time)

sys的值過高時,說明系統內核消耗的cpu資源多,這個不是良性的表現,我們應該檢查原因。

Id

空閒時間(包括IO等待時間)

wa

等待IO時間

Wa過高時,說明io等待比較嚴重,這可能是由於磁盤大量隨機訪問造成的,也有可能是磁盤的帶寬出現瓶頸。


SAR(System Activity Reporter系統活動情況報告)http://my.oschina.net/caiyuan/blog/119012

sar命令常用格式

sar [options]  [-o file] t [n]

t爲採樣間隔,n爲採樣次數,默認值是1;

-o file表示將命令結果以二進制格式存放在文件中,file 是文件名

options:

-A:所有報告的總和

-u:輸出CPU使用情況的統計信息

-v:輸出inode、文件和其他內核表的統計信息

-d:輸出每一個塊設備的活動信息

-r:輸出內存和交換空間的統計信息

-b:顯示I/O和傳送速率的統計信息

-c:輸出進程統計信息,每秒創建的進程數

-R:輸出內存頁面的統計信息

-y:終端設備活動情況

-w:輸出系統交換活動信息

-n: 網絡統計

man sar / sar -h

IOSTAT:iostat主要用於監控系統設備的IO負載情況,iostat首次運行時顯示自系統啓動開始的各項統計信息,之後運行iostat將顯示自上次運行該命令以後的統計信息。

Usage: iostat [ options ] [ <interval> [ <count> ] ]

-c 僅顯示CPU統計信息.與-d選項互斥.

-d 僅顯示磁盤統計信息.與-c選項互斥.

-k 以K爲單位顯示每秒的磁盤請求數,默認單位塊.

-p device | ALL

 與-x選項互斥,用於顯示塊設備及系統分區的統計信息.也可以在-p後指定一個設備名,如:

# iostat -p hda

 或顯示所有設備

# iostat -p ALL

-t    在輸出數據時,打印蒐集數據的時間.

-V    打印版本號和幫助信息.

-x    輸出擴展信息.

iostat輸 出項目說明

Blk_read

 讀入塊的當總數. Blk_wrtn 寫入塊的總數.

kB_read/s

 每秒從驅動器讀入的數據量,單位爲K.

kB_wrtn/s

 每秒向驅動器寫入的數據量,單位爲K.

kB_read

 讀入的數據總量,單位爲K.

kB_wrtn

 寫入的數據總量,單位爲K.

rrqm/s

 將讀入請求合併後,每秒發送到設備的讀入請求數.

wrqm/s

 將寫入請求合併後,每秒發送到設備的寫入請求數.

r/s

 每秒發送到設備的讀入請求數.

w/s

 每秒發送到設備的寫入請求數.

rsec/s

 每秒從設備讀入的扇區數.

wsec/s

 每秒向設備寫入的扇區數.

        rkB/s

 每秒從設備讀入的數據量,單位爲K.

wkB/s

 每秒向設備寫入的數據量,單位爲K.

        avgrq-sz

 發送到設備的請求的平均大小,單位是扇區.

avgqu-sz

 發送到設備的請求的平均隊列長度.

await

 I/O請求平均執行時間.包括髮送請求和執行的時間.單位是毫秒.

svctm

 發送到設備的I/O請求的平均執行時間.單位是毫秒.

%util

 在I/O請求發送到設備期間,佔用CPU時間的百分比.用於顯示設備的帶寬利用率.

 當這個值接近100%時,表示設備帶寬已經佔滿.

 

free:查看系統內存使用情況(cat /proc/meminfo)

從操作系統的角度來看內存分配:   

total

總物理內存大小。

used

已分配的大小,注意,對操作系統來說任何被使用的內存都是used。

free

未被分配的物理內存大小。

shared

共享內存大小,主要用於進程間通信,例如Oracle會使用上GB的共享內存。

buffers

主要用於塊設備數據緩衝,例如記錄文件系統的metadata(目錄、權限等等信息)。

cached

主要用於文件內容緩衝

從應用程序的角度來看內存分配:

- buffers/cached

= used(第一行) - buffers - cached

實際上是程序當前"真實使用"的"物理內存"的大小。

+ buffers/cached

= buffers + cached

兩個加起來可以理解爲"暫時借給"系統作爲"緩衝區"使用的內存大小。

[root@localhost cron]# uptime  顯示系統的負載:

11:42:22 up 13 days,  2:30,  1 user,  load average: 0.02, 0.05, 0.03


Netstat 命令用於顯示各種網絡相關信息,如網絡連接,路由表,接口狀態 (Interface Statistics),masquerade 連接,多播成員 (Multicast Memberships) 等等  


http://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316661.html

常見參數

-a (all)顯示所有選項,默認不顯示LISTEN相關

-t (tcp)僅顯示tcp相關選項

-u (udp)僅顯示udp相關選項

-n 拒絕顯示別名,能顯示數字的全部轉化成數字。

-l 僅列出有在 Listen (監聽) 的服務狀態

-p 顯示建立相關鏈接的程序名

-r 顯示路由信息,路由表

-e 顯示擴展信息,例如uid等

-s 按各個協議進行統計

-c 每隔一個固定時間,執行該netstat命令。

提示:LISTEN和LISTENING的狀態只有用-a或者-l才能看到

netstat的輸出結果可以分爲兩個部分:

一個是Active Internet connections,稱爲有源TCP連接,其中"Recv-Q"和"Send-Q"指%0A的是接收隊列和發送隊列。這些數字一般都應該是0。如果不是則表示軟件包正在


隊列中堆積。這種情況只能在非常少的情況見到。

另一個是Active UNIX domain sockets,稱爲有源Unix域套接口(和網絡套接字一樣,但是隻能用於本機通信,性能可以提高一倍)。

Proto顯示連接使用的協議,RefCnt表示連接到本套接口上的進程號,Types顯示套接口的類型,State顯示套接口當前的狀態,Path表示連接到套接口的其它進程使用的路徑名。


top命令能夠實時顯示系統中各個進程的資源佔用狀況

[root@localhost cron]# top

top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48

Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie

Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si

Mem: 191272k total, 173656k used, 17616k free, 22052k buffers

Swap: 192772k total, 0k used, 192772k free, 123988k cached


PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

1379 root 16 0 7976 2456 1980 S 0.7 1.3 0:11.03 sshd

14704 root 16 0 2128 980 796 R 0.7 0.5 0:02.72 top

1 root 16 0 1992 632 544 S 0.0 0.3 0:00.90 init

2 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0

3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0

統計信息區

前五行是系統整體的統計信息。第一行是任務隊列信息,同 uptime 命令的執行結果。其內容如下:

01:06:48 當前時間

up 1:22 系統運行時間,格式爲時:分

1 user 當前登錄用戶數

load average: 0.06, 0.60, 0.48 系統負載,即任務隊列的平均長度。

三個數值分別爲 1分鐘、5分鐘、15分鐘前到現在的平均值。

第二、三行爲進程和CPU的信息。當有多個CPU時,這些內容可能會超過兩行。內容如下:

Tasks: 29 total 進程總數

1 running 正在運行的進程數

28 sleeping 睡眠的進程數

0 stopped 停止的進程數

0 zombie 殭屍進程數

Cpu(s): 0.3% us 用戶空間佔用CPU百分比

1.0% sy 內核空間佔用CPU百分比

0.0% ni 用戶進程空間內改變過優先級的進程佔用CPU百分比

98.7% id 空閒CPU百分比

0.0% wa 等待輸入輸出的CPU時間百分比

0.0% hi

0.0% si

最後兩行爲內存信息。內容如下:

Mem: 191272k total 物理內存總量

173656k used 使用的物理內存總量

17616k free 空閒內存總量

22052k buffers 用作內核緩存的內存量

Swap: 192772k total 交換區總量

0k used 使用的交換區總量

192772k free 空閒交換區總量

123988k cached 緩衝的交換區總量。

內存中的內容被換出到交換區,而後又被換入到內存,但使用過的交換區尚未被覆蓋,

該數值即爲這些內容已存在於內存中的交換區的大小。

相應的內存再次被換出時可不必再對交換區寫入。

進程信息區

統計信息區域的下方顯示了各個進程的詳細信息。首先來認識一下各列的含義。

序號 列名 含義

a PID 進程id

b PPID 父進程id

c RUSER Real user name

d UID 進程所有者的用戶id

e USER 進程所有者的用戶名

f GROUP 進程所有者的組名

g TTY 啓動進程的終端名。不是從終端啓動的進程則顯示爲 ?

h PR 優先級

i NI nice值。負值表示高優先級,正值表示低優先級

j P 最後使用的CPU,僅在多CPU環境下有意義

k %CPU 上次更新到現在的CPU時間佔用百分比

l TIME 進程使用的CPU時間總計,單位秒

m TIME+ 進程使用的CPU時間總計,單位1/100秒

n %MEM 進程使用的物理內存百分比

o VIRT 進程使用的虛擬內存總量,單位kb。VIRT=SWAP+RES

p SWAP 進程使用的虛擬內存中,被換出的大小,單位kb。

q RES 進程使用的、未被換出的物理內存大小,單位kb。RES=CODE+DATA

r CODE 可執行代碼佔用的物理內存大小,單位kb

s DATA 可執行代碼以外的部分(數據段+棧)佔用的物理內存大小,單位kb

t SHR 共享內存大小,單位kb

u nFLT 頁面錯誤次數

v nDRT 最後一次寫入到現在,被修改過的頁面數。

w S 進程狀態。

D=不可中斷的睡眠狀態

R=運行

S=睡眠

T=跟蹤/停止

Z=殭屍進程

x COMMAND 命令名/命令行

y WCHAN 若該進程在睡眠,則顯示睡眠中的系統函數名

z Flags 任務標誌,參考 sched.h

iotop是一個用來監視磁盤I/O使用狀況的 top 類工具,可監測到哪一個程序使用的磁盤IO的信息 

安裝:yum -y install iotop  http://www.jb51.net/LINUXjishu/247796.html

--version #顯示版本號

-h, --help #顯示幫助信息

-o, --only #顯示進程或者線程實際上正在做的I/O,而不是全部的,可以隨時切換按o

-b, --batch #運行在非交互式的模式

-n NUM, --iter=NUM #在非交互式模式下,設置顯示的次數,

-d SEC, --delay=SEC #設置顯示的間隔秒數,支持非整數值

-p PID, --pid=PID #只顯示指定PID的信息

-u USER, --user=USER #顯示指定的用戶的進程的信息

-P, --processes #只顯示進程,一般爲顯示所有的線程

-a, --accumulated #顯示從iotop啓動後每個線程完成了的IO總數

-k, --kilobytes #以千字節顯示

-t, --time #在每一行前添加一個當前的時間

ifstat工具是個網絡接口監測工具,比較簡單看網絡流量

iftop是一款實時流量監控工具,監控TCP/IP連接等,缺點就是無報表功能。必須以root身份才能運行。

(http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858923.html)

30.Linux網絡工具

ping :測試網絡

scp:遠程拷貝

Telnet:遠程登錄,測試端口

FTP:sftp 文件傳輸

traceroute: 顯示到網絡主機的路徑

nslookup:命令的功能是查詢一臺機器的IP地址和其對應的域名

route:命令是用來查看和設置Linux系統的路由信息

wget: 

tcpdump:

curl:

http://www.cnblogs.com/hnrainll/archive/2011/10/12/2208436.html

三、軟件包的安裝

1.源碼包安裝:tar.gz   ./conigure -help 查看安裝信息

2.二進制安裝包:tar.gz   解壓直接使用

3.rpm安裝包:需要依賴關係 yum管理自動安裝依賴包

四、文件系統

在LINUX系統中有一個重要的概念:一切都是文件。

下linux下一些主要目錄的功能

/bin:存放二進制可執行文件(例如一些shell命令)。

/dev:存放設備文件。

/etc:存放系統的管理和配置文件(這個目錄很牛逼)

/etc/rc.d:啓動配置文件和腳本

/root:root用戶的主目錄。

/home:存放用戶主目錄,除了root用戶的主目錄外,當創建一個用戶是會在這個目錄下創建相應用戶的主目錄。

/lib:存放一些標準程序設計庫(動態連接共享庫),類似於.dll。

/sbib:系統管理命令,存放系統管理員使用的管理命令。

/tmp:默認的臨時文件存放地點。

/mnt:用戶可以在這個目錄下創建臨時掛載點,例如關在u盤文件系統。

/lost+found:存放系統非正常關機而產生的“無家可歸”的文件。

/proc:虛擬的目錄,是系統內存的映射,可直接訪問這個目錄來獲取系統信息。

/var:一般用來存放時常變化的文件,例如日誌文件,在學習驅動的時候通常查看驅動程序是否成功安裝或卸載是,用dmesg查看的就是/var/log/messages文件。還有就是我


們通過apt-get在網上通過源安裝的程序的安裝包一般會在/var/cache/apt/archives下。

/usr:它是linux系統下最龐大的目錄,存放一般的應用程序和文件。

/usr/bin:衆多的應用程序

/usr/sbin:超級用戶的一些管理程序。

/usr/include linux下開發和編譯應用程序所需要的頭文件(在學習c和高級編程中用的很多頭文件都在這裏面)

/usr/lib:常用的動態鏈接庫和軟件包的配置文件。

/usr/man 幫助文檔

/usr/src:源代碼,例如/usr/src/linux存放linux源代碼

/usr/local/bin:本地增加的命令。

/usr/local/lib:本地增加的庫。

[root@localhost cron]# ls -l

-rw------- 1 root root 44 Oct 28 16:02 root

chomd  更改文件權限 

chown  更改文件所屬組和用戶

chattr/lsattr  lsattr命令查看文件的隱藏屬性,而用chattr來修改爲正常值

chattr [+-=][ASacdistu]

最爲重要的是屬 +i 這個屬性


五、定時任務

1.編輯定時任務:crontab -e 

-l 查看當前用戶定時任務 

-r : 刪除目前的時程表

/var/spool/cron 用戶定時任務文件存放目錄

基本格式 : 

*  *  *  *  *  command 

分  時 日   月  周  命令

2./etc/crontab文件

這個地方也可以設置定時任務 

/etc/cron/*  有日 周 月定時任務腳本

六、備份

1.完全備份

2.增量備份

3.差異備份


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章