可以创建/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 密钥对进行身份验证,您需要完成以下步骤:
-
生成 SSH 密钥对:打开终端并运行以下命令生成 SSH 密钥对:
ssh-keygen -t rsa -b 4096
这将生成一对密钥文件,包括私钥(
id_rsa
)和公钥(id_rsa.pub
)。
例如我生成了,ssh_key_pair(包含了私钥的文件) ssh_key_pair.pub(包含了公钥文件) -
将公钥添加到目标主机:使用
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
-
测试 SSH 连接:运行以下命令以测试 SSH 连接是否成功:
ssh <username>@<hostname>
例如: ssh -i /home/liujiahong/vm_backup/ssh_key_pair jiahong@10.18.90.100
如果一切正常,您将能够通过私钥进行身份验证,并登录到目标主机上的用户账户中。
请注意,生成的私钥文件(id_rsa
)包含私密信息,因此请妥善保管私钥文件,并确保其权限设置为只有所有者可读写。
使用 SSH 密钥对进行身份验证比使用密码进行身份验证更安全可靠。它不仅提供了更强的安全性,还允许您在自动化脚本中进行无人值守的身份验证。