Linux中常見問題(磁盤 定時任務)


第1章 linux無法上網

1)     第一步,ping域名.

ping www.baidu.com

2)ping一個公網ip ,

ping 223.5.5.5/223.6.6.6/114.114.114.114

[root@znix /]# ping 223.5.5.5

PING 223.5.5.5 (223.5.5.5) 56(84) bytes of data.

64 bytes from 223.5.5.5: icmp_seq=1 ttl=128 time=42.8 ms

2)     ping 默認的網關

[root@znix ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0

169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0

0.0.0.0         10.0.0.2        0.0.0.0         UG    0      0        0 eth0

第2章 系統的負載/cpu/內存太高了

1)     使用top 命令查看哪個進程占用cpu/內存多.

[root@znix /]# top

top - 15:29:37 up 4 days, 23:18,  4 users,  load average: 0.00, 0.00, 0.00

Tasks:  92 total,   1 running,  91 sleeping,   0 stopped,   0 zombie

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

Mem:    485984k total,   215144k used,   270840k free,   117300k buffers

Swap:   786428k total,     8664k used,   777764k free,    20700k cached

 

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

 16949 root      20   0  102m 4628 3572 S  0.0  1.0   0:00.14 sshd                                                                   

 17064 root      20   0  102m 4608 3568 S  0.0  0.9   0:00.06 sshd                                                                   

 16812 root      20   0  102m 2604 2400 S  0.0  0.5   0:00.84 sshd

2)     找出對應程序的pid號碼

a)       找到占用率較高的程序

16949 root      20   0  102m 4628 3572 S  0.0  1.0   0:00.14 sshd  

3)     strace -p  進程的pid號碼

a)       查看現在這個進程正在做什么事情.

[root@znix /]# strace -p 16949

Process 16949 attached

select(10, [3 5 9], [], NULL, NULL

第3章 定時任務

3.1 每分鍾顯示當前系統的日期 --_小時 ,把這個時間追加到 /tmp/date.log

3.1.1 .先運行命令

運行命令進行測試,確定命令可以執行.

[root@znix ~]# date +%F_%H >> /tmp/date.log

[root@znix ~]# cat /tmp/date.log

2017-09-08_09

3.1.2 命令放入腳本中

[root@znix scripts]# cat /server/scripts/date.sh

date +%F_%H:%M >> /tmp/date.log

3.1.3 測試腳本

[root@znix scripts]# /bin/sh /server/scripts/date.sh

[root@znix scripts]# tail -1 /tmp/date.log

2017-09-08_09:43

3.1.4 寫到定時任務

[root@znix scripts]# crontab -l |tail -2

#print time to file by hou 20170908

* * * * * /bin/sh /server/scripts/date.sh  >/dev/null 2>&1

3.1.5 查看你定時任務的執行日歷

[root@znix scripts]# tail -2 /var/log/cron

Sep  8 09:53:41 znix crontab[16396]: (root) LIST (root)

Sep  8 09:54:01 znix CROND[16400]: (root) CMD (/bin/sh /server/scripts/date.sh  >/dev/null 2>&1)

3.1.6 檢查結果

[root@znix ~]# cat /tmp/date.log

2017-09-08_09

3.2 命令中的shbash

[root@znix ~]# ll /bin/sh /bin/bash

-rwxr-xr-x. 1 root root 942200 Mar 23 08:15 /bin/bash

lrwxrwxrwx. 1 root root      4 Aug 10 18:34 /bin/sh -> bash

第4章 磁盤滿了之郵件服務

4.1 系統中的郵件服務

centos 6.x postfix

centos 5.x sendmail

4.2 關閉系統郵件服務

[root@znix ~]# /etc/init.d/postfix

Usage: /etc/init.d/postfix {start|stop|restart|reload|abort|flush|check|status|condrestart}

[root@znix ~]# /etc/init.d/postfix stop

Shutting down postfix:                                     [  OK  ]

4.2.1 關閉郵件服務后,系統的油價會放入/var/spool/postfix/maildrop/

[root@znix ~]# ls /var/spool/postfix/maildrop/ |wc -l

12

4.3 [企業案例] 如果定時任務規則結尾不加>/dev/null 2>&1或者追加到文件中>>/tmp/clsn 2>&1,很容易導致硬盤inode空間被占滿,從而系統服務不正常。

定時任務中-命令或腳本結果(正確及錯誤)定向到黑洞(>/dev/null 2>&1)或追加到文件中 >>/tmp/clsn.txt 2>&1.

實例4-1 情況一: 

郵件服務關閉 沒有定向到空,會導致 /var/spool/postfix/maildrop/ 中有許多小文件

造成磁盤滿了,inode滿了.

解決辦法:將郵件服務打開就會釋放inode.

[root@znix /]# /etc/init.d/postfix start

Starting postfix:                                          [  OK  ]

[root@znix /]# chkconfig |grep post

postfix        0:off   1:off   2:on    3:on    4:on    5:on    6:off

實例4-2 情況二:

郵件服務開啟/var/spool/cron/root會變大,發的郵件都會存到文件中,時間長了會將

       解決辦法:定向到空即可

 >/dev/null 2>&1

4.4 兩種輸出重定向

>/dev/null  2>&1

       把正確的和錯誤的都放在 /dev/null(黑洞,一去不復返)

      

>>/tmp/clsn.txt   2>&1

       把正確的和錯誤的都放在/tmp/clsn.txt

4.5 書寫定時任務要將內容輸出重定向

如果定時任務規則結尾不加>/dev/null 2>&1或者追加到文件中>>/tmp/clsn 2>&1很容易導致硬盤inode空間被占滿,從而系統服務不正常。

4.6 創建和刪除大量小文件的方法

4.6.1 刪除小文件的方法

1)大量的小文件

