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

git实战-linux定时监控github更新状态(二)的更多相关文章
- 【Linux】监控系统的状态
1.w命令 w命令是一个很强大的命令,该命令显示的信息比较丰富.以下是我的虚拟机w命令的一个展示 从上图我们可以看到: 第一行从左面开始显示的信息依次为:时间.系统运行时间.登陆用户数.平均负载 第二 ...
- linux 定时下载github最新代码
场景:网站的代码在github上托管,静态网站部署在服务器上,每次自己修改完本地代码后,提交到github上,需要自己去服务器上执行git pull 拉取最新代码, 为了解决这种操作,自己再服务器上 ...
- linux 定时 svn 代码更新,配置文件不修改
普通参数: 普通参数为正常的传参数: 例子: f1("111") 指定参数: 指定参数为指定哪个参数给函数方法里面某个形式参数专用,优点:不受传参数的位置约束. 例子: ...
- Linux性能监控分析命令(二)—sar命令介绍
性能监控分析的命令包括如下: 1.vmstat 2.sar 3.iostat 4.top 5.free 6.uptime 7.netstat 8.ps 9.strace 10.lsof ======= ...
- 在Linux系统中同步更新我们的Github博客
原理介绍 类似于版本管理,我们把我们的hexo博客文件系统在Github上建立一个分支,通过管理分支提交最新的博客文件系统,保证我们博客框架的更新.然后我们基于最新的博客框架,撰写文章,进行Githu ...
- zabbix监控 linux/windows 主机tcp连接状态
更新内容:1).增加了对windows主机的tcp连接状态的监控2).修改linux主机的监控配置,使linux与windwos主机能够使用相同的模板tcp的连接状态对于监控服务器,尤其是Web服务器 ...
- [转帖]Linux下inotify监控文件夹状态,发生变化后触发rsync同步
Linux下inotify监控文件夹状态,发生变化后触发rsync同步 https://www.cnblogs.com/fjping0606/p/6114123.html 1.安装工具--inotif ...
- 【学习总结】Git学习-本地仓库覆盖式更新对于Git仓库的影响以及pull/push到GitHub
< 许久不用Git之后的探索 > 准备日常更新自己的GitHub了.但是编写的文件平时不放在Git仓库路径下. 故测试覆盖式更新对于仓库是否有影响 直接说结论: 通过对已有库的测试发现覆盖 ...
- 怎样用git上传代码到github以及如何更新代码
上传代码: 1.进入指定文件夹: cd 指定文件夹 2.初始化git仓库: git init 3.将项目所有文件添加到暂存区: git add . 4.提交到仓库: git commit -m &qu ...
随机推荐
- system V信号量和Posix信号量
一.函数上的区别 信号量有两种实现:传统的System V信号量和新的POSIX信号量.它们所提供的函数很容易被区分:对于所有System V信号量函数,在它们的名字里面没有下划线.例如,应该是sem ...
- 【笔记】numpy.array的常用基本运算以及对数据的操作
numpy.array的基本运算以及对数据的操作 设置一个问题,例如 这种只需要基本的运算就可以实现 类似的 numpy对向量的运算进行了优化,速度是相当快的,这种被称为universal funct ...
- SpringBoot开发四-MyBatis入门
需求介绍-MyBatis入门 首先就是安装Mysql Server 和Mysql Workbench. SqlSessionFactory:用于创建SqlSession的工厂类 SqlSession: ...
- ELK太重?试试KFC日志采集
写在前面 ELK三剑客(ElasticSearch,Logstash,Kibana)基本上可以满足日志采集.信息处理.统计分析.可视化报表等一些日志分析的工作,但是对我们来说--太重了,并且技术栈不是 ...
- SpringCloud升级之路2020.0.x版-17.Eureka的实例配置
本系列代码地址:https://github.com/HashZhang/spring-cloud-scaffold/tree/master/spring-cloud-iiford 上一节我们提到过, ...
- sqli-labs lesson 26-27a
less 26: 因为本关在windows上运行可能会出现字符转义(apacche下空格无法转义)错误,所以在docker上搭建好sqli-labs 在win2003上远程登录sqli-labs 先执 ...
- 【iKBC poker2】使用说明书(简体中文版)自用
主要功能介绍: 可携带式 60%键盘 搭配 QWERTY 配置(61 Key) Cherry MX 系列轴 (黑.青.茶.红) 双层板 PCB 键帽材质: ABS(喷漆镀膜-LED 专用).PBT L ...
- ASP net core面试题汇总及答案
在dot net core中,我们不需要关心如何释放这些服务, 因为系统会帮我们释放掉.有三种服务的生命周期. 单实例服务, 通过add singleton方法来添加.在注册时即创建服务, 在随后的请 ...
- C++11 shared_ptr(智能指针)详解
要确保用 new 动态分配的内存空间在程序的各条执行路径都能被释放是一件麻烦的事情.C++ 11 模板库的 <memory> 头文件中定义的智能指针,即 shared _ptr 模板,就是 ...
- BootStrap Table超好用的表格组件基础入门
右侧导航条有目录哟,看着更方便 快速入门 表格构建 API简单介绍 主要研究功能介绍 快速入门 最好的资源官方文档 官方文档地址****https://bootstrap-table.com/docs ...