Linux_crontab 記一次問題排查

最近nginx訪問常常出現502, 甚至還出現進程沒法建立的問題,首先是懷疑Linux鏈接數設置有問題, ulimit -u查看鏈接數爲2w,應該不算低,後來就給調到的6w;nginx

查下Linux上的當前的線程數,web

pstree -p| wc -lpost

存在七千多,怎麼會呢?spa

因而pstree -p | more查看,出現不少下面的進程:線程

|-crond(82160)---sendmail(82491)---postdrop(82504)進程

           |              |-crond(82647)---sendmail(83087)---postdrop(83108)crontab

           |              |-crond(83150)---sendmail(83673)---postdrop(83691)it

           |              |-crond(83206)---sendmail(83528)---postdrop(83542)io

           |              |-crond(83266)---sendmail(83586)---postdrop(83604)class

           |              |-crond(84205)---sendmail(84734)---postdrop(84750)

           |              |-crond(85167)---sendmail(85703)---postdrop(85723)

           |              |-crond(85310)---sendmail(85637)---postdrop(85651)

           |              |-crond(85338)---sendmail(85890)---postdrop(85905)

           |              |-crond(85842)---sendmail(86373)---postdrop(86387)

           |              |-crond(85894)---sendmail(86066)---postdrop(86079)

           |              |-crond(86075)---sendmail(86445)---postdrop(86460)

           |              |-crond(86611)---sendmail(87142)---postdrop(87161)

           |              |-crond(86626)---sendmail(86959)---postdrop(86973)

           |              |-crond(86988)---sendmail(87518)---postdrop(87536)

           |              |-crond(87430)---sendmail(87962)---postdrop(87983)

           |              |-crond(87492)---sendmail(87814)---postdrop(87827)

           |              |-crond(87547)---sendmail(87892)---postdrop(87907)

           |              |-crond(88010)---sendmail(88333)---postdrop(88348)

           |              |-crond(88308)---sendmail(88638)---postdrop(88652)

           |              |-crond(88531)---sendmail(88863)---postdrop(88876)

 

 

ps查看一下

pcp       3459  3117  0 19:55 ?        00:00:00 /usr/sbin/sendmail -FCronDaemon -i -odi -oem -oi -t -f pcp

pcp       8604  7848  0 19:58 ?        00:00:00 /usr/sbin/sendmail -FCronDaemon -i -odi -oem -oi -t -f pcp

root     36239 33960  0 20:20 pts/1    00:00:00 grep --color=auto sendmail

pcp      40626 40296  0 19:25 ?        00:00:00 /usr/sbin/sendmail -FCronDaemon -i -odi -oem -oi -t -f pcp

pcp      43402 43070  0 18:25 ?        00:00:00 /usr/sbin/sendmail -FCronDaemon -i -odi -oem -oi -t -f pcp

pcp      46681 46151  0 18:28 ?        00:00:00 /usr/sbin/sendmail -FCronDaemon -i -odi -oem -oi -t -f pcp

pcp      49573 49040  0 19:28 ?        00:00:00 /usr/sbin/sendmail -FCronDaemon -i -odi -oem -oi -t -f pcp

pcp      95832 95493  0 18:55 ?        00:00:00 /usr/sbin/sendmail -FCronDaemon -i -odi -oem -oi -t -f pcp

pcp      99052 98517  0 18:58 ?        00:00:00 /usr/sbin/sendmail -FCronDaemon -i -odi -oem -oi -t -f pcp

果真不少sendmail的進程(爲啥user是pcp? ),懷疑是crontab執行的時候起來的,先把進程kill了再說

ps -ef | grep '/usr/sbin/postdrop' | awk '{print $2}' | xargs kill -9

 

在crontab -e中開始加上MAILTO="",在/etc/crontab中設置MAILTO=""

,繼續觀察,原本覺得問題解決了,其實並無。。。,過來一陣子又出現sendmail的進程,進程查。

查到/etc/cron.d/下面的文件(crontab會加載裏面的文件),恰好裏面有個pcp-pmie,pcp-pmlogger,懷疑是這個問題,打開這兩個文件一看:

 

# daily processing of pmie logs (with compression enabled)

08     0  *  *  *  pcp  /usr/libexec/pcp/bin/pmie_daily -X xz -x 3

# every 30 minutes, check pmie instances are running

28,58  *  *  *  *  pcp  /usr/libexec/pcp/bin/pmie_check -C

crontab並無加 &>/dev/null,就會觸發sendmail,問題定位到了,將pcp開頭的兩個文件的crontab命令加上&>/dev/null

以下:

# daily processing of pmie logs (with compression enabled)

08     0  *  *  *  pcp  /usr/libexec/pcp/bin/pmie_daily -X xz -x 3 &>/dev/null

# every 30 minutes, check pmie instances are running

28,58  *  *  *  *  pcp  /usr/libexec/pcp/bin/pmie_check -C &>/dev/null

 

再繼續觀察,maillog已經沒有發送了(目前是20:30,編輯時間爲20:20)

tail -f  /var/log/maillog

Apr  9 20:20:12 data-monitor-web00 postfix/postdrop[40639]: warning: mail_queue_enter: create file maildrop/244959.40639: Permission denied

Apr  9 20:20:12 data-monitor-web00 postfix/postdrop[95845]: warning: mail_queue_enter: create file maildrop/402015.95845: Permission denied

Apr  9 20:20:21 data-monitor-web00 postfix/postdrop[43415]: warning: mail_queue_enter: create file maildrop/391573.43415: Permission denied

Apr  9 20:20:21 data-monitor-web00 postfix/postdrop[99072]: warning: mail_queue_enter: create file maildrop/439228.99072: Permission denied

相關文章
相關標籤/搜索