1. 程式人生 > >企業Linux系統管理員常用命令大全例項解析(1)

企業Linux系統管理員常用命令大全例項解析(1)

作為一名企業Linux系統管理員,熟悉並熟練運用一些常用的命令是必不可少的,對裝置即檔案的Linux系統來說,Linux系統管理的命令是它正常執行的核心。筆者根據實際工作總結一些常用指令,附上一些相對常見的警報處理方法,以供共同學習。

1】、檢視命令(ls)

語法:

ls [option] [dirname]

常用引數:

-a,all列出目錄下的所有檔案,包括以 .開頭的隱含檔案

-h,human-readable以容易理解的格式列出檔案大小 (例如 1K 234M 2G)

-i,inode印出每個檔案的 inode

-l除了檔名之外,還將檔案的許可權、所有者、檔案大小等資訊詳細列出來。

[gz_fieldyang@ test ~]$ ls -ltr

total192

-rw-rw-r--1 gz_fieldyang gz_fieldyang  88 Mar 4 14:36 test.html

-rw-rw-r--1 gz_fieldyang gz_fieldyang  18 Mar 4 14:47 sed-n.sed

-rw-rw-r--1 gz_fieldyang gz_fieldyang 182 Mar 4 15:21 test.txt

-rw-rw-r--1 gz_fieldyang gz_fieldyang  50 Mar 4 16:06 example.txt

案例分析:

一般用於PortLinkStatus (Integer): down或者more than 1 CDR update process之類的警報,檢視cdr

>login

>cd/opt/xxx/pcp

>ls-lt | more

>cd/opt/xxx/cdr

>ls-lt | more

2】、檢視程序存在與否 (ps)

語法:ps[option]

命令引數:

顯示所有程序

-a顯示同一終端下的所有程式

-A顯示所有程序

顯示程序的真實名稱

-N反向選擇

顯示環境變數

顯示程式間的關係

-H顯示樹狀結構

顯示當前終端的程序

顯示當前終端的所有程式

指定使用者的所有程序

-au顯示較詳細的資訊

-aux顯示所有包含其他使用者的行程

-C<命令>列出指定命令的狀況

--lines<行數>每頁顯示的行數

--width<字元數>每頁顯示的字元數

--help顯示幫助資訊

--version顯示版本顯示

[gz_fieldyang@test ~]$ ps aux

USER      PID %CPU %MEM   VSZ  RSS TTY     STAT START  TIME COMMAND

(使用者)(程序ID)(程序耗CPU比)(程序耗實體記憶體比)(耗虛擬記憶體量)(耗固定記憶體量)(執行終端機)(狀態資訊)(觸發時間)(運作時間)(實際指令)

root        1 0.0 0.0  2064  592 ?       Ss   2015  2:24 init [5]        

root        2 0.0 0.0     0    0 ?       S<   2015  8:33 [migration/0]

root        3 0.0 0.0     0    0 ?       SN   2015  0:06 [ksoftirqd/0]

...

root    30641 2.0 0.0  9916 2812 ?       Ss  10:41  0:00 sshd: gz_fieldyang [priv]

871     30644 0.0 0.0 10048 1672 ?       S   10:41  0:00 sshd: gz_fieldyang@pts/2

871     30646 1.5 0.0  4528 1388 pts/2   Ss  10:41  0:00 -bash

871     30677 0.0 0.0  4248  936 pts/2   R+  10:41  0:00 ps -aux

root    31137 0.0 0.0     0    0 ?       S   Apr10  0:04 [pdflush]

說明:

USER:該 process 使用者的賬號

PID:該 process的號碼

%CPU:該 process 使用掉的 CPU資源百分比

%MEM:該 process 所佔用的實體記憶體百分比

VSZ:該 process使用掉的虛擬記憶體量 (Kbytes)

RSS:該 process佔用的固定的記憶體量 (Kbytes)

TTY:該 process是在那個終端機上面運作,若與終端機無關,則顯示 ?

另外,tty1-tty6是本機上面的登入者程式,若為 pts/0等等的,則表示為由網路連線進主機的程式。

STAT:該程式目前的狀態,主要的狀態有

R:該程式目前正在運作,或者是可被運作

S:該程式目前正在睡眠當中 (可說是 idle狀態),但可被某些訊號(signal)喚醒。

