git實戰-linux定時監控github更新狀態(二)

NLPer_wx發表於2021-09-21

系列文章

git介紹-常用操作(一)
git實戰-linux定時監控github更新狀態(二)✓

本文主要內容

  • 如何檢視github的本地倉庫和遠端倉庫的同步情況
  • linux伺服器定時監控github更新情況並自動傳送郵件

配置檔案要求

centos:7.6.1810
mailx:12.5
sendmail:8.14.7

監控你的github status

檢視本地倉庫同步情況

  • git status檢視結果即可,其中結果有未快取、未提交、已提交乾淨的工作區啦
git_status測試結果
git_status測試結果

檢視遠端倉庫同步情況

  • git remote show origin可以檢視遠端倉庫的同本地倉庫的情況:包括可快進、最新、過時。
git_remote_status_part1
git_remote_status_part1
git_remote_status_part2
git_remote_status_part2

定時監控遠端倉庫同步情況

  1. shell指令碼
#!/bin/sh
export LANG=en_US.UTF-8
source /etc/profile

paths=$PWD
dirs=("01_pics"  "00_blogs")
log_path=$paths/git_log.txt
mail_address="***@foxmail.com"
echo "begin at: `date`" > $log_path

for i in ${dirs[*]};do
cur_path="$paths/$i"
cd $cur_path
echo $cur_path
echo -e "\n******* $i *************" >> $log_path
git status >> $log_path
echo "---- remote status ---------" >> $log_path
git remote show origin >> $log_path
#for i in `ls`
#do
#  echo $i
#done
done
flag=1
for line in `cat $log_path`
do
if echo $line |  egrep -i  "可快進|已過時|FAST-FORWARDABLE|OUT-OF-DATE"
then
flag=0
break
fi
done
if (($flag == 0))
then
mail -s "warning!!!github有更新啦,相信請檢視附件" -a $log_path $mail_address < $log_path
else
echo "github很乾淨喲" | mail -s "github很乾淨呀"  $mail_address
fi
  1. 配置定時排程,每小時執行一次
    0 * * * * sh /root/workfile/gitspace/github_status_check.sh &gt;/dev/null 2&gt;&amp;1
github郵件監控
github郵件監控

配置發郵件步驟

  1. 安裝對應外掛
yum install mailx
  1. 編輯配置檔案

    vim /etc/mail.rc

set from=***@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=***@qq.com
set smtp-auth-password=qq郵箱授權碼
set smtp-auth=login
  1. 授權碼獲取方式
  • 進入qq郵箱→設定→賬戶→選擇開啟服務:POP3/SMTP服務→會提示需要傳送郵件到指定號碼即可
  1. 發郵件測試
echo 'This is test mail' | mail -s 'test' ***@foxmail.com
git_傳送郵件到qq郵箱配置
git_傳送郵件到qq郵箱配置

相關文章