服务器自动拉取git代码运行脚本

news2024/9/24 18:00:16

img# 1.场景分析
工作中常常会遇到本地编辑shell脚本或者python脚本完成后需要在服务器上运行的情况,每次进行拷贝费时费力。下面介绍下通过git管理器,实现本地与服务器代码同步的方式。选择公司搭建的gitlab为例:

2.gitlab配置服务器ssh密钥

2.1 服务器生成SSH key

  1. 检查服务器是否已经有 SSH key
# 在git bash中输入以下命令
cd ~/.ssh
ls
  1. 上面的命令是查询 是否已经生成过 SSH key,如果已经生成了SSH key,则可以跳过生成SSH key这一步
# 生成 SSH key
ssh-keygen -t rsa -b 4096 -C "email@example.com"
# 参数含义:
# -t 指定密钥类型,默认使用rsa,可以不写
# -C 表示comment,设置注释文字
# -b 指定密钥长度。对于RSA密钥,最小要求768位,默认是2048位。DSA密钥必须恰好是1024位(FIPS 186-2 标准的要求)。
# -f 指定密钥文件存储文件名。
# 以上代码省略了 -f 参数,因此,运行上面那条命令后会让你输入一个文件名,用于保存刚才生成的 SSH key 代码,如:

# 省略写法:
ssh-keygen -t rsa -m PEM
#后面全部回车键即可
# 生成id_rsa.pub和id_rsa
# id_rsa.pub即为公钥

2.2 在gitlab上添加SSH key

  1. 复制 id_rsa.pub 文件的内容
clip < ~/.ssh/id_rsa.pub
  1. 在gitlab 添加SSH
    登录到你的gitlab,点击右上角头像的下拉菜单的 Setting -> SSH Keys
    img
    将刚刚复制的id_rsa.pub粘贴到图中第三个位置

2.3 验证SSH key

通过复制git项目中的ssh地址,然后使用命令拉取代码

git clone git项目中的ssh地址

3.自动化拉取及执行脚本样例

vim /data/git_shell_run.sh

#!/bin/bash
code_addr=/data/code
warehouse_fold=/ods
start_date="2024-01-01"
end_date="2024-01-17"
cd $code_addr
git pull  git@xxxxx.git
table_names=("table1" "table2")
for table_name in "${table_names[@]}"
do
current_date="$start_date"
while [ "$current_date" != "$end_date" ]; do
    # 执行你的命令,这里用echo做示例
    echo "执行命令,当前日期:$current_date,同步的表为:$table_name"
    bash $code_addr$warehouse_fold/$table_name.sh $current_date
    # 日期递增
    current_date=$(date -d "$current_date + 1 day" +%Y-%m-%d)
done
done


#nohup /data/git_shell_run.sh >/data/test.txt  2>&1 &

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1397373.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

免费的爬虫软件【2024最新】

在国际市场竞争日益激烈的背景下&#xff0c;国外网站的SEO排名直接关系到网站在搜索引擎中的曝光度和用户点击量。良好的SEO排名能够带来更多的有针对性的流量&#xff0c;提升网站的知名度和竞争力。 二、国外网站SEO排名的三种方法 关键词优化&#xff1a; 关键词优化是SEO…

【IAP】核心开发流程

最近做了IAP U盘升级模块开发&#xff0c;总结下IAP基本开发流程&#xff0c;不深入讨论原理。 详细原理参考 首先需要知道我们需要把之前的APP区域拆一块出来做BOOT升级程序区域。 以STM32F103为例&#xff0c;0x08000000到0x0807FFFF为FLASH空间&#xff0c;即上图代码区域…

Java基础面试题-2day

面向对象 创建一个对象用什么运算符&#xff0c;对象实体和对象引用有什么不同&#xff1f; 创建对象使用new String A new String(); A即为对象引用&#xff0c;通过new运算符&#xff0c;创建String()类型的对象实体。 对象引用的存储位置在栈内存 对象实体的存储位置在堆…

2024玩儿转TikTok之环境介绍及搭建

郑重申明&#xff1a;本文章只对合法合理做tiktok视频运营的用户做学习交流使用&#xff0c;有其他使用不当的违规违法行为后果自负&#xff01; 一、网络环境图介绍&#xff1a;我们只需要保证红色的环境通畅即可(手机阿里tiktok运营专用服务器) 二、服务器部分环境搭建 1、…

STM32F103标准外设库——SysTick系统定时器(八)

个人名片&#xff1a; &#x1f981;作者简介&#xff1a;一名喜欢分享和记录学习的在校大学生 &#x1f42f;个人主页&#xff1a;妄北y &#x1f427;个人QQ&#xff1a;2061314755 &#x1f43b;个人邮箱&#xff1a;2061314755qq.com &#x1f989;个人WeChat&#xff1a;V…

软件测试|sqlalchemy一对一关系详解

简介 SQLAlchemy 是一个强大的 Python ORM&#xff08;对象关系映射&#xff09;库&#xff0c;它允许我们将数据库表映射到 Python 对象&#xff0c;并提供了丰富的关系模型来处理不同类型的关系&#xff0c;包括一对一关系。在本文中&#xff0c;我们将深入探讨 SQLAlchemy …

