云服务器上的目录定时同步到Github

具体操作与脚本

第一 在Github上创建私有仓库
这一步相信大家都知道怎么操作

第二 在服务器拉取Github仓库并把.git目录复制到需要同步的目录下
假设服务器需要同步的目录为:/usr/share/nginx/html/imgs

git clone git@github.com:xxxxxx/xxx.git
cd xxx
mv .git /usr/share/nginx/html/imgs/

cd /usr/share/nginx/html/imgs/
git init
git add .
git commit -am 'first commit'
git branch -M master
git push -u origin master

第三 编写定时同步脚本
具体脚本如下,如脚本位置: /root/script/sync_to_github.sh

#!/bin/bash

cd $1

has_push=false
untrack=`git status | grep 'Untracked files'`
if [ -n "$untrack" ]; then
  git add .
  has_push=true
fi
change_staged=`git status | grep 'Changes'`
if [ -n "$change_staged" ]; then
  git commit -am 'auto commit ...'
  has_push=true
fi

if [ "$has_push" = true ]; then
  git push
fi
chmod +x /root/script/sync_to_github.sh

第四 通过Linux的crontab表达式定时执行同步
编辑crontab

# vim /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
0 3 * * * root /root/script/sync_to_github.sh /usr/share/nginx/html/imgs

重启crond服务

# 我的服务器是Centos7 其他服务器请自行百度重启crond服务的方法
systemctl restart crond

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/8174

(0)
郭靖的头像郭靖
上一篇 2023年5月9日 下午5:01
下一篇 2023年5月15日 下午5:16

相关推荐

  • 七牛云对象存储使用 qshell 批量管理文件存储类型(实战教程)

    七牛云对象存储使用 qshell 批量管理文件存储类型(实战教程) 一、适用场景说明 本教程适用于以下典型场景: 二、前置条件 1️⃣ 准备 qshell 下载地址:https://github.com/qiniu/qshell/releases 确认版本(建议记录): 2️⃣ 七牛云 AccessKey / SecretKey 确保账号具备以下权限(至少)…

    2025年12月19日
    1.3K00
  • VMware-ESXI-6.7修改静态IP地址和主机名称以及许可证

    启用Shell 首先登陆网页控制台,在主界面点击“主机”–>“服务”–>“启用安全shell” 连接esxi主机 用shell工具连接esxi主机,在命令行输入“dcui”,就会出现显示器的控制台,由于没有显示器,所以就用这种方式改比较方便,如果有显示器,直接在显示器输出的界面上改就行,我这里由于是命令行,所以是黑白界面,显示器上会显示黄黑界面 设置ESXI…

    2024年5月8日
    1.5K00
  • MySQL 如何使用离线模式维护服务器

    离线模式 作为 DBA,最常见的任务之一就是批量处理 MySQL 服务的启停或其他一些活动。在停止 MySQL 服务前,我们可能需要检查是否有活动连接;如果有,我们可能需要把它们全部杀死。通常,我们使用 pt-kill 杀死应用连接或使用 SELECT 语句查询准备杀死语句。例如: MySQL 有一个名为 offline_mode 的变量…

    2023年10月20日
    1.5K00
  • CDN 加速 – 隐藏真实 IP – 复活 IP

    CDN 一词相信很多朋友都不会陌生,网上也经常会看到相关报道。或许大部分人都知道 CDN 加速可以提升网站的打开速度及用户下载资源的速度,而同时也有不少朋友还不清楚 CDN 是什么?有什么用途?它是如何实现加速的呢?下面为大家整理了一些通俗易懂的知识点。 CDN 是什么 CDN 的全称:CONTENT DELIVERY NETWORK,即 内容分发…

    2023年11月9日
    1.1K00
  • 更新Jumpserver版本

    手动更新 下载最新的install包 国内最新离线升级包下载地址:https://community.fit2cloud.com/#/products/jumpserver/downloads 解压更新包 更新 启动 清理磁盘 通过update_jumpserver.sh脚本更新 上传更新脚本 给脚本赋予执行权限 执行脚本并输入版本号

    2024年10月24日
    3.1K00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

在线咨询: QQ交谈

邮件:712342017@qq.com

工作时间:周一至周五,8:30-17:30,节假日休息

关注微信