分类目录归档:Git

svn服务器设置主备同步

故事的场景是这样地,假设你已经有1台svn服务器,用于日常提供开发同学使用,突然有一天,你闲来无事,几杯小酒下肚,不知怎么突发想到如果有一天你维护的这台svn坏了,有什么影响,这一想不要紧,马上吓得出一身冷汗,酒也醒了一半,感觉就如同末日来临一般: 早上到公司,你电脑屏幕跳出至少50个IM窗口,基本都是一句话:“是不是咱们svn挂了?”,然后你看到负责开发的领导走到你领导办公室,不一会你的领导出来,走到你的工位,根本不顾你在忙些什么,直接打断你说:”小X呀,咱们svn是不是有问题了,别着急,慢慢来,先定位问题,然后解决,现在是好多人在等着,但不要慌张,多年你一直负责这个服务器管理,公司就你最熟悉了,考验你的时候到了,要挺住……@@#$%$#@,……..”,,领导一边说着,一边心里想着:”你小子净跟我闯祸,平时是怎么维护的,不知道这很严重吗,赶紧整好,否则,嘿嘿,你等着“。当然另一旁的你还要迎合着,面带微笑不停点头,事实上你根本不知道他再说什么,心里只想发出揭斯底里的呐喊:能不能不打扰LZ干活,定位个毛呀,拜托你快把废话讲完。“你想到这,你酒已基本全醒了,我擦,这大坑可不能把我陷进去,我可是个负责人的人,说完整了整自己的红领巾,废话不多说,赶紧搭备机,有问题,一键切换,继续我的小酒小肉,故事就讲到这里,接下来我们言归正传。

上段之所以废如此笔墨,除了戏剧性的描述下背景外,主要我们作为一名合格的系统管理员要加强风险意识,对出现的单点故障要做到100%避免,能做HA的做HA,做不了的核心数据至少要进行冷备,尤其是数据库,能做主从一定要做,其他的也不多讲了,今天主要是来说下我们的svn备份,svn基本每个公司都用,现在git大家逐渐用的多起来了,但svn相信也不少公司还仍在使用(换平台岂是儿戏),而且大部分是在存储公司代码,都是非常核心的,所以作为管理员,做好备份是自己职责所在,下面我们开始讲解具体操作:

开始前准备,假设你主svn是A,备份机器是B,刚安装好系统,下面我一步一步操作,看如何完成主从备份:

B机操作,安装svn:

1、建立工程,目录和工程名称跟主机一致:

这时在/home/svn/projectname/下应该有建立好的初始化文件,像:conf,db等目录。

2、拷贝A机上的projectname/conf下文件到B机的conf目录下,即:/home/svn/projectname/conf/,拷贝之前可以先将备机的conf目录下的文件进行备份(个人习惯问题)。

3、在B机上操作:

4、A机操作:

 

到此操作完,在操作过程中要注意几点:

1、防火墙两台机器要互通。

2、设置的用户(命令行中的user用户)要有对库的最高权限(非必须),具备读写权限。

3、svnlook youngest /home/svn/projectname  同步后查看两边的更新。

4、在主库上建立文件,再登录备库进行查看结果,如果同步成功,表示搭建完全正确。

 

 

如何将代码托管到github

之前我写好的代码总是怕丢,所以我一般是复制几份,存到不同的地方,可是随着自己的版本更新,最后找起来非常费劲和耽误时间,不过现在有了github,我们就可以放心的将代码放到这个大平台托管了,不需要担心丢失问题,所以今天这篇主要是讲如何将自己的代码放到github上托管,真是有了github ,妈妈再也不用担心代码丢失问题了,github分收费和免费,免费的只能存储public文件,就是大家都可以共享,谁都可以看,如果交点保护费,你就可以享受自己的私人空间了,代码就保密了,除了自己谁也看不了,介绍的内容就到这里,我们进入今天的主题,今天的内容主要分以下几个部分:

1、git安装,建立本地库

2、github注册,ssh key 配置,建立远程库

3、建立本地库和远程库关联