[root@znix tmp]# ls |xargs rm

2)刪除文件所在的目錄 (權限、所有者、屬組)

3)臨時開啟郵件服務 (只對/var/spool/postfix/maildrop 這個目錄下的小文件)

4.6.2 創建小文件的方法

[root@znix tmp]# echo {1..400000}|xargs touch

[root@znix tmp]# ll -hd  tmp/

drwxr-xr-x 2 root root 8.4M Sep  8 10:59 tmp/

4.7 管道與|xargs 區別:

| 傳遞的是文本

|xargs 后面的命令會任務傳遞過來的是文件

4.8 定時任務的位置

1.用戶的定時任務中,默認存放在當前用戶的家目錄

2.系統的定時任務存放在根下

第5章 練習題--定時任務

5.1 定時任務中的環境變量

定時任務中,只能識別兩個位置的變量,使用其他位置命令的時候可以使用絕對路徑,也可以添加環境變量.

/usr/bin

/bin

添加環境變量,直接寫在定時任務的開始即可.可以將自己使用到的命令位置都添加上.

export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

5.2 每分鍾顯示當前的系統的ip地址還有系統日期date +%F 追加到文件中/tmp/ip.log

5.2.1 先測試一下命令

保證命令是執行沒有錯誤的.

[root@znix /]# date +%F

2017-09-08

[root@znix /]# /sbin/ifconfig  eth0 |awk -F "[ :]+" 'NR==2 {print $4}'

10.0.0.201

5.2.2 將命令放入腳本

[root@znix ~]# cat /server/scripts/ip.sh

date +%F

/sbin/ifconfig  eth0 |awk -F "[ :]+" 'NR==2 {print $4}'

5.2.3 書寫定時任務

[root@znix ~]# crontab -l |tail -2

#print ip & date

* * * * * /bin/sh /server/scripts/ip.sh  >/tmp/ip.sh 2>&1

5.2.4 檢查執行結果

[root@znix tmp]# tail -f /tmp/ip.log

2017-09-08

10.0.0.201

5.3 每隔 2 個小時將/etc/services 文件打包備份到/tmp下(最每次備份成不同的備份包)。

5.3.1 測試命令是否正確

[root@znix ~]# cd / && /bin/tar zcf /tmp/ser_`date +%F_%H`.tar.gz  etc/services

[root@znix /]# ll tmp/ser_2017-09-08_1*

-rw-r--r-- 1 root root 127314 Sep  8 16:15 tmp/ser_2017-09-08_16.tar.gz

5.3.2 寫入腳本中

[root@znix ~]# cat /server/scripts/ser.sh

cd / && /bin/tar zcf /tmp/ser_`date +%F_%H`.tar.gz  etc/services

5.3.3 測試腳本

[root@znix /]# sh /server/scripts/ser.sh

[root@znix /]# ll tmp/ser_2017-09-08_1*

-rw-r--r-- 1 root root 127314 Sep  8 16:17 tmp/ser_2017-09-08_16.tar.gz

5.3.4 寫入定時任務

[root@znix ~]# crontab -l |tail -2

##dabao /etc/services

00 */2 * * * /bin/sh /server/scripts/ser.sh >/dev/null 2>&1

5.3.5 檢查結果

[root@znix /]# ll tmp/ser_2017-09-08_1*

-rw-r--r-- 1 root root 127314 Sep  8 11:59 tmp/ser_2017-09-08_11.tar.gz

-rw-r--r-- 1 root root 127314 Sep  8 12:11 tmp/ser_2017-09-08_12.tar.gz

-rw-r--r-- 1 root root 127314 Sep  8 16:17 tmp/ser_2017-09-08_16.tar.gz

5.4 每天晚上 12 點,打包站點目錄/var/www/html  備份到/data 目錄下(最好每次備份按時間生成不同的備份包)

5.4.1 測試命令

[root@znix /]# cd / && tar zcf /data/www_`date +%F`.tar.gz  var/www/html

[root@znix /]#  ll /data/www*

-rw-r--r-- 1 root root 117 Sep  8 16:21 /data/www_2017-09-08.tar.gz

5.4.2 寫入測試腳本

[root@znix /]# cat /server/scripts/www.sh

cd / && tar zcf /data/www_`date +%F`.tar.gz  var/www/html

[root@znix /]#  ll /data/www*

-rw-r--r-- 1 root root 117 Sep  8 16:21 /data/www_2017-09-08.tar.gz

5.4.3 寫入定時任務

[root@znix /]# crontab -l |tail -2

####dabao tar

00 00 * * * /bin/sh /server/scripts/www.sh >/dev/null 2>&1

5.4.4 檢查執行結果

[root@znix /]# ll /data/www*

-rw-r--r-- 1 root root 117 Sep  8 16:28 /data/www_2017-09-08.tar.gz


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM