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

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

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

前言

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

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

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

直接輸入 crontab -l 查詢(xún)當(dāng)前用戶的定時(shí)任務(wù)

crontab -l 

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

注:

  • vim /etc/crontab 命令可以查詢(xún)當(dāng)前系統(tǒng)下的定時(shí)任務(wù),同樣可以使用。
  • 與crontab -e 的區(qū)別一個(gè)是用戶級(jí)一個(gè)是系統(tǒng)級(jí),系統(tǒng)級(jí)編輯文件會(huì)有語(yǔ)法提示。

編寫(xiě)啟動(dòng)服務(wù)和停止服務(wù)的shell腳本

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

執(zhí)行 crontab -e 會(huì)打開(kāi)當(dāng)前用戶的定時(shí)任務(wù)工作表

如果沒(méi)有定時(shí)任務(wù)打開(kāi)就是一個(gè)空的 VI 編輯界面

在里面添加自己的定時(shí)任務(wù)

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

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

1.直接讓定時(shí)任務(wù)啟動(dòng)的項(xiàng)目日志重定向到指定日志目錄

例如:

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

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

例如:

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

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

四.問(wèn)題解決

手動(dòng)執(zhí)行能打印日志,定時(shí)任務(wù)執(zhí)行無(wú)日志輸出

原因:

是某些命令無(wú)法使用crontab調(diào)用,因?yàn)橛脩舻顷慙inux操作系統(tǒng)的時(shí)候,/etc/profile, ~/.bash_profile等配置文件會(huì)被自動(dòng)執(zhí)行,所以手動(dòng)執(zhí)行腳本能夠成功,但是crontab執(zhí)行失敗

解決辦法:

  • 1.在shell腳本開(kāi)頭添加
. /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.日志輸出采用絕對(duì)路徑
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é)

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

相關(guān)文章

最新評(píng)論

罗田县| 平遥县| 门源| 界首市| 仙居县| 吉木萨尔县| 河西区| 武义县| 紫云| 和田县| 彝良县| 修文县| 株洲市| 武平县| 洛川县| 黎川县| 郁南县| 邢台县| 天等县| 博客| 南投县| 仙居县| 靖安县| 华亭县| 海兴县| 茂名市| 大安市| 齐齐哈尔市| 全州县| 双城市| 南投市| 电白县| 泸西县| 砚山县| 乐安县| 九龙城区| 巴林右旗| 浙江省| 鸡东县| 互助| 新干县|