gitlab与confluence备份方案V0.1

注:明日的文章,请先堵为快吧!

gitlab异地脚本备份方案

#     10.129.16.242                10.129.16.243
# ----------+-----------------------------+-------
#           |                             |
#     +-----+-----+                +------+------+
#     |     A     |                |      B      |
#     +-----------+                +-------------+ 
#     gitlab server                backups clinet
#
# A and B passed ssh Authentication

# This shell script will execute on A Server
#!/bin/bash
[ $(id -u) -ne 0 ] || exit 1
save_days=5
[ $? -eq 1 ] && exit 1
gitlab_internal_backup_directory=/data/var/opt/gitlab/backups
# if you have both wan ip and lan ip, you can fill it with all, if you have one ip, you can fill it just with lan ip
backup_server_ipaddress_public=xxx.xxx.xxx.xxx
backup_server_ipaddress_private=10.129.16.243
# select lan ip first for transmission speed
backup_server_hostname=${backup_server_ipaddress_private:-$backup_server_ipaddress_public}
backup_server_ssh_username=root
#backup_server_ssh_port=$(awk ‘/Port/ {print $2}‘ /etc/ssh/sshd_config)
backup_server_ssh_port=$(netstat -anop | awk ‘/sshd/ && /LISTEN/ {print $4}‘ | awk -F ‘:‘ ‘{print $2}‘)
backup_server_ssh_hostname=$backup_server_hostname
backup_path=/data/gitlab_backup_directory
backup_path_time_uniq=$(date -d "yesterday" +"%Y%m%d")
[ -d $backup_path/$backup_path_time_uniq ] || mkdir -p $backup_path/$backup_path_time_uniq
# sudo -u gitlab_ci -H bundle exec rake backup:create RAILS_ENV=production
/data/opt/gitlab/bin/gitlab-rake gitlab:backup:create >$backup_path/backup_path_time_uniq/$(date -d "yesterday" +"%Y%m%d").log 2>&1
[ $? -ne 0 ] && echo "Local backup failed! " && exit 1;echo "Local backup successfully! "
backuped_tar_file=`awk ‘/gitlab_backup.tar/ {print $4}‘ $backup_path/backup_path_time_uniq/$(date -d "yesterday" +"%Y%m%d").log`
[ -f $gitlab_internal_backup_directory/$backuped_tar_file ] && echo "Find backuped tar file successfully! "
ssh [email protected]$backup_server_ssh_hostname [ -d $backup_path/$backup_path_time_uniq ] || mkdir -p $backup_path/$backup_path_time_uniq
[ $? -ne 0 ] && echo "Remote backup directory creation failed! " && exit 1;echo "Remote backup directory creation successfully! "
scp -P$port $gitlab_internal_backup_directory/$backuped_tar_file [email protected]$backup_server_ssh_hostname:$backup_path/$backup_path_time_uniq 
[ $? -ne 0 ] && echo "Remote backup transmission failed! " && exit 1;echo "Remote backup transmission successfully! "
find $gitlab_internal_backup_directory -mtime +$save_days -exec rm -rf {} \;
[ $? -ne 0 ] && echo "Local expired backup remove skipped! ";echo "Local expired backup remove successfully! "
find $backup_path -mtime +$save_days -exec rm -rf {} \;
[ $? -ne 0 ] && echo "Local expired tempdir remove skipped! ";echo "Local expired tempdir remove successfully! "
ssh  [email protected]$backup_server_ssh_hostname find $backup_path -mtime +$save_days -exec rm -rf {} \;
[ $? -ne 0 ] && echo "Remote expired backup remove skipped! ";echo "Remote expired backup remove successfully! "

# References
# GitLab.org / GitLab Community Edition / Backup restore 	https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/raketasks/backup_restore.md
# GitLab.org / GitLab CI / Backup restore 	https://gitlab.com/gitlab-org/gitlab-ci/blob/master/doc/raketasks/backup_restore.md

confluence异地脚本备份方案

#!/bin/bash

#     10.129.16.242                10.129.16.243
# ----------+-----------------------------+-------
#           |                             |
#     +-----+-----+                +------+------+
#     |     A     |                |      B      |
#     +-----------+                +-------------+ 
#     confluence server            backups clinet
#
# This shell script will execute on B Server
# A and B passed ssh Authentication

