docker gitlab 备份
docker exec -it gitlab bash
gitlab-rake gitlab:backup:create
自动备份 我们利用crontab定时执行任务,cron服务是Linux的内置服务,但是其不会自动开机启动。
/sbin/service crond start 服务启动
/sbin/service crond stop 服务停止
/sbin/service crond restart 服务重新启动
/sbin/service crond reload 服务重新加载配置
系统在root用户下,crontab -e 命令编辑设置定时任务。
在/etc/rc.d/rc.local脚本中加入/sbin/service crond start 即可。
* * * * * command
分 时 日 月 周 命令
其中,
第1列表示分钟,1~59,每分钟用*表示
第2列表示小时,1~23,(0表示0点)
第3列表示日期,1~31
第4列表示月份,1~12
第5列表示星期,0~6(0表示星期天)
第六列表示要运行的命令。
新建备份的sh文件:在/root 下新建gitlab_backup.sh ,内容如下:
#! /bin/bash
case "$1" in
start)
docker exec gitlab gitlab-rake gitlab:backup:create
;;
esac
测试 执行gitlab_backup.sh start,如果/srv/gitlab/data/backups 下有新生成的tar包,即可说明sh文件写对了。
0 2 * * * /root/gitlab_backup.sh start
保存,重新加载配置和启动或重启cron服务即可。 对于开机自启动cron服务,需要reboot验证。
主要通过scp在Linux系统之间进行文件传输,scp是基于SSH登录的,需要我们进行免密码登录的操作。
wget http://sourceforge.net/projects/sshpass/files/sshpass/1.05/sshpass-1.05.tar.gz
tar xvzf sshpass-1.05.tar.gz
进入解压后文件夹
./configure
make
make install
#! /bin/bash
backdir='/srv/gitlab/data/backups'
latestFileName=`ls $backdir -t|head -n 1`
cd "$backdir"
sshpass -p [passwd] scp "$latestFileName" root@[hostID]