场景
从win服务器上将多仓库定时备份到ubuntu上,其实利用jenkins完全可以实现,当时组网时没考虑到将git(win)和jenkins(虚拟机)部署到一台机子上了,导致增加了后期的代码备份工作。
环境信息
操作系统 : Ubuntu 7.5.0-3ubuntu1~18.04 GIT版本 : git version 2.23.0.windows.1 目标路径 : /home/codebackup
脚本
cd
/home
/codebackup
:<<
!
PROJECT=
("http://192.168.1.138:3000/qskj/mindoffice.git" "http://192.168.1.138:3000/qskj/mindoffice-vue.git" "http://192.168.1.138:3000/yanghaiyan/fangke.git")
for ((i=0
;i<$
{
do
echo $
{PROJECT
[$i]}
git clone $
{PROJECT
[$i]}
done
!
ls -l
|grep ^d
|awk
-F
' ' '{print $9}'|grep
-v bak$>>1
.txt
cat 1
.txt
|while read
Dir
do
cd
$Dir
git fetch origin
git
diff --stat master origin
/master
|grep
"changed"
if [ $?
-eq 0
];then
echo "------------------------------------">>
../codeback
.log
echo "项目名称: $Dir">>
../codeback
.log
echo "同步时间:`date
+‘
%Y
%m
%d’`">>
../codeback
.log
git pull>>
../codeback
.log
fi
cd
../
done
rm -rf 1
.txt
定时任务
启动定时任务 crontab -e增加首行,每个半点去执行脚本增加完毕,输入ctrl+o,点击回车保存,再点击ctrl+x退出坑 ubuntu启用定时任务时千万不要使用绝对路径 执行脚本时务必加/bin/bash 执行时一定要有指定输出,不然执行不成功
30
* * * * cd
/home
/codebackup
/&&
/bin
/bash backup2disk
.sh >>
/home
/codebackup
/build
.log 2>&1