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

1 篇文章 0 订阅

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 &
  • 18
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值