... | ... | @@ -155,18 +155,23 @@ sudo /usr/bin/rsync -tp /etc/gitlab/gitlab.rb /mnt/backups/ |
|
|
Se tudo estiver funcionando (verifique se os arquivos foram copiados para `/mnt/backups`), configure o `cron` para executar seu backup todo dia num determinado horário. Para isso, execute `sudo crontab -e` e inclua comandos, por exemplo, para fazer o backup mais demorado do GitLab às 3:00 da manhã e copiar arquivos de configuração menores e excluir arquivos antigos às 6:00 da manhã, diariamente:
|
|
|
|
|
|
```shell
|
|
|
# backup gitlab
|
|
|
# backup gitlab (daily at 3:00 AM)
|
|
|
0 3 * * * /opt/gitlab/bin/gitlab-backup create CRON=1 STRATEGY=copy
|
|
|
# clean old backup gitlab files [/mnt/backups/gitlab]
|
|
|
|
|
|
# backup gitlab configuration files [/etc/gitlab/gitlab-secrets.json] (daily at 6:00 AM)
|
|
|
0 6 * * * /usr/bin/rsync -tp /etc/gitlab/gitlab-secrets.json /mnt/backups/
|
|
|
|
|
|
# backup gitlab configuration files [/etc/gitlab/gitlab.rb] (daily at 6:00 AM)
|
|
|
0 6 * * * /usr/bin/rsync -tp /etc/gitlab/gitlab.rb /mnt/backups/
|
|
|
|
|
|
# clean old backup gitlab files [/mnt/backups/gitlab] (daily at 6:00 AM)
|
|
|
0 6 * * * /usr/bin/find /mnt/backups/gitlab -mtime +7 -delete
|
|
|
# clean old backup gitlab files [/var/opt/gitlab/backups]
|
|
|
|
|
|
# clean old backup gitlab files [/var/opt/gitlab/backups] (daily at 6:00 AM)
|
|
|
0 6 * * * /usr/bin/find /var/opt/gitlab/backups -mtime +7 -delete
|
|
|
# clean old backup gitlab files [/etc/gitlab/config_backup]
|
|
|
|
|
|
# clean old backup gitlab files [/etc/gitlab/config_backup] (daily at 6:00 AM)
|
|
|
0 6 * * * /usr/bin/find /etc/gitlab/config_backup -mtime +7 -delete
|
|
|
# backup gitlab configuration files [/etc/gitlab/gitlab-secrets.json]
|
|
|
0 6 * * * /usr/bin/rsync -tp /etc/gitlab/gitlab-secrets.json /mnt/backups/
|
|
|
# backup gitlab configuration files [/etc/gitlab/gitlab.rb]
|
|
|
0 6 * * * /usr/bin/rsync -tp /etc/gitlab/gitlab.rb /mnt/backups/
|
|
|
```
|
|
|
|
|
|
Se quiser uma garantia ainda maior, crie um script para fazer o upload do seu backup para um serviço de armazenamento na nuvem. Seguem abaixo instruções para uso do [OneDrive, da Microsoft](https://www.microsoft.com/pt-br/microsoft-365/onedrive/free-online-cloud-storage/):
|
... | ... | @@ -196,7 +201,29 @@ onedrive-uploader login |
|
|
|
|
|
9. Caso o servidor GitLab não tenha navegador Web e você tenha feito a configuração e o login numa outra máquina, a ferramenta indica onde encontrar o arquivo `config.json`. Copie-o da máquina em que o login foi feito para o servidor do GitLab, observando o local adequado (no Linux, `~/.config/onedrive-uploader/`). Será necessário também instalar a ferramenta [onedrive-uploader](https://github.com/virtualzone/onedrive-uploader) lá também;
|
|
|
|
|
|
10. Utilize o comando `onedrive-uploader upload <arquivo local> <pasta na nuvem>` para enviar o arquivo de backup do GitLab em sua máquina local para uma determinada pasta na nuvem do OneDrive.
|
|
|
10. Utilize o comando `onedrive-uploader upload <arquivo local> <pasta na nuvem>` para enviar o arquivo de backup do GitLab em sua máquina local para uma determinada pasta na nuvem do OneDrive. Para automatizar o backup do GitLab foi criado o seguinte script:
|
|
|
|
|
|
```shell
|
|
|
#!/bin/bash
|
|
|
|
|
|
echo "Removing previous backup /gitlab-latest at the OneDrive cloud..."
|
|
|
onedrive-uploader rm /gitlab-latest
|
|
|
|
|
|
echo "Copying the latest GitLab backup to /gitlab-latest at the OneDrive cloud..."
|
|
|
onedrive-uploader upload /mnt/backups/gitlab/$(ls -t /mnt/backups/gitlab | head -n1) /gitlab-latest
|
|
|
|
|
|
echo "Copying the GitLab configuration files to /gitlab-latest at the OneDrive cloud..."
|
|
|
onedrive-uploader upload /mnt/backups/* /gitlab-latest
|
|
|
|
|
|
echo "Done!"
|
|
|
```
|
|
|
|
|
|
11. Pra que este script (copiado para `/home/labes/onedrive-gitlab-backup.sh` no servidor) execute todo domingo às 5:00 da manhã, adicionar a seguinte configuração no Crontab:
|
|
|
|
|
|
```shell
|
|
|
# send gitlab backup to an OneDrive cloud (on Sundays at 5:00 AM)
|
|
|
0 5 * * 0 su -c /home/labes/onedrive-gitlab-backup.sh labes
|
|
|
```
|
|
|
|
|
|
### Instalação conjunta com o site do LabES:
|
|
|
|
... | ... | |