4、git日常操作

 

现在开始我们第一部分内容,git本地安装和建立库:

安装命令:

#yum install git

安装完成,新建一个目录,例如:

#mkdir /home/project

这个目录就是你将来的git库目录,进入,然后初始化:

在这个目录下应该可以看到一个.git的目录,这个是git自己管理版本用的,不要修改。 git config 两行是用来配置提交的用户和邮箱认证,global表示是这台机器上都用这个配置,另外还会在/root/目录下生成一个.gitconfig文件,刚才的命令就配置到这个文件里,到这里本地库就建立完毕了,不过库里还没有任何文件,这个不急,一会我们再说如何使用,现在进入到我们第二部分。

github注册和建立远程库:

其实注册没什么好讲的,很容易,打开https://github.com/,填写用户和邮箱名称就可以,注意这里写的名字将来是你访问github的地址,例如我的注册名是glacier-ji,访问地址就是https://github.com/glacier-ji/,邮箱要着重说下,我试了163的邮箱是不行的,收不到验证信息,用qq邮箱注册可以,所以如果注册时请不要选择163邮箱,因为你根本验证不了,通过验证主要是为了采用ssh加密传输方式,因为这部分不好用文字描述,我就直接截图了,有图有真相:

登录自己账户,点击右上角图标,选择Settings,

github_create

点击左边栏ssh keys,然后点右边add ssh key,输入一个标题,然后把你key贴到里边就可以了。

github_create

也许你要问ssh key是啥,我没有从哪里搞一个呢,别急,下面我们就说下如何生成ssh key文件,在linux终端下输入命令:

会有一个id_rsa.pub文件,这个文件的内容就是ssh key文件内容,复制粘贴到github上就可以了,注意千万不要粘贴id_rsa ,这个是你的私钥文件,上传没用,这几个文件主要作用是你将来要用这个私钥进行加密,然后github用你上传的公钥进行解密。

下面将如何创建远程库(repository),用你注册账号登录,操作请看如下截图:

github_create

 

需要填写的我已用圆圈标注,需要填写其实就一个远程库名称,其它都可以不写,然后点开始创建,就建立完成了。

建立远程库与本地库的关联:

好了,现在们已经有了一个本地库和一个远程库,现在都没有任何代码文件,现在我们要建立他们之间的关系,使他们同步关联起来,进入本地库目录,操作如下:

然后,然后就没了,简单吧,一条命令搞定,不过这条命令需要着重说明下,origin 是远程库代号,glacier-ji是我的登录用户名,请大家一定要换成自己的,否则就关联到我的github上了,python_code.git是我建立的远程库名称。

最后我介绍下对github的操作,如何将本地代码与githubu同步:

基本步骤是先将文件加入到自己本地git库中,然后再推动到github上 ,以下展示如何将自己之前的代码推到github上:

现在我们来逐行解释,拷贝就不说了,git add 后跟一个文件或目录,是加到git库中,git commit 是进行提交,默认是放到git 缓存空间中,最后一个git push是将内地库内容同步到github上,第一次用-u参数,建立本地master和远程库master关联,以后再推动就可以直接用:

关于git  的使用还有很多有用的命令,深入学习的同学请自行学习,这里就不在介绍了。

正常情况下如果你一路按这个文档操作下来是不会有任何问题的,那如果有问题呢,其实也很简单,全部删除重新做一遍,当然为了大家都能一次成功,我以下写了可能会遇到的问题:

1、ssh无法连接到github,显示timeout ,解决:

这个问题有很多原因,我建议关闭防火墙,先试试,如果不行,就按以下方法来:

在.ssh/目录下,新建config文件,写入以下内容,

Host github.com
User your mail address
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443

保存退出,然后测试:

第一次需要输yes,如果能看到 You’ve successfully authenticated, but GitHub does not provide shell access.就证明OK了。

2、关联远程库的时候提示远程库已经存在

解决:运行

#git remote rm origin

3、如果只是测试,遇到无法提交,可以强制进行合并提交:

运行命令:

#git push -f