Linux下git代码仓库&&公共仓库&&软件仓库每日自动备份

该博客详细介绍了如何在Linux 14.04.1-Ubuntu环境下,针对git代码仓库、公共仓库和软件仓库设置每日自动备份。通过rsync命令和crontab调度,确保172.29.71.111、172.29.71.57和172.29.71.47上的数据在/home/backup目录下得到及时备份。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux版本号:14.04.1-Ubuntu x86_64

备份服务器地址为:172.29.71.59,备份根路径为/home/backup

1.git代码仓库每日自动备份:

服务器地址:172.29.71.111,git指定目录:00.apps,备份路径为:/home/backup/CodeServer_111

步骤一:

cd /home/backup/CodeServer_111
git clone --mirror git@172.29.71.111:00.apps
git clone --mirror拷贝一份git库,包含远程最新分支以及历史提交记录。

步骤二:

cd /etc
vim crontab

修改crontab文件,添加每日备份定时任务

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user	command
17 *	* * *	root    cd / && run-parts --report /etc/cron.hourly
25 6	* * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6	* * 7	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6	1 * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#CodeServer_111
0 0   * * *   root    git --git-dir=/home/backup/CodeServer_111/00.apps.git remote update

步骤三:

修改crontab文件后,运行如下命令生效:

service cron restart

每日00:00将172.29.71.111服务器上最新的00.apps(git库)同步到备份服务器上。

2.公共仓库每日自动备份:

服务器地址:172.29.71.57,备份路径为:/home/backup/PublicServer_57

步骤一:

cd /home/backup/PublicServer_57
vim backup_public.sh
新建一个backup_public.sh脚本用于公共仓库每日自动备份。具体代码如下:

#!/bin/bash

function backup()
{
        publichome=172.29.71.57
	
	# rsync && add password
	/usr/bin/expect <<-EOF
	set timeout 300
	spawn rsync --delete -r public@$publichome:/home/public .

	expect "public@$publichome's password:"
	send "public\r"

	send "exit\r"
	expect eof
	EOF        
}
backup

rsync:同步命令

--delete -r :如果源端没有此文件,那么目的端也不能有,强制同步删除(-r :recursive,递归的,用于同步文件夹)。

将公共仓库服务器172.29.71.57上/home/public目录下的文件夹内容同步到备份服务器上。

步骤二:

cd /etc
vim crontab
修改crontab文件,在文件末尾继续添加每日备份定时任务
#PublicServer_57
30 1  * * *   root   cd /home/backup/PublicServer_57 && /home/backup/PublicServer_57/backup_public.sh

步骤三:

修改crontab文件后,运行如下命令生效:

service cron restart

每日1:30将172.29.71.57服务器上/home/public目录下的文件夹内容同步到备份服务器上。

3.软件仓库每日自动备份:

服务器地址:172.29.71.47,备份路径为:/home/backup/SoftServer_47

步骤一:

cd /home/backup/SoftServer_47
vim backup_softserver.sh

新建一个backup_softserver.sh脚本用于软件仓库每日自动备份。具体代码如下:

#!/bin/bash
function backup()
{
     softhome=172.29.71.47
        # rsync && add password
        /usr/bin/expect <<-EOF
        set timeout 300
        spawn rsync --delete -r soft@$softhome:/home/iptv/Release/CI_RELEASE/DSV1 .
        expect {
            "(yes/no)?" {
                   send "yes\r"
                   expect "soft@$softhome's password:"
                   send "soft\r"
            }
            "soft@$softhome's password:" {
                   send "soft\r"
                   }
            }
        send "exit\r"
        expect eof
        EOF
}
backup

rsync:同步命令

--delete -r :如果源端没有此文件,那么目的端也不能有,强制同步删除(-r :recursive,递归的,用于同步文件夹)。

将软件仓库服务器172.29.71.47上/home/iptv/Release/CI_RELEASE/DSV1目录下的文件夹内容同步到备份服务器上。

步骤二:

cd /etc
vim crontab
修改crontab文件,在文件末尾继续添加每日备份定时任务
#SoftServer_47
40 1  * * *   root   cd /home/backup/SoftServer_47 && /home/backup/SoftServer_47/backup_softserver.sh

步骤三:

修改crontab文件后,运行如下命令生效:

service cron restart

每日1:40将172.29.71.47服务器上/home/iptv/Release/CI_RELEASE/DSV1目录下的文件夹内容同步到备份服务器上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值