前言
今天收到訊息說伺服器一直被卡死,原因是由於大量轉pdf的程序執行後一直沒有自動關閉導致的。所以,為了解決動不動卡死的問題,決定弄乙個定時任務,定時自動清理卡死的特定程序。
實現步驟
1、首先新建killprocess.sh指令碼,指令碼內容為查詢對應的卡死程序並查殺
#!/bin/sh
#判斷是否輸入引數,如果沒有,則提示,並結束指令碼
if [ ! -n "$1" ] ;then
echo
"請輸入引數(需要查殺的程序名,允許模糊查詢)"
exit
1else
echo
"需要查殺的程序名為: $1"
fi#查詢對應的程序並查殺
name=$1
echo
$name
id=`ps aux | grep "$name" | grep -v grep | awk ''`
echo
$idecho
"---------------"
for id in
$iddo
kill -9
$idecho
"killed $id"
done
echo
"---------------"
如果需要先自行測試,可以注釋kill命令,控制台列印結果,執行指令碼命令為:
bash killprocess.sh
2、root使用者下,給檔案賦予可執行許可權chmod -r 777 killprocess.sh
3、在/etc/crontab檔案最後新增定時任務*/5 * * * * root ./data
/back_up/killprocess.sh
4、最後重啟crontab服務讓新配置的定時任務生效service crond restart
常見定時任務每五分鐘執行 */5 *
* * *
每小時執行 0 * *
* *每天執行 0 0 * * *
每週執行 0 0 * * 0
每月執行 0 0 1 * *
每年執行 0 0 1 1 *
參考資料
補充一下查詢卡死的殭屍程序命令
ps -a
-ostat,ppid,pid,cmd | grep -e
'^[zz]'
Linux 定時任務清理日誌
查詢歷史日誌命令 find opt tomcat7 logs mtime 15 name log 新建檔案 sudo vi opt delete log.sh 更改檔案歸屬 許可權 sudo chown tomcat7 root delete log.sh sudo chmod x delete l...
linux 定時任務 清理檔案
刪除 opt jenkins test builds 目錄下面 9天以前 名稱為 1 9 的目錄 find opt jenkins test builds type d mtime 9 name 1 9 exec rm rf type d 表示目錄 find命令 匹配符 建立指令碼 touch op...
linux定時任務之清理tomcat下的日誌
1 在tomcat demo資料夾下建立乙個clear tomcat log.s 件 輸入命令 touch clear tomcat log.sh 3 使用vi命令開啟這個檔案 輸入命令 vi clear tomcat log.sh 4 在clear tomcat log.s 件下追加如下資訊 刪除...