T:該程式目前正在偵測或者是停止了

Z:該程式應該已經終止,但是其父程式卻無法正常的終止他,造成 zombie(疆屍)程式的狀態

START:該 process 被觸發啟動的時間

TIME:該 process實際使用 CPU運作的時間

COMMAND:該程式的實際指令

案例分析:

配合grep查詢特定程序,一般用於出現諸如Application process '...' not running 或者disk full之類的警報

ps -ef |grep ...

例項1:

[gz_fieldyang@test ~]$ ps -ef | grep mysqld

root     7370    1 0 2011 ?       00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --user=mysql--skip-slave-start

mysql    7427 7370 0 2011 ?       7-02:05:47 /usr/local/mysql/bin/mysqld

--basedir=/usr/local/mysql--datadir=/usr/local/mysql/data --user=mysql

--skip-slave-start--log-error=/usr/local/mysql/data/test.com.err

--pid-file=/usr/local/mysql/data/test.com.pid

836     20670 20606 0 15:26 pts/1   00:00:00 grep mysqld

例項2

>1.檢視磁碟情況

[root@test ~]# df -h

Filesystem           Size Used Avail Use% Mounted on

/dev/mapper/vg00-lvol01

                      20G  20G    0 100% /

/dev/mapper/vg00-lvol04

                     9.7G 1.7G 7.6G 19% /var

/dev/mapper/vg00-lvol06

                      20G 5.2G  14G 29% /var/www /dev/mapper/vg00-lvol05

                      20G  10G 8.4G 55% /home

/dev/mapper/vg00-lvol07

                      20G 912M  18G  5% /housekeep

/dev/mapper/vg00-lvol03

                     9.7G 5.7G 3.6G 62% /usr

/dev/cciss/c0d0p1     99M  12M  82M 13% /boot

tmpfs                 12G    0  12G  0% /dev/shm

>2.切換至警報路徑尋找大檔案程序號

[root@test ~]# cd /trans/ph/

[root@test ph]# ls -ltr|tail

....

-rw-r--r--   1 root root 9562558464 Mar 7 17:48 YLWb0443

drwxrwxrwx3950 root root    184320 Mar 7 17:48 mov

-rw-r--r--   1 root root 9322479616 Mar 7 17:48 2quZ0443

[root@test ph]# ps -ef|grep 2quZ0443

root     4697    1 74 17:13 pts/1   00:25:40 .....

root     4702 4697 21 17:13 pts/1   00:07:25.....

root    19935 17542 0 17:48 pts/4   00:00:00 grep 2quZ0443

>3.殺死程序

[root@test ph]# kill -9 4697 4702

[root@test ph]# ps -ef|grep YLWb0443

root     4220    1 74 17:13 pts/1   00:26:27/var/www /pdup /var/www/ YL/YLWb0443 /transcoder/iphone/mov/YL/YLWb0443.mov

root     4225 4220 21 17:13 pts/1   00:07:41/var/www/ /ipmplayer -quiet -endpos +3600 -cache-min 0 -cache-seek-min 90 -vfdsize=336:224:0,scale=0:0,expand=336:224……

root    21602 17542 0 17:48 pts/4   00:00:00 grep YLWb0443

3】、檢視日誌檔案是否執行,顯示指定檔案末尾內容,不指定檔案時,作為輸入資訊進行處理 (tail)

語法:

tail[必要引數][選擇引數][file]  

命令引數:

-f迴圈讀取

-q不顯示處理資訊

-v顯示詳細的處理資訊

-c<數目>顯示的位元組數

-n<行數>顯示行數

--pid=PID-f合用,表示在程序ID,PID死掉之後結束.

-q, --quiet, --silent從不輸出給出檔名的首部

-s, --sleep-interval=S-f合用,表示在每次反覆的間隔休眠S

一般用於出現諸如Application process '...' not running或者(update.sh)... is not synced

或者 App_Procs port18506 ERROR之類的警報,或者配合grep查詢特定狀態資訊

/var/www/.../.../log

tail-f xxx.log

例項1(update.sh)... is not synced

[gz_fieldyang@test] cd /gz/util/HealthCheckScript/

[gz_fieldyang@test HealthCheckScript]$ tail -20 healthcheck_log.txt

2016-04-0815:19:03 (resume.sh) cg1 is synced gzBehavior: 0