大数据工作岗位需求分析

前言&#xff1a;随着大数据需求的增多&#xff0c;许多中小公司和团队也新增或扩展了大数据工作岗位&#xff1b;但是却对大数据要做什么和能做什么&#xff0c;没有深入的认识&#xff1b;往往是招了大数据岗位&#xff0c;搭建起基础能力后&#xff0c;就一直处于重复开发和…

基于springboot+vue的校园周边美食探索及分享平台系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…

网络知识梳理:TCP与UDP

TCP&#xff08;传输控制协议&#xff09;和UDP&#xff08;用户数据报协议&#xff09;是两种主要的互联网协议&#xff0c;它们都用于在网络层和传输层进行数据传输&#xff0c;但它们在数据传输的方式和特性上有显著的区别&#xff1a; 1.TCP (传输控制协议) 连接导向&…

贪心算法 ——硬币兑换、区间调度、

硬币兑换&#xff1a; from book&#xff1a;挑战程序设计竞赛 思路&#xff1a;优先使用大面额兑换即可 package mainimport "fmt"func main() {results : []int{}//记录每一种数额的张数A : 620B : A//备份cnts : 0 //记录至少需要多少张nums : []int{1, 5, 10, 5…

万户 ezOFFICE wf_printnum.jsp SQL注入漏洞复现

0x01 产品简介 万户OA ezoffice是万户网络协同办公产品多年来一直将主要精力致力于中高端市场的一款OA协同办公软件产品,统一的基础管理平台,实现用户数据统一管理、权限统一分配、身份统一认证。统一规划门户网站群和协同办公平台,将外网信息维护、客户服务、互动交流和日…

vue中父组件异步传值,渲染问题

vue中父组件异步传值&#xff0c;渲染问题 父组件异步传值&#xff0c;子组件渲染不出来。有如下两种解决方法&#xff1a; 1、用v-if解决&#xff0c;当父组件有数据才渲染 <Child v-if"dataList && dataList.length > 0" :data-list"dataLis…

深度学习记录--mini-batch gradient descent

batch vs mini-batch gradient descent batch&#xff1a;段&#xff0c;块 与传统的batch梯度下降不同&#xff0c;mini-batch gradient descent将数据分成多个子集&#xff0c;分别进行处理&#xff0c;在数据量非常巨大的情况下&#xff0c;这样处理可以及时进行梯度下降&…

6. UE5 RPG AttributeSet的设置

AttributeSet 负责定义和持有属性并且管理属性的变化。开发者可以子类化UAttributeSet。在OwnerActor的构造方法中创建的AttributeSet将会自动注册到ASC。这一步必须在C中完成。 Attributes 是由 FGameplayAttributeData定义的浮点值。 Attributes能够表达从角色的生命值到角色…

【微信小程序独立开发 4】基本信息编辑

这一节完成基本信息的编辑和保存 首先完成用户头像的获取 头像选择 需要将 button 组件 open-type 的值设置为 chooseAvatar&#xff0c;当用户选择需要使用的头像之后&#xff0c;可以通过 bindchooseavatar 事件回调获取到头像信息的临时路径。 从基础库2.24.4版本起&…

关于java的继承

关于java的继承 我们在上一篇文章中&#xff0c;了解到了封装&#xff0c;我们本篇文章来介绍一下面向对象的第二大特点&#xff0c;继承&#xff0c;还是遵循结合现实生活中的实际情况&#xff0c;理解着去学习&#xff0c;能更好的加深印象&#x1f600;。 一、继承 继承的…

使用phpunit进行接口自动化测试

年初一个偶然的机会接触到了phpunit&#xff0c;一个用PHP编程语言开发的开源软件&#xff0c;也是一个单元测试框架&#xff0c;有效利用的话可以大大提高接口遍历的效率。废话不多说&#xff0c;直接干货。 1.安装 在php的目录下 1 2 pear channel-discover pear; pear in…

Gradle——基础

1、Gradle基础 1.1、Ant/Maven/Gradle对比 无论那种项目构建工具&#xff0c;都有自身的优势和劣势&#xff0c;所以选择一款最适合项目的就是最好的&#xff01; 1.2、Gradle项目目录结构 Gradle项目默认目录结构和Maven项目的目录结构一致&#xff0c;都是基于约定大于配置…

HackTheBox - Medium - Linux - Health

Health Health 是一台中型 Linux 计算机&#xff0c;在主网页上存在 SSRF 漏洞&#xff0c;可利用该漏洞访问仅在 localhost 上可用的服务。更具体地说&#xff0c;Gogs 实例只能通过 localhost 访问&#xff0c;并且此特定版本容易受到 SQL 注入攻击。由于攻击者可以与 Gogs …

关于Windows 10的操作中心 ,看这篇文章就可以了

这篇文章介绍了Windows 10操作中心&#xff0c;也称为通知中心&#xff0c;以及如何使用它。操作中心会在需要你注意的事情时发送警报。 如何在操作中心中访问和解决通知 Windows操作中心显示为Windows任务栏右下角的发言气泡。图标下的数字表示你有未解析的通知。 通知会在…