Linux监控服务并主动重启
Linux查詢后臺進程,如果沒有進程號,則重啟服務:
#!/bin/sh basepath=$(cd `dirname $0`; pwd) while true doprocnum=`ps -ef|grep "服務名稱"|grep -v grep|wc -l`if [ $procnum -eq 0 ]then#啟動命令echo `date +%Y-%m-%d` `date +%H:%M:%S` "restart 服務" >>$basepath/shell.logfisleep 1 done?結合? crontab命令
對于24小時開機運行的服務器可能用不到的,但是對非24小時開機,又想定時運行任務的機器還是十分有用的。
crontab [-u user] [-l | -r | -e] [-i]
-l:列出當前用戶的計劃任務。
-e:編輯當前用戶的計劃任務。
-r:刪除當前用戶的所有計劃任務。即刪除/var/spool/cron/USERNAME文件。
-u:管理指定用戶的計劃任務,僅root有權限。
-i:在使用-r選項刪除所有任務時提示用戶確認。
crontab的語法
crontab分為兩類:
1、系統cron任務
系統的crontab存放在 /etc/crontab
a、每一行定義一個周期性任務,共7個字段。
b、此處的環境變量不同于用戶登錄后獲得的環境,因此建議命令使用絕對路徑。
c、執行結果會發送郵件給mailto指定的用戶。
2、用戶cron任務
用戶的crontab文件存放在 /var/spool/cron/USERNAME
# crontab -e -u USERNAME
a、每一行定義一個周期性任務,共6個字段。
b、此處的環境變量不同于用戶登錄后獲得的環境,因此建議命令使用絕對路徑。
c、執行結果會發送郵件給當前用戶。
星號(*)匹配所有有效的值。
短橫線(-)表示范圍連續取值。
逗號(,)表示離散取值。
正斜線(/)指定間隔頻率。例如,0-59/2 在分鐘字段表示每兩分鐘。
?
指定的時間點不能被步長整除時,其意義將不存在。例如 */7 * * * *
注意:%在crontab中被認為是newline,使用時需要用 \ 轉義。比如crontab文件中,如果有 "date +%Y%m%d",必須替換為:"date +\%Y\%m\%d"。
crontab的最小時間單位為”分鐘“,想完成”秒“級任務
查看所有用戶的crontab
# for u in `cat /etc/passwd | cut -d":" -f1`;do crontab -l -u $u;done ?
查看cron的日志
# tail -50f /var/log/cron
?
轉載于:https://www.cnblogs.com/hello-wei/p/9512361.html
總結
以上是生活随笔為你收集整理的Linux监控服务并主动重启的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第7章非线性系统的分析-7.1非线性系统
- 下一篇: 洛谷1345 [Usaco5.4]奶牛的