云服务器上的目录定时同步到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月11日 下午4:43
下一篇 2023年5月15日 下午5:16

相关推荐

  • Docker Dockerfile 使用方法

    Dockerfile 介绍当使用Docker构建容器化应用程序时,Dockerfile是一个用于定义容器镜像的文本文件。它包含了一系列指令,告诉Docker如何从基础镜像(通常是官方或自定义的操作系统镜像)构建出最终的镜像,以及如何配置容器中的环境、文件和应用程序。 Dockerfile 的编写是构建容器的基础,它允许您定义容器的构建步骤、环境和配置。通过合…

    2023年10月19日
    17500
  • mysql程序结构 【思维导图】

     一条SQL语句的执行过程 连接层 (1)提供连接协议:TCP/IP 、SOCKET (2)提供验证:用户、密码,IP,SOCKET (3)提供专用连接线程:接收用户SQL,返回结果 通过以下语句可以查看到连接线程基本情况 mysql> show processlist;  SQL层 (重点) (1)接收上层传送的SQL语句 (2)…

    2023年2月7日
    36800
  • Linux网卡异常:解决Device eth0 does not seem to be present 

    一:故障现象 二:解决方法 (1)打开70-persistent-net.rules,记录下eth1网卡的mac地址: 记录下,eth1网卡的mac地址00:50:56:b9:22:fa (2).打开ifcfg-eth0,更改DEVICE名和MAC地址: (3).重启网络

    2022年8月24日
    68900
  • wordpress上传图片提示“缺少临时文件夹”的解决方法

    在wordpress发布文章上传图片时出现了“缺少临时文件夹”的错误提示,该错误通常是由于服务器php配置的原因,如果之前上传图片正常,而且最近操作过服务器就很有可能是php配置导致的错误,解决方法也很简单,修改一下php配置文件即可。 Linux主机: 1、编辑配置文件php.ini,搜索查找upload_tmp_dir,修改为: upload_tmp_d…

    2023年5月5日
    35100
  • Tcpdump 命令实际示例,Linux 下功能最强大的网络抓包工具

    tcpdump是最基本、最强大的命令行网络数据包嗅探工具。我们用它来分析服务器的网络数据包,捕获或过滤在特定网络接口上通过网络传输和接收的TCP/IP数据包。 它几乎适用于所有基于Linux/Unix操作系统的服务器。您还可以将捕获的数据包保存在文件中,以便以后使用tcpdump工具进行分析。它将文件保存为pcap格式,可通过tcpdump命令或基于GUI的…

    2023年8月7日
    23500

发表回复

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

在线咨询: QQ交谈

邮件:712342017@qq.com

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

关注微信