# run with root
[ $(id -u) -ne 0 ] || exit 1

# save 30 days
save_days=10

# which directory to backup to
backup_path=/data/confluence_backup_directory
# make backups uniqure and backup per day
# backup_path_time_uniq=$(date -d "yesterday" +"%Y%m%d%H%M%S")
backup_path_time_uniq=$(date -d "yesterday" +"%Y%m%d")
confluence_home_directory=/data/var/atlassian/application-data/confluence
# if you have both wan ip and lan ip, you can fill it with all, if you have one ip, you can fill it just with lan ip
confluence_server_ipaddress_public=xxx.xxx.xxx.xxx
confluence_server_ipaddress_private=10.129.16.242
# select lan ip first for transmission speed
confluence_server_hostname=${confluence_server_ipaddress_private:-$confluence_server_ipaddress_public}
confluence_server_ssh_username=root
#confluence_server_ssh_port=$(awk ‘/Port/ {print $2}‘ /etc/ssh/sshd_config)
confluence_server_ssh_port=$(netstat -anop | awk ‘/sshd/ && /LISTEN/ {print $4}‘ | awk -F ‘:‘ ‘{print $2}‘)
confluence_server_ssh_hostname=$confluence_server_hostname

# which files and directory backup
#backup_files=(confluence.cfg.xml attachments config index)
backup_files=(confluence.cfg.xml attachments index)
backup_files_num=${#backup_files[@]}
[ -d $backup_path/$backup_path_time_uniq ] || mkdir -p $backup_path/$backup_path_time_uniq

# do ssh copy
for (( i = 0; i < $backup_files_num; i++ )); do
	scp -r -P$confluence_server_ssh_port [email protected]$confluence_server_ssh_hostname:$confluence_home_directory/${backup_files[i]} $backup_path/$backup_path_time_uniq
	[ $? -ne 0 ] && echo "Backup failed! " && exit 1;echo "Backup successfully! "
	# TODO
	# find postgresql dump
done

# delete old backups
find $backup_path -mtime +$save_days -exec rm -rf {} \;

# References
# Production Backup Strategy	https://confluence.atlassian.com/display/DOC/Production+Backup+Strategy
# Configuring Backups 			https://confluence.atlassian.com/display/DOC/Configuring+Backups#ConfiguringBackups-EnablingBackupPathConfiguration
# Valid Backup File Date Patterns are based on the Java SimpleDateFormat class	http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
# 
# Perform_backups 				Enable
# BackupFilename(Sample)		backup-2015_08_17
# Backup File Prefix 			backup-
# Backup File Date Pattern 		yyyy_MM_dd
# Backup Path 					/data/var/atlassian/application-data/confluence/backups
# Confluence Home directory		/data/var/atlassian/application-data/confluence/

--end--

时间: 2024-08-04 22:22:44

gitlab与confluence备份方案V0.1的相关文章

Confluence 6 确定一个生产系统备份方案

Atlassian 推荐创建一个可选的数据库备份方案: 使用你数据库提供的备份和恢复工具 为了避免数据不完整和备份中断,我们推荐你在备份和恢复 Confluence 数据库的时候关闭 Confluence 实例. 为你的 Confluence 目录创建一个系统文件备份 为你共享的 home 目录创建一个系统文件备份(仅针对集群方式部署) 一旦上面的备份策略被实施了,你可以禁用 Confluence 自带的每日备份.每日备份通常在 Confluence 的 Scheduled Jobs 中进行配置

Docker实践9:备份方案

1 两个文件系统 先提一下两个重要的文件系统概念,一个是aufs,一个是vfs. aufs是一个类似于Unionfs的可堆叠联合文件系统.它将多个目录整合成单一的目录.ubuntu对其有良好的支持,因此docker的镜像就存储在aufs文件系统下. vfs是linux的内核中一个重要概念,这个虚拟文件系统可以让open().read().write()等系统调用不用关心底层的存储介质和文件系统类型就可以工作的粘合层. 2 docker镜像与容器的存储 docker的层次结构如上图. docker

数据备份方案

经常有朋友发生了数据丢失时找我帮忙,我发现数据备份是最科学的解决方案.于是花时间把我这几年积累的数据备份方案整理出来,希望能帮到大家. 先看看几个典型情景: 我经常用手机拍照,万一我手机丢了,里面的照片的价值比一台新手机还大. 我把我的许多资料存在移动硬盘里了,结果今天硬盘出问题,读不出来,有什么办法可以挽回? 我的许多重要数据都存在我的个人电脑里,结果昨晚电脑被贼偷了. 我刚误修改了一份Excel文件,而且还保存了,我想要回修改前的文件. 以上是常见的几个代表情景,如果真的发生了,往往很难处理

MySQL备份方案--&gt;(利用mysqldump以及binlog二进制日志)

From:http://blog.csdn.net/mchdba/article/details/11575605 随着数据不断增加,而且为了兼容以后的innodb存储引擎, 所以考虑采用mysqldump全备+日志增量备份的策略.使用mysqldump对于MySQL大部分mysql存储引擎比如myisam.innodb都有很好的支持. 方案一:mysqldump全备份+日志增量备份 1, mysqldump备份方案: 周一凌晨3点全备 周二到周日凌晨3点增量备份 2, 备份步骤 (1)    

使用mysqldump进行全量+增量备份方案操作记录

在日常运维工作中,对mysql数据库的备份是万分重要的,以防在数据库表丢失或损坏情况出现,可以及时恢复数据. 线上数据库备份场景:每周日执行一次全量备份,然后每天下午1点执行MySQLdump增量备份. 下面对这种备份方案详细说明下:1.MySQLdump增量备份配置执行增量备份的前提条件是MySQL打开binlog日志功能,在my.cnf中加入log-bin=/opt/Data/MySQL-bin"log-bin="后的字符串为日志记载目录,一般建议放在不同于MySQL数据目录的磁盘

第三十八天-一道例题企业级备份方案

一.例题 某公司里有一台web服务器,里面的数据很重要,但是如果硬盘坏了,数据就会丢失,现在领导要求你把数据备份,这样web服务器数据丢失可以进行恢复. 要求如下: 每天晚上00点整在web服务器A上打包备份系统配置文件.网站程序目录及访问日志,并通过rsync命令推送到服务器B上备份保留(备份的思路可以是先在本地按日期打包,然后再推到备份服务器B上). 问题一:实现web服务器A数据备份到服务器B 要求如下: 1.web服务器A和备份服务器B的备份目录必须都为/backup 2.系统配置文件包

公司备份方案

随着科技的变化,人们对网络的依赖性越来越强,网站也逐渐成为企业与内部和外界进行信息的交流和共享的重要平台.当网站成为企业的商用工具后,数据的规模也越来越大,无论是内.外部数据均呈几何级增长,相关的数据便成了企业网站最重要的资产,数据的丢失或毁坏可能会给企业带来不可估量的损失.然而,病毒入侵.硬件故障.软件崩溃等难以预测的意外问题或者是误操作等人为因素都时刻威胁着企业网站数据的安全,因而如何保证网站数据的完整性和安全性便成了每个企业都必需考虑的问题. 一.企业网站为什么要数据备份 防止数据丢失的第

mysql备份方案

1.环境说明 系统为centos 6.5 需要安装mutt和msmtp并可以发送邮件 需要安装python 2.6.6 需要安装xtrabackup 2.备份方案功能模块介绍 备份: 使用xtrabackup进行备份,每次备份会把备份文件放到一个当前日期和时间的文件夹内.所以创建备份夹new,把备份文件放到new中,并根据new中文件夹的个数判断是全备还是增备还是需要转移文件到last中.第一个文件是全备,每次增备是在前一天的基础上进行增备.备份脚本在把所有的文件从new移动到last的时候 会

mysql 数据库备份方案及策略

由于mysql存在多种数据库备份方式,而且各有利弊,对于我们初学者来说,选择合适的备份方式确实有些困难.个人觉得,首先要基于公司的需求,考虑能够容忍丢失多少数据.花多少人力时间成本等,这是我们制定备份方案的依据,同时制定出来的方案要可执行,要执行,不能把方案当作纸上谈兵.下面我把我们实际的备份方案整理出来供大家参考交流. 作为数据安全的一个重要内容——数据备份的重要性却往往被人们所忽视.只要发生数据传输.数据存储和数据交换,就有可能产生数据故障.这时,如果没有采取数据备份和数据恢复手段与措施,就