日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文為php中文網(wǎng)認(rèn)證作者:“齊天大圣”投稿,歡迎加入php中文網(wǎng)有償投稿計劃!

事情經(jīng)過

昨天早上,打開電腦發(fā)現(xiàn)自己的博客網(wǎng)站打開不了,準(zhǔn)備遠(yuǎn)程登錄服務(wù)器查看問題,發(fā)現(xiàn)服務(wù)器遠(yuǎn)程不上。沒辦法,登錄阿里云后臺,重啟服務(wù)器。重啟完成后,網(wǎng)站能正常打開,所以當(dāng)時就不以為然,以為阿里云那邊是不是出了什么毛病。

到了下午的時候,發(fā)現(xiàn)網(wǎng)站又打不開了,而且又遠(yuǎn)程連接不了服務(wù)器。進入阿里云控制臺,查看監(jiān)控發(fā)現(xiàn)cpu跑滿了。只能再重啟服務(wù)器,等重啟完成后再遠(yuǎn)程連接上去,這次需要好好排查問題。

記一次服務(wù)器CPU跑滿事件

 

解決問題

當(dāng)時首先想到的是中病毒了,先不管那么多,第一步是找到那些耗cpu的進程殺死。使用top命令,查看耗cpu的進程有哪些。一看就明白了,都是bzip2搞得鬼。

記一次服務(wù)器CPU跑滿事件

 

殺進程的過程發(fā)現(xiàn)一個問題,就是這些進程殺死了,過一會又出現(xiàn)了。這種現(xiàn)象,我知道肯定要找到他們的父進程,擒賊先擒王。

# ps -lA | grep bzip2

0 R 0 1965 1964 44 80 0 - 3435 - ? 00:01:43 bzip2

0 S 0 1981 1980 33 80 0 - 3435 pipe_w ? 00:00:56 bzip2

0 R 0 1997 1996 30 80 0 - 3435 - ? 00:00:31 bzip2

0 R 0 2013 2012 27 80 0 - 3435 - ? 00:00:07 bzip2

0 R 0 2024 2023 15 80 0 - 3435 - ? 00:00:00 bzip2

但是發(fā)現(xiàn)他們的ppid不是同一個,這就讓我很疑惑了。我打算用進程樹看看

pstree -up

記一次服務(wù)器CPU跑滿事件

 

這時候,我就知道了,原來是自己的定時腳本有問題。那么我需要做以下幾件事:

  1. 關(guān)閉crond服務(wù)
  2. crontab -e 將weekly.sh去掉
  3. 殺掉那些耗cpu的進程

# 關(guān)閉

[root@iz8vb626ci0aehwsivxaydz ~]# kill 1622

[root@iz8vb626ci0aehwsivxaydz ~]# systemctl status crond

● crond.service - Command Scheduler

Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)

Active: inactive (dead) since Tue 2019-11-12 10:44:32 CST; 10s ago

Main PID: 1622 (code=exited, status=0/SUCCESS)

 

# 修改crontab -e

 

# 殺掉耗cpu進程,下面的命令執(zhí)行了好幾遍,才將所有耗cpu進程全部殺掉了

ps -lA | grep bzip2 | awk '{print $4}' | xargs -n 10 kill -9

問題原因與思考

剛開始,我以為是自己的shell腳本有問題,出現(xiàn)死循環(huán)導(dǎo)致問題出現(xiàn)。但是查看腳本,發(fā)現(xiàn)沒有問題,沒有死循環(huán)的情況出現(xiàn)。一時間,百思不得姐。

#!/bin/bash

# 每周備份腳本

 

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

export

 

backdir=/backup/weekly # 備份目錄

 

[ -z "$backdir" ] || mkdir -p $backdir

 

dirs=(/etc /home /root /usr /var/spool/cron /var/spool/at) # 需要備份的目錄

 

for dir in ${dirs[@]}

do

if [ ! -d $dir ];then

continue

fi

 

cd $backdir

tar -jcpf $(basename $dir)_$(date +%Y%m%d).tar.bz2 $dir

done

 

# 刪除mtime大于30天的文件

find $backdir -mtime +30 -name *.tar.bz2 -exec rm -f {} ;

過了很長時間,終于找到了原因所在,原來是自己的定時任務(wù)寫法有問題

* 3 * * 1 /root/bin/weekly.sh 1>/dev/null 2>&1

我原本的想法是每周1凌晨3點執(zhí)行一次備份腳本,但是這樣寫的結(jié)果是每周一凌晨3點的每分鐘都會執(zhí)行該腳本一次。正確的寫法應(yīng)該如下:

# 每周一凌晨三點零一分執(zhí)行該腳本

1 3 * * 1 /root/bin/weekly.sh 1>/dev/null 2>&1

問題解決了,原因也找到了。自己該寫一個服務(wù)器資源監(jiān)控腳本了。

分享到:
標(biāo)簽:CPU 跑滿
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定