git實戰-linux定時監控github更新狀態(二)
系列文章
git介紹-常用操作(一)✓
git實戰-linux定時監控github更新狀態(二)✓
本文主要內容
- 如何查看github的本地倉庫和遠程倉庫的同步情況
- linux伺服器定時監控github更新情況並自動發送郵件
配置文件要求
centos:7.6.1810
mailx:12.5
sendmail:8.14.7
監控你的github status
查看本地倉庫同步情況
git status
查看結果即可,其中結果有未快取、未提交、已提交乾淨的工作區啦

查看遠程倉庫同步情況
git remote show origin
可以查看遠程倉庫的同本地倉庫的情況:包括可快進、最新、過時。


定時監控遠程倉庫同步情況
- 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
- 配置定時調度,每小時運行一次
0 * * * * sh /root/workfile/gitspace/github_status_check.sh >/dev/null 2>&1

配置發郵件步驟
- 安裝對應插件
yum install mailx
-
編輯配置文件
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
- 授權碼獲取方式
- 進入qq郵箱→設置→賬戶→選擇開啟服務:POP3/SMTP服務→會提示需要發送郵件到指定號碼即可
- 發郵件測試
echo 'This is test mail' | mail -s 'test' ***@foxmail.com
