系列文章

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 remote show origin可以查看远程仓库的同本地仓库的情况:包括可快进、最新、过时。

git_remote_status_part1

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邮件监控

配置发邮件步骤

  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实战-linux定时监控github更新状态(二)的更多相关文章

  1. 【Linux】监控系统的状态

    1.w命令 w命令是一个很强大的命令,该命令显示的信息比较丰富.以下是我的虚拟机w命令的一个展示 从上图我们可以看到: 第一行从左面开始显示的信息依次为:时间.系统运行时间.登陆用户数.平均负载 第二 ...

  2. linux 定时下载github最新代码

    场景:网站的代码在github上托管,静态网站部署在服务器上,每次自己修改完本地代码后,提交到github上,需要自己去服务器上执行git pull 拉取最新代码, 为了解决这种操作,自己再服务器上  ...

  3. linux 定时 svn 代码更新,配置文件不修改

    普通参数: 普通参数为正常的传参数:  例子:  f1("111") 指定参数: 指定参数为指定哪个参数给函数方法里面某个形式参数专用,优点:不受传参数的位置约束.   例子:  ...

  4. Linux性能监控分析命令(二)—sar命令介绍

    性能监控分析的命令包括如下: 1.vmstat 2.sar 3.iostat 4.top 5.free 6.uptime 7.netstat 8.ps 9.strace 10.lsof ======= ...

  5. 在Linux系统中同步更新我们的Github博客

    原理介绍 类似于版本管理,我们把我们的hexo博客文件系统在Github上建立一个分支,通过管理分支提交最新的博客文件系统,保证我们博客框架的更新.然后我们基于最新的博客框架,撰写文章,进行Githu ...

  6. zabbix监控 linux/windows 主机tcp连接状态

    更新内容:1).增加了对windows主机的tcp连接状态的监控2).修改linux主机的监控配置,使linux与windwos主机能够使用相同的模板tcp的连接状态对于监控服务器,尤其是Web服务器 ...

  7. [转帖]Linux下inotify监控文件夹状态,发生变化后触发rsync同步

    Linux下inotify监控文件夹状态,发生变化后触发rsync同步 https://www.cnblogs.com/fjping0606/p/6114123.html 1.安装工具--inotif ...

  8. 【学习总结】Git学习-本地仓库覆盖式更新对于Git仓库的影响以及pull/push到GitHub

    < 许久不用Git之后的探索 > 准备日常更新自己的GitHub了.但是编写的文件平时不放在Git仓库路径下. 故测试覆盖式更新对于仓库是否有影响 直接说结论: 通过对已有库的测试发现覆盖 ...

  9. 怎样用git上传代码到github以及如何更新代码

    上传代码: 1.进入指定文件夹: cd 指定文件夹 2.初始化git仓库: git init 3.将项目所有文件添加到暂存区: git add . 4.提交到仓库: git commit -m &qu ...

随机推荐

  1. 十进制转十六进制 BASIC-10

    十进制转十六进制 import java.util.Scanner; public class 十进制转十六进制 { /* 十六进制数是在程序设计时经常要使用到的一种整数的表示方式. * 它有0,1, ...

  2. awk-08-综合例子

    分析nginx日志 1.统计访问IP次数 2.统计访问IP大于10次的 3.统计访问IP次数,并取出前几的访问数 4.统计时间段访问最多的IP 5.统计访问最多的10个页面 6.统计每个 URL 数量 ...

  3. MySQL-07-information_schema/show

    information_schema.tables视图 DESC information_schema.TABLES /** TABLE_SCHEMA ---->库名 TABLE_NAME -- ...

  4. cmseasy&内网渗透 Writeup

    某CTF内网渗透 题目:www.whalwl.site:8021 目录 cmseasy 内网横向渗透 cmseasy 简单看一下网站架构 Apache/2.4.7 (Ubuntu) PHP/5.5.9 ...

  5. IntelliJ IDEA lombok插件的安装配置和使用

    一.安装 1.首先我们需要安装IntelliJ IDEA中的lombok插件,打开IntelliJ IDEA后点击菜单栏中的File-->Settings,或者使用快捷键Ctrl+Alt+S进入 ...

  6. STM32—IIC通信(软件实现底层函数)

    使用GPIO引脚模拟SDA和SCL总线实现软件模拟IIC通信,IIC的具体通信协议层和物理层链接:IIC #ifndef __BSP_IIC_H #define __BSP_IIC_H #includ ...

  7. BuildPack 打包

    无需 dockerfile,使用 buildpacks 打包镜像 书接上文,聪明如你已经发现项目中没有定义 dockerfile,但我们依然能打镜像,是如何做到的呢?正如上面提到的 gradle 的 ...

  8. Python小白的数学建模课-19.网络流优化问题

    流在生活中十分常见,例如交通系统中的人流.车流.物流,供水管网中的水流,金融系统中的现金流,网络中的信息流.网络流优化问题是基本的网络优化问题,应用非常广泛. 网络流优化问题最重要的指标是边的成本和容 ...

  9. Mysql中的Join详解

    一.Simple Nested-Loop Join(简单的嵌套循环连接) 简单来说嵌套循环连接算法就是一个双层for 循环 ,通过循环外层表的行数据,逐个与内层表的所有行数据进行比较来获取结果,当执行 ...

  10. noip37

    为何我对T3情有独钟 T1 不难发现,题目要求的就是 \(ax+by=c\) ,已知 \(a,b,c\) ,求 \(\min\{|a|+|b|\}\) ,那就用扩欧求一组特解,再分情况讨论即可. Co ...