gitlab日志在哪里_唯恐GitLab数据丢失代码白写?是时候实现自动冷备了

本文介绍了GitLab备份的重要性,包括物理、软件和人为原因,并详细阐述了备份前的准备、备份过程、如何设置自动备份及备份频率。通过创建脚本和使用crontab实现每日自动备份,确保代码安全。
摘要由CSDN通过智能技术生成

为什么要做备份?

  1. 物理原因:你没办法确定你的物理机什么时间坏,无法预测需要迁移的时间点。
  2. 软件原因:你没办法保证软件什么时候抽筋就不工作了。
  3. 人为原因:你没办法保证服务器百分百安全,也没办法保证内部人员不会rm -rf,然后!!!你也没办法自己会不会手贱yum -y update ps:假装不是我做的~
9239a01a2c3b7d7d677578e31d16717f.png

需要准备什么?

  1. 先说说服务器配置
368218ed5956b699ee94bce5ee3d8d73.png
  1. 首先我们需要一个基础配置的 GitLab 服务器,我这里用的是 社区 10.0.0 版本。
  2. 其次我们需要一个备份数据存储服务器,我这里就只需要磁盘来存储数据,所以开了最小配置的服务器。
  3. 最后这两台服务器我建议不要放到同一个物理机,避免因物理机老旧损坏导致数据丢失。

具体需要做什么?

  1. 首先我们要知道 GitLab 的备份命令
$ gitlab-rake gitlab:backup:create
  1. 其次我们要知道备份后的文件存储在哪里
$ find / -name backups# /var/opt/gitlab/backups 这是默认路径
  1. 第三我们就需要把备份文件传到备份存储服务器
$ cd /var/opt/gitlab/backups$ scp 1606364719_2020_11_26_10.0.0_gitlab_backup.tar 192.168.3.14:/data/gitlab-backups
  1. 每次scp都需要输入密码好麻烦,我们来添加免密登录
$ ssh-copy-id root@192.168.3.14
  1. 这样我们就算完成了一次备份

备份频率?怎么实现自动备份传输?

  1. 我个人认为每天两次备份即可,因为备份会导致服务暂时无法访问,中午休息时间以及半夜备份最为合适。
  2. 每次都要执行好多命令好麻烦~我们需要搞一个脚本"back_gitlab.sh"实现备份,这样我们执行一个脚本就可以完成所有步骤了。
echo start backup time `date`rm -rf /data/backups/*gitlab-rake gitlab:backup:createscp /data/backups/* 192.168.3.14:/data/gitlab-backups/echo end backup time `date`
  1. 我们先给脚本的拥有者运行权限
$ chmod u+x back_gitlab.sh
  1. 然后用crontab来加一个定时任务
$ crontab -e20 2,12 * * * /data/back_git.sh>>/data/gitBack.log# 每天2:20、12:20执行备份脚本并输出日志到gitBack.log方便日后查看
  1. 现在执行一个命令就可以了,但是每天两次还有一次得半夜搞好麻烦~搞个定时任务算了。

最后dede两句

  1. 现在放心多了吧,心里有底了吧。
  2. 现在可以去执行一下yum -y update了吧。
  3. 散会!!!
### 回答1: 可以使用 Java 的三元运算符来实现。 例如: ``` String data = null; String result = data == null ? "-" : data; ``` 这样,如果 `data` 为 `null`,则将 `result` 赋值为 `"-"`,否则,将 `result` 赋值为 `data`。 您也可以使用 `Objects.toString` 方法来替换 `null`: ``` String data = null; String result = Objects.toString(data, "-"); ``` 这样,如果 `data` 为 `null`,则将 `result` 赋值为 `"-"`,否则,将 `result` 赋值为 `data`。 ### 回答2: 在Java中,处理后端返回的数据如果为null或者为空字符串,我们可以通过判断来使用默认值“-”。 首先,我们可以使用if语句来判断数据是否为null或者为空字符串。如果是,我们就把默认值“-”赋给该数据;如果不是,则原样使用该数据。 以下是一个示例代码: ```java String responseData = ...; // 后端返回的数据 if (responseData == null || responseData.isEmpty()) { responseData = "-"; // 若数据为空或者null,则使用默认值“-” } // 使用处理后的数据 System.out.println(responseData); ``` 在上述代码中,我们首先定义了一个responseData变量来表示后端返回的数据。然后,我们使用if语句来判断该数据是否为null或者为空字符串。如果是,我们将默认值“-”赋给responseData;如果不是,我们就直接使用responseData。 最后,我们可以使用responseData来进行后续的处理,比如输出到控制台。 这样,无论后端返回的数据唯恐还是null,我们都能够使用默认值“-”进行处理。 ### 回答3: 在Java中处理后端返回的数据,如果遇到空值或者null,可以默认用“-”来代替。 一种处理方式是使用三元运算符,判断返回的数据是否为空或为null,如果为空或为null,则将其替换为“-”;如果不为空,则使用原始的数据。 例如: ``` String result = backendData != null && !backendData.isEmpty() ? backendData : "-"; ``` 另一种处理方式是使用if-else语句,判断返回的数据是否为空或为null,根据判断结果进行相应的处理。 例如: ``` String result; if (backendData == null || backendData.isEmpty()) { result = "-"; } else { result = backendData; } ``` 这样处理后,无论后端返回的数据是空值还是null,都会使用“-”来代替,保证数据的一致性和可读性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值