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

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.mfbz.cn/a/334551.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【陈老板赠书活动 - 22期】- 人工智能(第三版)

陈老老老板&#x1f9d9;‍♂️ &#x1f46e;‍♂️本文专栏&#xff1a;赠书活动专栏&#xff08;为大家争取的福利&#xff0c;免费送书&#xff09; &#x1f934;本文简述&#xff1a;活就像海洋,只有意志坚强的人,才能到达彼岸。 &#x1f473;‍♂️上一篇文章&#xff…

shopee西班牙站选品:如何在Shopee西班牙站点上进行选品策略

在Shopee西班牙站点进行选品时&#xff0c;卖家需要考虑一系列策略&#xff0c;以确保产品符合当地市场需求并取得良好的销售业绩。以下是一些关键策略&#xff0c;卖家可以参考并应用到自己的选品过程中。 先给大家推荐一款shopee知虾数据运营工具知虾免费体验地址&#xff0…

数据中心设备与线缆数据采集神器

​前言 在数据中心机房运维管理过程中&#xff0c;开展以下工作时通常我们采用手工表格的方式&#xff0c;效率低还容易出错&#xff0c;如&#xff1a; 数据中心机柜设备与线缆规划&#xff1b; 数据中心机柜设备与线缆变更记录&#xff1b; 数据中心机柜内设备与线缆数据采…

ACL【新华三与华为的区别】

【解释】acl简单点解释就是&#xff0c;一套根据需求而设置的规则 【背景】 192.168.1.0/24 网段不允许访问 192.168.2.0/24 网段&#xff0c;要求使用基本 ACL 实现20_1 可以访问 20_6 的 TELNET 服务&#xff0c;但不能访问 FTP 服务 【操作步骤】 {易混点 }&#xff1a;1. …

小扎宣布进军AGI!Meta正在训练Llama 3,目标是60万块H100!模型仍会开源

今日&#xff0c;扎克伯格在Instagram上通过一则视频官宣&#xff0c;Meta要进军AGI了&#xff01; 扎克伯格认定Meta的长期愿景是构建通用智能&#xff0c;将其负责任地开源&#xff0c;使其广泛可用并造福全人类&#xff0c;扎克伯格还透露了以下几点信息&#xff1a; 1、将…

探索设计模式的魅力:“感受单例模式的力量与神秘” - 掌握编程的王牌技巧

在软件开发的赛场上&#xff0c;单例模式以其独特的魅力长期占据着重要的地位。作为设计模式中的一员&#xff0c;它在整个软件工程的棋盘上扮演着关键性角色。本文将带你深入探索单例模式的神秘面纱&#xff0c;从历史渊源到现代应用&#xff0c;从基础实现到高级技巧&#xf…

2024Java零基础自学路线(Java基础、Java高并发、MySQL、Spring、Redis、设计模式、Spring Cloud)

目录 一、Java基础1、Java 基础3、Java8新特性4、Java集合5、Java高并发6、Java代码实例 二、MySQL数据库三、Spring Boot框架&#xff08;35天&#xff09;四、微服务Spring Cloud四、Redis中间件五、MongoDB数据库六、Netty网络编程七、23种设计模式八、Dubbo九、JavaScript零…

【stm32】hal库学习笔记-GPIO按键控制LED和蜂鸣器(超详细!)

【stm32】hal库学习笔记-GPIO按键控制LED和蜂鸣器 注&#xff1a;本学习笔记基于stm32f4系列 使用的开发板为正点原子stmf407ZGT6探索者开发板 GPIO引脚使用时&#xff0c;可输入或输出数字信号 例如: 检测按键输入信号&#xff08;Read_Pin&#xff09;输出信号&#xff08;W…

Git学习笔记(第2章):Git安装

官网地址&#xff1a;Githttps://git-scm.com/ Step1&#xff1a;查看Git的GNU协议 → 点击“Next” Step2&#xff1a;设置Git的安装位置(非中文、无空格的目录) → 点击“Next” Step3&#xff1a;选择Git的选项配置(推荐默认设置) → 点击“Next” Step4&#xff1a;设置Git…