2016-04-0815:19:04 (resume.sh) cg2 is not synced gzcBehavior: 0

2016-04-0815:19:05 (resume.sh) cg3 is synced gzBehavior: 0

2016-04-0815:19:06 (resume.sh) cg4 is synced gzBehavior: 0

2016-04-0815:19:06 (resume.sh) cg5 is synced gzBehavior: 0

...

例項2切換到特定資料夾,檢視日誌

cd/home/.../log

tail-f portxxxxx.log

例項3:配合grep查詢特定狀態資訊

[root@test upelogs]# tail -f upe-debug.log | grep status@S

[2016-03-2418:53:07.962][http-80-1] DEBUG - Reply with response <?xml version='1.0'

……

<Result>id@....status@S|ove....></soap:Envelope>

4】、啟動程序(start,reatart)

一般用於出現諸如Application process '...' not running或者 connection fail或者 request time out之類

重啟步驟如下:

1).checkthe process if running

ps-ef|grep mysqld

2).if not running then restart

/etc/init.d/mysqldrestart

/sbin/servicentpd restart

/sbin/servicentpd status

login

>bash

>xxxstatus

>cd/var/xxxx/LOG

>tail-f xxxxx.log

>xxxx stop

>xxx status

>xxxx start

>xxx status

5】、檔案傳輸(ftp)

failed to FTP file to ... Procedure 

可能原因是磁碟將滿或者vsFTPd程序未執行

例項1磁碟將滿

[fieldyang@test~]$ ftp 127.0.0.1

Connectedto 127.0.0.1.

220(vsFTPd 2.0.5)

530Please login with USER and PASS.

530Please login with USER and PASS.

KERBEROS_V4rejected as an authentication type

Name(127.0.0.1:fieldyang):

[fieldyang@test ~]$ df -h

Filesystem           Size Used Avail Use% Mounted on

/dev/map/vg00-lvol01

                     2.0G 683M 1.2G 37% /

/dev/map/vg00-lvol05

                      97G  18G  76G 19% /home

/dev/map/vg00-lvol04

                     4.9G 3.7G 927M 81% /var

/dev/map/vg00-lvol03

                     7.8G 4.5G 3.0G 61% /usr

/dev/map/vg00-lvol06

                     242G  85G 147G 37% /smc

/dev/sda1             99M  18M  77M 19% /boot

tmpfs                4.0G    0 4.0G  0% /dev/shm

例項2:vsFTPd程序是否執行

1).檢測FTP服務是否開啟

檢視程序是否存在ps -ef | grep ftp 

[gz_fieldyang@test ~]$ ps -ef | grep ftp 

nobody   3461 6064 0 Mar24 ?       00:00:00 /usr/sbin/vsftpd/etc/vsftpd/vsftpd.conf

gup      3477 3461 0 Mar24 ?       00:02:31 /usr/sbin/vsftpd/etc/vsftpd/vsftpd.conf

root     6064    1 0 2011 ?       00:08:36 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

...

若並未找到任何包含ftp關鍵字的程序資訊,可判斷服務未開啟

.查詢vsftpd服務是否存在service vsftpd status

vsftpd是最常見的FTP伺服器,一般Linux系統都是通過vsftpd來搭建FTP服務環境

[gz_fieldyang@test ~]$ /sbin/service vsftpd status

vsftpddead but subsys locked

2.開啟FTP服務

/sbin/servicevsftpd start 

3).檢視狀態

/sbin/servicevsftpd status

附:編輯vsftpd.conf簡單配置實現匿名上傳下載

vivsftpd.conf

anon_upload_enable=YES

anonymous_enable=YES

write_enable=YES

Anon_mkdir_write_enable=yes

6】、檢查linux伺服器的檔案系統的磁碟空間佔用情況(df)

Df命令在運維中使用廣泛,使用引數相對單一,大多數情況下都是用(df –kh)來檢視磁碟佔用情況,以便獲取硬碟被佔用了多少空間,目前還剩下多少空間等資訊。

語法:

df [option] [file]

引數:

必要引數:

-a全部檔案系統列表

-h方便閱讀方式顯示

-i顯示inode資訊

-k區塊為1024位元組

-l只顯示本地檔案系統

--no-sync忽略 sync命令

-P輸出格式為POSIX