定时自动备份gitlab代码仓库数据到另外一台或者2台服务器电脑

可以创建/home/liujiahong/vm_backup/gitlab_backup.sh shell脚本
脚本内容如下:

#!/bin/bash

echo "start backup ...."
# 备份 GitLab
backup_output=$(gitlab-rake gitlab:backup:create)
backup_file_date=$(echo "$backup_output" | grep Backup | awk -F'Backup ' '{print $2}' | awk '{print $1}')
backup_file="/var/opt/gitlab/backups/${backup_file_date}_gitlab_backup.tar"
echo "备份文件:$backup_file"

# 拷贝备份文件到目标计算机
scp -i /home/liujiahong/vm_backup/ssh_key_pair $backup_file ubuntu@10.18.20.203:/home/ubuntu/gitlab_backup/

scp -i /home/liujiahong/vm_backup/ssh_key_pair /etc/gitlab/gitlab-secrets.json  ubuntu@10.18.20.203:/home/ubuntu/gitlab_backup/${
    
    backup_file_date}_gitlab-secrets.json
scp -i /home/liujiahong/vm_backup/ssh_key_pair /etc/gitlab/gitlab.rb  ubuntu@10.18.20.203:/home/ubuntu/gitlab_backup/${
    
    backup_file_date}_gitlab.rb



scp -i /home/liujiahong/vm_backup/ssh_key_pair $backup_file jiahong@10.18.90.100:/home/jiahong/vmware/gitlab_repo_backup/

scp -i /home/liujiahong/vm_backup/ssh_key_pair /etc/gitlab/gitlab-secrets.json  jiahong@10.18.90.100:/home/jiahong/vmware/gitlab_repo_backup/${
    
    backup_file_date}_gitlab-secrets.json
scp -i /home/liujiahong/vm_backup/ssh_key_pair /etc/gitlab/gitlab.rb  jiahong@10.18.90.100:/home/jiahong/vmware/gitlab_repo_backup/${
    
    backup_file_date}_gitlab.rb
echo "end backup"


修改脚本为可执行

chmod +x /home/liujiahong/vm_backup/gitlab_backup.sh

将脚本作为定时自动执行任务

crontab -e

这个脚本表示每天2点做自动备份

0 2 * * * sh /home/liujiahong/vm_backup/gitlab_backup.sh >> /home/liujiahong/vm_backup/backup.log 2>&1

为了用scp在不同电脑之间拷贝数据可以使用SSH密钥对进行操作
要使用 SSH 密钥对进行身份验证,您需要完成以下步骤:

  1. 生成 SSH 密钥对:打开终端并运行以下命令生成 SSH 密钥对:

    ssh-keygen -t rsa -b 4096
    

    这将生成一对密钥文件,包括私钥(id_rsa)和公钥(id_rsa.pub)。
    例如我生成了,ssh_key_pair(包含了私钥的文件) ssh_key_pair.pub(包含了公钥文件)

  2. 将公钥添加到目标主机:使用 ssh-copy-id 命令将公钥添加到您希望进行身份验证的目标主机。运行以下命令并替换 <username><hostname>

    ssh-copy-id <username>@<hostname>
    

    这将将公钥复制到目标主机的 ~/.ssh/authorized_keys 文件中,允许使用私钥进行身份验证。

    如果 ssh-copy-id 命令不可用,您可以手动将公钥内容添加到目标主机10.18.20.203的 ~/.ssh/authorized_keys 文件中。
    如果 目标主机中没有~/.ssh/authorized_keys可以通过下面的命令创建,然后将ssh_key_pair.pub中的内容复制到 ~/.ssh/authorized_keys中

touch ~/.ssh/authorized_keys
  1. 测试 SSH 连接:运行以下命令以测试 SSH 连接是否成功:

    扫描二维码关注公众号,回复: 15662648 查看本文章
    ssh <username>@<hostname>
    

    例如: ssh -i /home/liujiahong/vm_backup/ssh_key_pair [email protected]

    如果一切正常,您将能够通过私钥进行身份验证,并登录到目标主机上的用户账户中。

请注意,生成的私钥文件(id_rsa)包含私密信息,因此请妥善保管私钥文件,并确保其权限设置为只有所有者可读写。

使用 SSH 密钥对进行身份验证比使用密码进行身份验证更安全可靠。它不仅提供了更强的安全性,还允许您在自动化脚本中进行无人值守的身份验证。

猜你喜欢

转载自blog.csdn.net/zhuguiqin1/article/details/131595309