最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

linux如何通過crontab命令定時執(zhí)行shell腳本

 更新時間:2024年10月21日 16:33:01   作者:工程師123456  
為保障網(wǎng)安測試活動的順利進行,需要設置Linux服務器上服務的定時啟停,本文介紹了通過crontab實現(xiàn)服務定時啟停的方法,包括檢查crontab安裝、編寫啟停腳本、創(chuàng)建定時任務、日志記錄,以及問題解決方案,通過crontab-e命令編輯定時任務

前言

由于網(wǎng)安要對公司服務器進行安防測試活動,因此需要對測試環(huán)境服務器上的服務進行定時啟停,避免端口被網(wǎng)安誤傷 需求為測試服務器早上9點linux自動啟動后臺服務,晚上8點半自動停止后臺服務

項目經(jīng)理提示使用linux的crontab指令實現(xiàn)

一、查看系統(tǒng)是否安裝crontab命令

直接輸入 crontab -l 查詢當前用戶的定時任務

crontab -l 

若出現(xiàn)command not found 則表示需要安裝crontab

注:

  • vim /etc/crontab 命令可以查詢當前系統(tǒng)下的定時任務,同樣可以使用。
  • 與crontab -e 的區(qū)別一個是用戶級一個是系統(tǒng)級,系統(tǒng)級編輯文件會有語法提示。

編寫啟動服務和停止服務的shell腳本

二、創(chuàng)建crontab定時任務執(zhí)行shell腳本

執(zhí)行 crontab -e 會打開當前用戶的定時任務工作表

如果沒有定時任務打開就是一個空的 VI 編輯界面

在里面添加自己的定時任務

到這里定時任務就已經(jīng)創(chuàng)建完了,如果出現(xiàn)shell腳本無法執(zhí)行的問題,可能是環(huán)境變量的問題,或者是相對路徑的問題等等

三、讓定時任務執(zhí)行后打印日志記錄一下

1.直接讓定時任務啟動的項目日志重定向到指定日志目錄

例如:

30 23 * * * /path/to/shell/script.sh >> /path/to/log/file  
表示每晚的23:30執(zhí)行/path/to/shell/script腳本,
并且把項目啟動日志重定向輸出到/path/to/log/file文件。

2.在shell腳本里額外輸出自定義日志

例如:

。。。項目啟動shell腳本內(nèi)容。。。
#此處獲取系統(tǒng)時間不同方法可以實現(xiàn)多種格式
time=$(date)
echo $time"-----XXX服務已定時啟動" >> /path/log/crontablog.log

這樣會把每次啟停的時間和是否執(zhí)行記錄到 crontablog.log 文件中。(若不存在.log文件則會自動創(chuàng)建并寫入,后續(xù)記錄會追加寫入),此方式更靈活

四.問題解決

手動執(zhí)行能打印日志,定時任務執(zhí)行無日志輸出

原因:

是某些命令無法使用crontab調(diào)用,因為用戶登陸Linux操作系統(tǒng)的時候,/etc/profile, ~/.bash_profile等配置文件會被自動執(zhí)行,所以手動執(zhí)行腳本能夠成功,但是crontab執(zhí)行失敗

解決辦法:

  • 1.在shell腳本開頭添加
. /etc/profile
. ~/.bash_profile
#!/bin/bash
# Destription: test cpu usage 
# Example    : sh cpu_usage.sh consume 8 | sh cpu_usage.sh release

#must have load env for crontab
 . /etc/profile
. ~/.bash_profile

#......
#......
date_time=$(date +"%Y-%m-%d %H:%M:%S")
  • 2.日志輸出采用絕對路徑
function release()
{
for pid in $(ps -ef |grep /bin/bash |grep -v grep |awk '{print $2}' |xargs)
do
    echo $date_time"--release cpu pid: "$pid >> /data01/temp/cpu_crontab_log.log
    kill -9 $pid
done
}
 

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

最新評論

镇沅| 那坡县| 黑河市| 芦山县| 石泉县| 博湖县| 牟定县| 中超| 孝义市| 白银市| 宣城市| 义马市| 姜堰市| 青田县| 新疆| 个旧市| 漯河市| 泰安市| 磐安县| 轮台县| 平武县| 宁津县| 和林格尔县| 大关县| 桂阳县| 梨树县| 成都市| 清水河县| 龙胜| 泗洪县| 正阳县| 潞西市| 天气| 扎兰屯市| 南岸区| 光山县| 政和县| 达日县| 久治县| 陇西县| 山西省|