MySQL复合查询解析

&#x1f388;行百里者半九十&#x1f388; &#x1f388;目录&#x1f388; 概念多表查询自连接子查询单行子查询多行子查询in关键字all关键字any关键字 多列子查询在from中使用子查询合并查询unionunion all 总结 概念 之前我们很多的查询都只是对于单表进行查询&#xff0c…

vue3-表单输入绑定

表单输入绑定 获取表单输入的值方式&#xff1a; 手动连接值绑定和更改事件监听器 v-model 指令 &#xff08;常用&#xff09; <script lang"ts" setup> import { ref } from "vue" // 定义个变量接收输入的内容&#xff1a; const text ref(&…

源码:Spring常规Bean创建过程

Bean创建过程&#xff1a; 一、版本 5.3.10二、学习内容 Bean创建过程源码三、Bean生命周期 时间轴地址&#xff1a;点击 四、bean创建过程脑图总结 脑图地址&#xff1a;点击 五、源码过程 说明&#xff1a; bean创建入口一般都是通过getBean(xxx);方法进入的&#xf…

关于php8的数据类型转换

目录 1、数据类型介绍 1.1 简单数据类型&#xff1a; 1.2 复合数据类型&#xff1a; 1.3 特殊数据类型&#xff1a; 2、数据类型转换 2.1 自动转换&#xff1a; 2.2 强制&#xff08;手动&#xff09;转换&#xff1a; 3、验证数据类型途径 &#xff08;1&#xff09;var…

户外机器人区域覆盖算法仿真测试平台设计与实现(预告)

要求14周完成。一定要熟练掌握人工智能工具的使用。 起伏地形环境多机器人编队运动控制与路径规划研究_2016年中小结-CSDN博客 简要版本 随着机器人技术的快速发展&#xff0c;户外机器人在农业、环境监测、搜索与救援等领域的应用日益广泛。为了实现高效、准确的区域覆盖&…

[flutter]GIF速度极快问题的两种解决方法

原因&#xff1a; 当GIF图没有设置播放间隔时间时&#xff0c;电脑上会默认间隔0.1s&#xff0c;而flutter默认0s。 解决方法一&#xff1a; 将图片改为webp格式。 解决方法二&#xff1a; 为图片设置帧频率&#xff0c;添加播放间隔。例如可以使用GIF依赖组件设置每秒运行…

esp ble app_register注册报错“Register with GATT stack failed”的问题解决

有规定注册app的最大值&#xff0c;默认是8个&#xff0c;减去固定的gatts和gattc就只剩6个&#xff0c;修改成你需要的值就行。 文件路径在esp-idf\components\bt\host\bluedroid\common\include\common\bt_target.h

飞书修改不了名称?飞书如何修改名称,修改昵称

飞书如何修改名称 点击编辑信息 在这里修改姓名就可以啦

计算机找不到msvcr100.dll无法继续执行的5种解决方法,实测有效

“msvcr100.dll文件丢失这一问题&#xff0c;时常给计算机用户带来诸多困扰与不便。作为Microsoft Visual C运行库中的一个关键动态链接库文件&#xff0c;msvcr100.dll在系统和应用程序的正常运行中扮演着不可或缺的角色。一旦该文件发生丢失或损坏&#xff0c;可能会引发一系…

鸿蒙开发之状态管理

State 组件内状态 State装饰的变量&#xff0c;会和自定义组件的渲染绑定起来。当状态改变时&#xff0c;UI会发生对应的渲染改变。在状态变量相关装饰器中&#xff0c;State是最基础的&#xff0c;使变量拥有状态属性的装饰器&#xff0c;它也是大部分状态变量的数据源。 装…

OpenGL ES之深入解析图像的腐蚀、膨胀、边缘检测处理

一、图像腐蚀(Image Erosion) 图像腐蚀用于缩小或消除图像中物体的边界,主要用于去除图像中的小细节、噪声或不规则物体:实现图像腐蚀的片段着色器代码,基本原理就是寻找附近的最小 color 作为输出:precision highp float; varying highp vec2 vTextureCoord; uniform lo…
最新文章