国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 操作系統(tǒng) > 正文

crontab 移動(dòng)日志-超越昨天的自己系列(12)

2024-06-28 13:21:42
字體:
供稿:網(wǎng)友
crontab 移動(dòng)日志-超越昨天的自己系列(12)

linux上定時(shí)執(zhí)行某些腳本是管理服務(wù)器的時(shí)候比較常用的場(chǎng)景,比如定時(shí)檢查進(jìn)程是否存在,定時(shí)啟動(dòng)或關(guān)閉進(jìn)程,定時(shí)檢查日志刪除日志等。

當(dāng)我打開google百度crontab時(shí)長(zhǎng)篇大論的一大堆,詳細(xì)解釋的一大堆,各種抄來抄去,現(xiàn)在覺得資源多了未必是好事。

假設(shè)是定時(shí)執(zhí)行shell,來移動(dòng)log文件

找到個(gè)網(wǎng)上的腳本:

#!/bin/bashlog_path=""         #此處定義你的日志文件夾路徑exPRied_time=7      #此處定義你的日志過期時(shí)間,如7天function mvLogs(){    # 獲取系統(tǒng)時(shí)間,所有時(shí)間格式都是秒    local currentDate=`date +%s`    echo "current date: " $currentDate    for file in `find $1 -name "*.log"` #此處定義文件名格式,避免誤刪    do        local name=$file        local modifyDate=$(stat -c %Y $file)        #對(duì)比時(shí)間,算出日志存在時(shí)間,距離最近一次修改        local logExistTime=$(($currentDate - $modifyDate))        logExistTime=$(($logExistTime/86400))        if [ $logExistTime -gt $expried_time ]; then            echo "File: " $name "Modify Date: " $modifyDate + "Exist Time: " $logExistTime + "Delete: yes"            #rm -f $file        else            echo "File: " $name "Modify Date: " $modifyDate + "Exist Time: " $logExistTime + "Delete: no"        fi    done}mvLogs /home/admin/web-deploy/logs

我的需求:線上有web1 web2 兩臺(tái)機(jī)器,后面是一臺(tái)發(fā)布機(jī)器。

  需要檢查web1和web2的機(jī)器上的log文件,如果超出3天,就講這些文件移入mount的文件夾內(nèi),目錄區(qū)分web1,web2。

放在web機(jī)器上的腳本修改:

#!/bin/bash
#傳入?yún)?shù)為掃描文件夾路徑function mvLogs(){    echo "-----------------------------------------------------------"    date +"%Y-%m-%d %H:%M"    # 獲取系統(tǒng)時(shí)間,所有時(shí)間格式都是秒    local currentDate=`date +%s`    echo "current date: " $currentDate    for file in `find $1 -name "*.log.*"` #此處定義文件名格式,避免誤刪    do        local name=$file        local modifyDate=$(stat -c %Y $file)        #對(duì)比時(shí)間,算出日志存在時(shí)間,距離最近一次修改        local logExistTime=$(($currentDate - $modifyDate))        logExistTime=$(($logExistTime/86400))        if [ $logExistTime -gt $expried_time ]; then            echo "File: " $name "Modify Date: " $modifyDate + "Exist Time: " $logExistTime + "Delete: yes"            cp $file /mnt/newlogs/$2/web            #rm $file;        else            echo "File: " $name "Modify Date: " $modifyDate + "Exist Time: " $logExistTime + "Delete: no"        fi    done}mvLogs /home/admin/web-deploy/logs $machine_name

那么我只需要在發(fā)布機(jī)器上調(diào)用web機(jī)器上的這個(gè)腳本,就可以檢查web機(jī)器本地log情況,并處理。需要傳機(jī)器代號(hào),如web1。

發(fā)布機(jī)上的腳本:

#!/bin/bash
expried_time=3;SERVERS="web1 web2";function mvLogs(){    for server in $SERVERS;do        echo $server;        local machine="svr_"$server;        echo $machine;        ssh admin@$machine "sh /home/admin/logcheck/mvlog.sh "$server" "$expried_timedone}mvLogs

這樣就可以再發(fā)布機(jī)上控制比對(duì)時(shí)間了。

crontab

修改本用戶下的定時(shí)任務(wù):
crontab -e

查看本用戶下的定時(shí)任務(wù)
crontab -l

配置如下:

45 15 * * * sh /home/productscm/logcheck/mvlog.sh >> /home/productscm/logcheck/log/mvlog.log 2>&1

如此就會(huì)在每天的15點(diǎn)45分是執(zhí)行上面的邏輯。

*/1 * * * * sh /home/productscm/logcheck/mvlog.sh >> /home/productscm/logcheck/log/mvlog.log 2>&1

一分鐘執(zhí)行一次 用來測(cè)試 哈哈~

傳個(gè)圖片玩~


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 都江堰市| 宣汉县| 双城市| 卓尼县| 台安县| 乌恰县| 滨海县| 阳高县| 东明县| 河曲县| 肇源县| 红桥区| 玉龙| 岱山县| 乌鲁木齐县| 扎兰屯市| 花垣县| 富顺县| 琼结县| 建瓯市| 太原市| 华宁县| 武强县| 永年县| 兴仁县| 登封市| 朝阳区| 仁怀市| 宽甸| 广德县| 湖南省| 唐海县| 南澳县| 东山县| 富阳市| 临城县| 赫章县| 浮山县| 秦安县| 天祝| 玛纳斯县|