linux下安装git服务端

[root@m2 ~]# yum install -y epel-*
[root@m2 ~]# yum install -y git
创建仓库目录
[root@m2 ~]# mkdir /mnt/githome
初始化目录
[root@m2 ~]# git init --bare /mnt/githome/
添加一个git用户,用来给开发者通过ssh访问git仓库 (git-shell是禁止服务器登录)
[root@m2 ~]# useradd git -s /usr/bin/git-shell
修改仓库属主属组
[root@m2 ~]# chown -R git:git githome/

下载windows客户端

https://git-scm.com/download/win

默认安装
打开”Git Bash”,生成秘钥:
ssh-keygen.exe -t rsa
一路回车
生成的秘钥默认保存在 /c/Users/Administrator/.ssh下
将 id_rsa.pub 公钥发给git管理员,在服务器中把公钥追加到/home/git/.ssh/authorized_keys中(一行一个)

追加公钥:
cat id_rsa.pub >> /home/git/.ssh/authorized_keys

authorized_keys 默认644权限,给444权限也可,如果400权限,git提交更新之类的动作无法使用,无权限读取认证文件。

这样客户端通过git用户操作仓库的时候就用秘钥验证。
每一个开发者都必须生成秘钥并追加(公钥)到authorized_keys中。
或者全部开发者共用一个秘钥。

PS:
git是通过ssh实现,不是一个服务。

评论关闭

shell 中 read 退格问题

原文:http://blog.csdn.net/lanyang123456/article/details/52263608

问题描述:
read读取数据,误输入,需要删除时,backspace 却无法删除,反而出现字符^H。
例如:输入defef,接着按backspace尝试删除,结果:

defef^H^H

解决办法:
在read之前,添加如下命令,重新定义erase:

stty erase ^H

注意:
如果在使用read时,使用-n选项 ,则上述解决办法无效。

直接在脚本顶部加一行:

#!/bin/bash
stty erase ^h
评论关闭

keepalived通过脚本检测实现虚拟ip漂移

需求:
当主机、mysql服务不可用时,漂移VIP到备机,备机接替工作。

keepalived主机:

global_defs
{
 notification_email
 {
 xxx@qq.com
 }

 notification_email_from root@localhost
 smtp_server localhost
 smtp_connect_timeout 30
 router_id lvs_master
}

vrrp_script chk_mysql_port #定义一个脚本名称 必须先定义,再用track_script调用
{
 script "/root/check.sh"
 interval 1
}

vrrp_instance VI_1
{
 state MASTER
 interface eth0
 virtual_router_id 51
 priority 100
 advert_int 1

 authentication
 {
 auth_type PASS
 auth_pass 1111
 }

 virtual_ipaddress
 {
 192.168.200.16
 }

 track_script # 执行先前定义的脚本
 {
 chk_mysql_port
 }

}

vrrp_script 一定要写在 vrrp_instance 之上,否则下面的 track_script 是不会执行的

keepalived备机:

global_defs
{
 notification_email
 {
 xxx@qq.com
 }

 notification_email_from root@localhost
 smtp_server localhost
 smtp_connect_timeout 30
 router_id lvs_slave
}

vrrp_instance VI_1
{
 state SLAVE
 interface eth0
 virtual_router_id 51
 priority 99
 advert_int 1

 authentication
 {
 auth_type PASS
 auth_pass 1111
 }

 virtual_ipaddress
 {
 192.168.200.16
 }
}

脚本内容:

#!/bin/bash
c=`netstat -tnlp | grep 3306 | wc -l`

if [ $c != 1 ]; then

 service keepalived stop

fi
评论关闭